diff --git a/lib/ui/settings/account_section_widget.dart b/lib/ui/settings/account_section_widget.dart index e1d32746a..ba5127f41 100644 --- a/lib/ui/settings/account_section_widget.dart +++ b/lib/ui/settings/account_section_widget.dart @@ -4,10 +4,12 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_sodium/flutter_sodium.dart'; +import 'package:photos/ente_theme_data.dart'; import 'package:photos/services/local_authentication_service.dart'; import 'package:photos/services/user_service.dart'; import 'package:photos/theme/ente_theme.dart'; import 'package:photos/ui/account/change_email_dialog.dart'; +import 'package:photos/ui/account/delete_account_page.dart'; import 'package:photos/ui/account/password_entry_page.dart'; import 'package:photos/ui/account/recovery_key_page.dart'; import 'package:photos/ui/components/captioned_text_widget.dart'; @@ -122,6 +124,30 @@ class AccountSectionWidget extends StatelessWidget { }, ), sectionOptionSpacing, + MenuItemWidget( + captionedTextWidget: const CaptionedTextWidget( + title: "Logout", + ), + pressedColor: getEnteColorScheme(context).fillFaint, + trailingIcon: Icons.chevron_right_outlined, + trailingIconIsMuted: true, + onTap: () { + _onLogoutTapped(context); + }, + ), + sectionOptionSpacing, + MenuItemWidget( + captionedTextWidget: const CaptionedTextWidget( + title: "Delete account", + ), + pressedColor: getEnteColorScheme(context).fillFaint, + trailingIcon: Icons.chevron_right_outlined, + trailingIconIsMuted: true, + onTap: () { + routeToPage(context, const DeleteAccountPage()); + }, + ), + sectionOptionSpacing, ], ); } @@ -131,4 +157,48 @@ class AccountSectionWidget extends StatelessWidget { await UserService.instance.getOrCreateRecoveryKey(context), ); } + + Future _onLogoutTapped(BuildContext context) async { + final AlertDialog alert = AlertDialog( + title: const Text( + "Logout", + style: TextStyle( + color: Colors.red, + ), + ), + content: const Text("Are you sure you want to logout?"), + actions: [ + TextButton( + child: const Text( + "Yes, logout", + style: TextStyle( + color: Colors.red, + ), + ), + onPressed: () async { + Navigator.of(context, rootNavigator: true).pop('dialog'); + await UserService.instance.logout(context); + }, + ), + TextButton( + child: Text( + "No", + style: TextStyle( + color: Theme.of(context).colorScheme.greenAlternative, + ), + ), + onPressed: () { + Navigator.of(context, rootNavigator: true).pop('dialog'); + }, + ), + ], + ); + + await showDialog( + context: context, + builder: (BuildContext context) { + return alert; + }, + ); + } } diff --git a/lib/ui/settings/danger_section_widget.dart b/lib/ui/settings/danger_section_widget.dart deleted file mode 100644 index c9da820d1..000000000 --- a/lib/ui/settings/danger_section_widget.dart +++ /dev/null @@ -1,101 +0,0 @@ -// @dart=2.9 - -import 'package:flutter/material.dart'; -import 'package:photos/ente_theme_data.dart'; -import 'package:photos/services/user_service.dart'; -import 'package:photos/theme/ente_theme.dart'; -import 'package:photos/ui/account/delete_account_page.dart'; -import 'package:photos/ui/components/captioned_text_widget.dart'; -import 'package:photos/ui/components/expandable_menu_item_widget.dart'; -import 'package:photos/ui/components/menu_item_widget.dart'; -import 'package:photos/ui/settings/common_settings.dart'; -import 'package:photos/utils/navigation_util.dart'; - -class DangerSectionWidget extends StatelessWidget { - const DangerSectionWidget({Key key}) : super(key: key); - - @override - Widget build(BuildContext context) { - return ExpandableMenuItemWidget( - title: "Exit", - selectionOptionsWidget: _getSectionOptions(context), - leadingIcon: Icons.logout_outlined, - ); - } - - Widget _getSectionOptions(BuildContext context) { - return Column( - children: [ - sectionOptionSpacing, - MenuItemWidget( - captionedTextWidget: const CaptionedTextWidget( - title: "Logout", - ), - pressedColor: getEnteColorScheme(context).fillFaint, - trailingIcon: Icons.chevron_right_outlined, - trailingIconIsMuted: true, - onTap: () { - _onLogoutTapped(context); - }, - ), - sectionOptionSpacing, - MenuItemWidget( - captionedTextWidget: const CaptionedTextWidget( - title: "Delete account", - ), - pressedColor: getEnteColorScheme(context).fillFaint, - trailingIcon: Icons.chevron_right_outlined, - trailingIconIsMuted: true, - onTap: () { - routeToPage(context, const DeleteAccountPage()); - }, - ), - sectionOptionSpacing, - ], - ); - } - - Future _onLogoutTapped(BuildContext context) async { - final AlertDialog alert = AlertDialog( - title: const Text( - "Logout", - style: TextStyle( - color: Colors.red, - ), - ), - content: const Text("Are you sure you want to logout?"), - actions: [ - TextButton( - child: const Text( - "Yes, logout", - style: TextStyle( - color: Colors.red, - ), - ), - onPressed: () async { - Navigator.of(context, rootNavigator: true).pop('dialog'); - await UserService.instance.logout(context); - }, - ), - TextButton( - child: Text( - "No", - style: TextStyle( - color: Theme.of(context).colorScheme.greenAlternative, - ), - ), - onPressed: () { - Navigator.of(context, rootNavigator: true).pop('dialog'); - }, - ), - ], - ); - - await showDialog( - context: context, - builder: (BuildContext context) { - return alert; - }, - ); - } -} diff --git a/lib/ui/settings_page.dart b/lib/ui/settings_page.dart index 1505761e7..6a397c9b1 100644 --- a/lib/ui/settings_page.dart +++ b/lib/ui/settings_page.dart @@ -12,7 +12,6 @@ import 'package:photos/ui/settings/about_section_widget.dart'; import 'package:photos/ui/settings/account_section_widget.dart'; import 'package:photos/ui/settings/app_version_widget.dart'; import 'package:photos/ui/settings/backup_section_widget.dart'; -import 'package:photos/ui/settings/danger_section_widget.dart'; import 'package:photos/ui/settings/debug_section_widget.dart'; import 'package:photos/ui/settings/general_section_widget.dart'; import 'package:photos/ui/settings/security_section_widget.dart'; @@ -96,12 +95,6 @@ class SettingsPage extends StatelessWidget { sectionSpacing, const AboutSectionWidget(), ]); - if (hasLoggedIn) { - contents.addAll([ - sectionSpacing, - const DangerSectionWidget(), - ]); - } if (FeatureFlagService.instance.isInternalUserOrDebugBuild() && hasLoggedIn) {