From 6a5d50d1baa7761cb79d911b508eabfe7797b5f3 Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Fri, 19 Aug 2022 21:28:51 +0200 Subject: [PATCH] improvements --- lib/locale/l10n/app_en.arb | 2 ++ lib/screens/settings_screen.dart | 25 +++++++++++++++++++++---- lib/widgets/help_sheet.dart | 14 +++++++++++++- lib/widgets/modal_sheet.dart | 2 +- 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/lib/locale/l10n/app_en.arb b/lib/locale/l10n/app_en.arb index 6705f02..cc78100 100644 --- a/lib/locale/l10n/app_en.arb +++ b/lib/locale/l10n/app_en.arb @@ -152,6 +152,8 @@ "settingsScreenDeleteAccountConfirmLabel": "Delete Account now", "settingsScreenGeneralSectionTitle": "General", "settingsScreenGeneralSectionQualityLabel": "Quality", + "settingsScreenResetHelpSheetsLabel": "Reset Help Sheets", + "settingsScreenResetHelpSheetsResetSuccessfully": "Help Sheets reset successfully.", "calendarScreenTitle": "Calendar", diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart index 0dd695b..f2c93c1 100644 --- a/lib/screens/settings_screen.dart +++ b/lib/screens/settings_screen.dart @@ -9,6 +9,7 @@ import 'package:quid_faciam_hodie/constants/spacing.dart'; import 'package:quid_faciam_hodie/enum_mapping/resolution_preset/texts.dart'; import 'package:quid_faciam_hodie/extensions/snackbar.dart'; import 'package:quid_faciam_hodie/managers/global_values_manager.dart'; +import 'package:quid_faciam_hodie/managers/user_help_sheets_manager.dart'; import 'package:quid_faciam_hodie/screens/welcome_screen.dart'; import 'package:quid_faciam_hodie/utils/auth_required.dart'; import 'package:quid_faciam_hodie/utils/loadable.dart'; @@ -88,10 +89,10 @@ class _SettingsScreenState extends AuthRequiredState final items = ResolutionPreset.values .map( (value) => DropdownMenuItem( - value: value, - child: Text(resolutionTextMapping[value]!), - ), - ) + value: value, + child: Text(resolutionTextMapping[value]!), + ), + ) .toList(); if (isMaterial(context)) { @@ -203,6 +204,22 @@ class _SettingsScreenState extends AuthRequiredState .settingsScreenGeneralSectionQualityLabel, ), title: getPicker(), + ), + SettingsTile( + leading: Icon(context.platformIcons.help), + title: Text( + localizations.settingsScreenResetHelpSheetsLabel, + ), + onPressed: (_) async { + await UserHelpSheetsManager.deleteAll(); + + if (isMaterial(context)) { + context.showSuccessSnackBar( + message: localizations + .settingsScreenResetHelpSheetsResetSuccessfully, + ); + } + }, ) ], ), diff --git a/lib/widgets/help_sheet.dart b/lib/widgets/help_sheet.dart index a4ab296..d290754 100644 --- a/lib/widgets/help_sheet.dart +++ b/lib/widgets/help_sheet.dart @@ -14,6 +14,7 @@ class HelpSheet extends StatefulWidget { final Widget helpContent; final HelpSheetID helpID; final bool forceShow; + final bool checkOnStateChange; final VoidCallback? onSheetShown; final VoidCallback? onSheetHidden; @@ -24,6 +25,7 @@ class HelpSheet extends StatefulWidget { required this.helpContent, required this.helpID, this.forceShow = false, + this.checkOnStateChange = false, this.onSheetShown, this.onSheetHidden, }) : super(key: key); @@ -46,12 +48,21 @@ class _HelpSheetState extends State { } } + @override + void didUpdateWidget(covariant HelpSheet oldWidget) { + super.didUpdateWidget(oldWidget); + + if (widget.checkOnStateChange) { + checkIfSheetShouldBeShown(); + } + } + void showSheet() { if (isShowingSheet) { return; } - Timer(Duration(milliseconds: 300), () async { + Timer(const Duration(milliseconds: 300), () async { if (!mounted) { return; } @@ -111,6 +122,7 @@ class _HelpSheetState extends State { @override Widget build(BuildContext context) { return AnimatedScale( + alignment: Alignment.bottomCenter, scale: isShowingSheet ? .95 : 1, curve: Curves.easeOutSine, duration: const Duration(milliseconds: 500), diff --git a/lib/widgets/modal_sheet.dart b/lib/widgets/modal_sheet.dart index 6d21947..8a9d03f 100644 --- a/lib/widgets/modal_sheet.dart +++ b/lib/widgets/modal_sheet.dart @@ -31,7 +31,7 @@ class ModalSheet extends StatelessWidget { ), color: getSheetColor(context), ), - padding: const EdgeInsets.symmetric(vertical: MEDIUM_SPACE), + padding: const EdgeInsets.symmetric(vertical: LARGE_SPACE), child: innerChild, ), cupertino: (_, __) => CupertinoPopupSurface(