1- import 'dart:io' ;
2-
31import 'package:auto_route/auto_route.dart' ;
4- import 'package:auto_updater/auto_updater.dart' ;
52import 'package:flutter/foundation.dart' ;
63import 'package:flutter/material.dart' ;
74import 'package:hooks_riverpod/hooks_riverpod.dart' ;
@@ -16,7 +13,6 @@ import 'package:lantern/features/home/provider/app_setting_notifier.dart';
1613import 'package:lantern/features/home/provider/home_notifier.dart' ;
1714import 'package:lantern/features/setting/follow_us.dart'
1815 show showFollowUsBottomSheet;
19- import 'package:lantern/lantern/lantern_service_notifier.dart' ;
2016
2117import '../../core/services/injection_container.dart' ;
2218
@@ -31,7 +27,6 @@ enum _SettingType {
3127 getPro,
3228 downloadLinks,
3329 checkForUpdates,
34- logout,
3530 browserUnbounded,
3631}
3732
@@ -184,19 +179,8 @@ class _SettingState extends ConsumerState<Setting> {
184179 ],
185180 ),
186181 ),
187- if (appSetting.userLoggedIn) ...[
188- const SizedBox (height: defaultSize),
189- AppCard (
190- padding: EdgeInsets .zero,
191- child: AppTile (
192- label: 'logout' .i18n,
193- icon: AppImagePaths .signIn,
194- onPressed: () => settingMenuTap (_SettingType .logout),
195- ),
196- ),
197- ],
198- const SizedBox (height: defaultSize),
199182 if (kDebugMode || AppBuildInfo .buildType == 'nightly' ) ...{
183+ SizedBox (height: defaultSize),
200184 AppCard (
201185 padding: EdgeInsets .zero,
202186 child: AppTile (
@@ -295,9 +279,6 @@ class _SettingState extends ConsumerState<Setting> {
295279 case _SettingType .vpnSetting:
296280 appRouter.push (VPNSetting ());
297281 break ;
298- case _SettingType .logout:
299- logoutDialog ();
300- break ;
301282 case _SettingType .browserUnbounded:
302283 // TODO: Handle this case.
303284 throw UnimplementedError ();
@@ -316,66 +297,4 @@ class _SettingState extends ConsumerState<Setting> {
316297 );
317298 }
318299 }
319-
320- void logoutDialog () {
321- final theme = Theme .of (context).textTheme;
322- final isExpired = ref.watch (isUserExpiredProvider);
323- AppDialog .customDialog (
324- context: context,
325- action: [
326- AppTextButton (
327- label: 'not_now' .i18n,
328- textColor: AppColors .gray8,
329- onPressed: () {
330- context.maybePop ();
331- },
332- ),
333- AppTextButton (
334- label: 'logout' .i18n,
335- onPressed: () {
336- onLogout ();
337- context.maybePop ();
338- },
339- ),
340- ],
341- content: Column (
342- mainAxisSize: MainAxisSize .min,
343- children: < Widget > [
344- SizedBox (height: defaultSize),
345- Text (
346- 'logout' .i18n,
347- style: theme.headlineSmall,
348- ),
349- SizedBox (height: defaultSize),
350- Text (
351- isExpired ? 'logout_message_expired' .i18n : 'logout_message' .i18n,
352- style: theme.bodyMedium! .copyWith (
353- color: AppColors .gray8,
354- ),
355- ),
356- ],
357- ),
358- );
359- }
360-
361- Future <void > onLogout () async {
362- context.showLoadingDialog ();
363- final appSetting = ref.read (appSettingProvider);
364- final result =
365- await ref.read (lanternServiceProvider).logout (appSetting.email);
366- result.fold (
367- (l) {
368- context.hideLoadingDialog ();
369- appLogger.error ('Logout error: ${l .localizedErrorMessage }' );
370- },
371- (user) {
372- context.hideLoadingDialog ();
373- appRouter.popUntilRoot ();
374- ref.read (homeProvider.notifier).clearLogoutData ();
375- ref.read (homeProvider.notifier).updateUserData (user);
376-
377- appLogger.info ('Logout success: $user ' );
378- },
379- );
380- }
381300}
0 commit comments