Move Logout and Delete under Account settings
This commit is contained in:
parent
8066b2aa2c
commit
fc40814504
|
@ -4,10 +4,12 @@ import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_sodium/flutter_sodium.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/local_authentication_service.dart';
|
||||||
import 'package:photos/services/user_service.dart';
|
import 'package:photos/services/user_service.dart';
|
||||||
import 'package:photos/theme/ente_theme.dart';
|
import 'package:photos/theme/ente_theme.dart';
|
||||||
import 'package:photos/ui/account/change_email_dialog.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/password_entry_page.dart';
|
||||||
import 'package:photos/ui/account/recovery_key_page.dart';
|
import 'package:photos/ui/account/recovery_key_page.dart';
|
||||||
import 'package:photos/ui/components/captioned_text_widget.dart';
|
import 'package:photos/ui/components/captioned_text_widget.dart';
|
||||||
|
@ -122,6 +124,30 @@ class AccountSectionWidget extends StatelessWidget {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
sectionOptionSpacing,
|
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),
|
await UserService.instance.getOrCreateRecoveryKey(context),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _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;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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<void> _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;
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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/account_section_widget.dart';
|
||||||
import 'package:photos/ui/settings/app_version_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/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/debug_section_widget.dart';
|
||||||
import 'package:photos/ui/settings/general_section_widget.dart';
|
import 'package:photos/ui/settings/general_section_widget.dart';
|
||||||
import 'package:photos/ui/settings/security_section_widget.dart';
|
import 'package:photos/ui/settings/security_section_widget.dart';
|
||||||
|
@ -96,12 +95,6 @@ class SettingsPage extends StatelessWidget {
|
||||||
sectionSpacing,
|
sectionSpacing,
|
||||||
const AboutSectionWidget(),
|
const AboutSectionWidget(),
|
||||||
]);
|
]);
|
||||||
if (hasLoggedIn) {
|
|
||||||
contents.addAll([
|
|
||||||
sectionSpacing,
|
|
||||||
const DangerSectionWidget(),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (FeatureFlagService.instance.isInternalUserOrDebugBuild() &&
|
if (FeatureFlagService.instance.isInternalUserOrDebugBuild() &&
|
||||||
hasLoggedIn) {
|
hasLoggedIn) {
|
||||||
|
|
Loading…
Reference in a new issue