From 7b030e593128118a3e42a29f1e297c66bf202345 Mon Sep 17 00:00:00 2001 From: Ming Ming Date: Sat, 10 Sep 2022 15:13:14 +0800 Subject: [PATCH] Add pref to updated Editor settings --- app/lib/l10n/app_en.arb | 16 +++-- app/lib/l10n/untranslated-messages.txt | 90 +++++++++++++++++++------- app/lib/widget/settings.dart | 39 +++++++++-- 3 files changed, 112 insertions(+), 33 deletions(-) diff --git a/app/lib/l10n/app_en.arb b/app/lib/l10n/app_en.arb index ebabd151..b0f95477 100644 --- a/app/lib/l10n/app_en.arb +++ b/app/lib/l10n/app_en.arb @@ -403,13 +403,19 @@ }, "settingsShowDateInAlbumTitle": "Group photos by date", "settingsShowDateInAlbumDescription": "Apply only when the album is sorted by time", - "settingsPhotoEnhancementTitle": "Photo enhancement", - "settingsPhotoEnhancementPageTitle": "Photo enhancement settings", - "@settingsPhotoEnhancementPageTitle": { - "description": "Dedicated page for photo enhancement settings" + "settingsImageEditTitle": "Editor", + "@settingsImageEditTitle": { + "description": "Include settings for image enhancements and the image editor" }, - "settingsEnhanceMaxResolutionTitle": "Max output resolution", + "settingsImageEditDescription": "Customize image enhancements and the image editor", + "settingsEnhanceMaxResolutionTitle2": "Image resolution for enhancements", "settingsEnhanceMaxResolutionDescription": "Photos larger than the selected resolution will be downscaled.\n\nHigh resolution photos require significantly more memory and time to process. Please lower this setting if the app crashed while enhancing your photos.", + "settingsImageEditSaveResultsToServerTitle": "Save results to server", + "@settingsImageEditSaveResultsToServerTitle": { + "description": "Whether to save the edit/enhance results to server instead of the current device" + }, + "settingsImageEditSaveResultsToServerTrueDescription": "Results are saved to server, fallback to device storage if failed", + "settingsImageEditSaveResultsToServerFalseDescription": "Results are saved to this device", "settingsThemeTitle": "Theme", "settingsThemeDescription": "Customize the appearance of the app", "settingsThemePageTitle": "Theme settings", diff --git a/app/lib/l10n/untranslated-messages.txt b/app/lib/l10n/untranslated-messages.txt index 6fd6c4e3..96c61643 100644 --- a/app/lib/l10n/untranslated-messages.txt +++ b/app/lib/l10n/untranslated-messages.txt @@ -25,10 +25,13 @@ "settingsAlbumPageTitle", "settingsShowDateInAlbumTitle", "settingsShowDateInAlbumDescription", - "settingsPhotoEnhancementTitle", - "settingsPhotoEnhancementPageTitle", - "settingsEnhanceMaxResolutionTitle", + "settingsImageEditTitle", + "settingsImageEditDescription", + "settingsEnhanceMaxResolutionTitle2", "settingsEnhanceMaxResolutionDescription", + "settingsImageEditSaveResultsToServerTitle", + "settingsImageEditSaveResultsToServerTrueDescription", + "settingsImageEditSaveResultsToServerFalseDescription", "settingsMiscellaneousTitle", "settingsMiscellaneousPageTitle", "settingsDoubleTapExitTitle", @@ -190,10 +193,13 @@ "settingsAlbumPageTitle", "settingsShowDateInAlbumTitle", "settingsShowDateInAlbumDescription", - "settingsPhotoEnhancementTitle", - "settingsPhotoEnhancementPageTitle", - "settingsEnhanceMaxResolutionTitle", + "settingsImageEditTitle", + "settingsImageEditDescription", + "settingsEnhanceMaxResolutionTitle2", "settingsEnhanceMaxResolutionDescription", + "settingsImageEditSaveResultsToServerTitle", + "settingsImageEditSaveResultsToServerTrueDescription", + "settingsImageEditSaveResultsToServerFalseDescription", "settingsMiscellaneousTitle", "settingsMiscellaneousPageTitle", "settingsDoubleTapExitTitle", @@ -351,6 +357,12 @@ "settingsPhotosPageTitle", "settingsMemoriesRangeTitle", "settingsMemoriesRangeValueText", + "settingsImageEditTitle", + "settingsImageEditDescription", + "settingsEnhanceMaxResolutionTitle2", + "settingsImageEditSaveResultsToServerTitle", + "settingsImageEditSaveResultsToServerTrueDescription", + "settingsImageEditSaveResultsToServerFalseDescription", "settingsDoubleTapExitTitle", "shareMethodPreviewTitle", "shareMethodPreviewDescription", @@ -406,6 +418,12 @@ "settingsPhotosPageTitle", "settingsMemoriesRangeTitle", "settingsMemoriesRangeValueText", + "settingsImageEditTitle", + "settingsImageEditDescription", + "settingsEnhanceMaxResolutionTitle2", + "settingsImageEditSaveResultsToServerTitle", + "settingsImageEditSaveResultsToServerTrueDescription", + "settingsImageEditSaveResultsToServerFalseDescription", "rootPickerSkipConfirmationDialogContent2", "shareMethodPreviewTitle", "shareMethodPreviewDescription", @@ -429,6 +447,12 @@ "settingsPhotosPageTitle", "settingsMemoriesRangeTitle", "settingsMemoriesRangeValueText", + "settingsImageEditTitle", + "settingsImageEditDescription", + "settingsEnhanceMaxResolutionTitle2", + "settingsImageEditSaveResultsToServerTitle", + "settingsImageEditSaveResultsToServerTrueDescription", + "settingsImageEditSaveResultsToServerFalseDescription", "shareMethodPreviewTitle", "shareMethodPreviewDescription", "shareMethodOriginalFileTitle", @@ -456,10 +480,13 @@ "settingsPhotosPageTitle", "settingsMemoriesRangeTitle", "settingsMemoriesRangeValueText", - "settingsPhotoEnhancementTitle", - "settingsPhotoEnhancementPageTitle", - "settingsEnhanceMaxResolutionTitle", + "settingsImageEditTitle", + "settingsImageEditDescription", + "settingsEnhanceMaxResolutionTitle2", "settingsEnhanceMaxResolutionDescription", + "settingsImageEditSaveResultsToServerTitle", + "settingsImageEditSaveResultsToServerTrueDescription", + "settingsImageEditSaveResultsToServerFalseDescription", "settingsMiscellaneousTitle", "settingsMiscellaneousPageTitle", "settingsDoubleTapExitTitle", @@ -539,10 +566,13 @@ "settingsPhotosPageTitle", "settingsMemoriesRangeTitle", "settingsMemoriesRangeValueText", - "settingsPhotoEnhancementTitle", - "settingsPhotoEnhancementPageTitle", - "settingsEnhanceMaxResolutionTitle", + "settingsImageEditTitle", + "settingsImageEditDescription", + "settingsEnhanceMaxResolutionTitle2", "settingsEnhanceMaxResolutionDescription", + "settingsImageEditSaveResultsToServerTitle", + "settingsImageEditSaveResultsToServerTrueDescription", + "settingsImageEditSaveResultsToServerFalseDescription", "settingsMiscellaneousTitle", "settingsMiscellaneousPageTitle", "settingsDoubleTapExitTitle", @@ -640,10 +670,13 @@ "settingsPhotosPageTitle", "settingsMemoriesRangeTitle", "settingsMemoriesRangeValueText", - "settingsPhotoEnhancementTitle", - "settingsPhotoEnhancementPageTitle", - "settingsEnhanceMaxResolutionTitle", + "settingsImageEditTitle", + "settingsImageEditDescription", + "settingsEnhanceMaxResolutionTitle2", "settingsEnhanceMaxResolutionDescription", + "settingsImageEditSaveResultsToServerTitle", + "settingsImageEditSaveResultsToServerTrueDescription", + "settingsImageEditSaveResultsToServerFalseDescription", "settingsMiscellaneousTitle", "settingsMiscellaneousPageTitle", "settingsDoubleTapExitTitle", @@ -720,10 +753,13 @@ "settingsPhotosPageTitle", "settingsMemoriesRangeTitle", "settingsMemoriesRangeValueText", - "settingsPhotoEnhancementTitle", - "settingsPhotoEnhancementPageTitle", - "settingsEnhanceMaxResolutionTitle", + "settingsImageEditTitle", + "settingsImageEditDescription", + "settingsEnhanceMaxResolutionTitle2", "settingsEnhanceMaxResolutionDescription", + "settingsImageEditSaveResultsToServerTitle", + "settingsImageEditSaveResultsToServerTrueDescription", + "settingsImageEditSaveResultsToServerFalseDescription", "settingsMiscellaneousTitle", "settingsMiscellaneousPageTitle", "settingsDoubleTapExitTitle", @@ -800,10 +836,13 @@ "settingsPhotosPageTitle", "settingsMemoriesRangeTitle", "settingsMemoriesRangeValueText", - "settingsPhotoEnhancementTitle", - "settingsPhotoEnhancementPageTitle", - "settingsEnhanceMaxResolutionTitle", + "settingsImageEditTitle", + "settingsImageEditDescription", + "settingsEnhanceMaxResolutionTitle2", "settingsEnhanceMaxResolutionDescription", + "settingsImageEditSaveResultsToServerTitle", + "settingsImageEditSaveResultsToServerTrueDescription", + "settingsImageEditSaveResultsToServerFalseDescription", "settingsMiscellaneousTitle", "settingsMiscellaneousPageTitle", "settingsDoubleTapExitTitle", @@ -880,10 +919,13 @@ "settingsPhotosPageTitle", "settingsMemoriesRangeTitle", "settingsMemoriesRangeValueText", - "settingsPhotoEnhancementTitle", - "settingsPhotoEnhancementPageTitle", - "settingsEnhanceMaxResolutionTitle", + "settingsImageEditTitle", + "settingsImageEditDescription", + "settingsEnhanceMaxResolutionTitle2", "settingsEnhanceMaxResolutionDescription", + "settingsImageEditSaveResultsToServerTitle", + "settingsImageEditSaveResultsToServerTrueDescription", + "settingsImageEditSaveResultsToServerFalseDescription", "settingsMiscellaneousTitle", "settingsMiscellaneousPageTitle", "settingsDoubleTapExitTitle", diff --git a/app/lib/widget/settings.dart b/app/lib/widget/settings.dart index 42b57b4b..6c56d795 100644 --- a/app/lib/widget/settings.dart +++ b/app/lib/widget/settings.dart @@ -177,7 +177,8 @@ class _SettingsState extends State { Icons.auto_fix_high_outlined, color: AppTheme.getUnfocusedIconColor(context), ), - label: L10n.global().settingsPhotoEnhancementTitle, + label: L10n.global().settingsImageEditTitle, + description: L10n.global().settingsImageEditDescription, builder: () => const EnhancementSettings(), ), _buildSubSettings( @@ -1293,6 +1294,7 @@ class _EnhancementSettingsState extends State { super.initState(); _maxWidth = Pref().getEnhanceMaxWidthOr(); _maxHeight = Pref().getEnhanceMaxHeightOr(); + _isSaveEditResultToServer = Pref().isSaveEditResultToServerOr(); } @override @@ -1311,13 +1313,24 @@ class _EnhancementSettingsState extends State { slivers: [ SliverAppBar( pinned: true, - title: Text(L10n.global().settingsPhotoEnhancementPageTitle), + title: Text(L10n.global().settingsImageEditTitle), ), SliverList( delegate: SliverChildListDelegate( [ + SwitchListTile( + title: Text( + L10n.global().settingsImageEditSaveResultsToServerTitle), + subtitle: Text(_isSaveEditResultToServer + ? L10n.global() + .settingsImageEditSaveResultsToServerTrueDescription + : L10n.global() + .settingsImageEditSaveResultsToServerFalseDescription), + value: _isSaveEditResultToServer, + onChanged: _onSaveEditResultToServerChanged, + ), ListTile( - title: Text(L10n.global().settingsEnhanceMaxResolutionTitle), + title: Text(L10n.global().settingsEnhanceMaxResolutionTitle2), subtitle: Text("${_maxWidth}x$_maxHeight"), onTap: () => _onMaxResolutionTap(context), ), @@ -1335,7 +1348,7 @@ class _EnhancementSettingsState extends State { context: context, builder: (_) => AppTheme( child: AlertDialog( - title: Text(L10n.global().settingsEnhanceMaxResolutionTitle), + title: Text(L10n.global().settingsEnhanceMaxResolutionTitle2), content: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, @@ -1394,8 +1407,26 @@ class _EnhancementSettingsState extends State { } } + Future _onSaveEditResultToServerChanged(bool value) async { + final oldValue = _isSaveEditResultToServer; + setState(() { + _isSaveEditResultToServer = value; + }); + if (!await Pref().setSaveEditResultToServer(value)) { + _log.severe("[_onSaveEditResultToServerChanged] Failed writing pref"); + SnackBarManager().showSnackBar(SnackBar( + content: Text(L10n.global().writePreferenceFailureNotification), + duration: k.snackBarDurationNormal, + )); + setState(() { + _isSaveEditResultToServer = oldValue; + }); + } + } + late int _maxWidth; late int _maxHeight; + late bool _isSaveEditResultToServer; static final _log = Logger("widget.settings._EnhancementSettingsState"); }