diff --git a/CHANGELOG.md b/CHANGELOG.md index 0dea5d4bc..c1d9a060a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Added + +- Widget: option to open collection on tap + ## [v1.7.1] - 2022-10-09 ### Added diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 24e1a4a56..63c3eb9d1 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -216,6 +216,7 @@ "wallpaperTargetHomeLock": "Home and lock screens", "widgetOpenPageHome": "Open home", + "widgetOpenPageCollection": "Open collection", "widgetOpenPageViewer": "Open viewer", "albumTierNew": "New", diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 391229e97..33e4ec23b 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -176,6 +176,7 @@ "wallpaperTargetHomeLock": "Écrans accueil et verrouillage", "widgetOpenPageHome": "Ouvrir la page d’accueil", + "widgetOpenPageCollection": "Ouvrir la collection", "widgetOpenPageViewer": "Ouvrir la visionneuse", "albumTierNew": "Nouveaux", diff --git a/lib/l10n/app_ko.arb b/lib/l10n/app_ko.arb index b311241e8..c67b589eb 100644 --- a/lib/l10n/app_ko.arb +++ b/lib/l10n/app_ko.arb @@ -176,6 +176,7 @@ "wallpaperTargetHomeLock": "홈 및 잠금화면", "widgetOpenPageHome": "홈 열기", + "widgetOpenPageCollection": "미디어 열기", "widgetOpenPageViewer": "뷰어 열기", "albumTierNew": "신규", diff --git a/lib/model/settings/enums/enums.dart b/lib/model/settings/enums/enums.dart index 79f4cc1e7..74868f0bf 100644 --- a/lib/model/settings/enums/enums.dart +++ b/lib/model/settings/enums/enums.dart @@ -32,6 +32,6 @@ enum VideoAutoPlayMode { disabled, playMuted, playWithSound } enum ViewerTransition { slide, parallax, fade, zoomIn, none } -enum WidgetOpenPage { home, viewer } +enum WidgetOpenPage { home, collection, viewer } enum WidgetShape { rrect, circle, heart } diff --git a/lib/model/settings/enums/widget_open_action.dart b/lib/model/settings/enums/widget_open_action.dart index 804b99b46..333be5fca 100644 --- a/lib/model/settings/enums/widget_open_action.dart +++ b/lib/model/settings/enums/widget_open_action.dart @@ -7,6 +7,8 @@ extension ExtraWidgetOpenPage on WidgetOpenPage { switch (this) { case WidgetOpenPage.home: return context.l10n.widgetOpenPageHome; + case WidgetOpenPage.collection: + return context.l10n.widgetOpenPageCollection; case WidgetOpenPage.viewer: return context.l10n.widgetOpenPageViewer; } diff --git a/lib/widgets/home_page.dart b/lib/widgets/home_page.dart index 0eee4039a..3f84fb4ca 100644 --- a/lib/widgets/home_page.dart +++ b/lib/widgets/home_page.dart @@ -106,6 +106,7 @@ class _HomePageState extends State { var appMode = AppMode.main; final intentData = widget.intentData ?? await IntentService.getIntentData(); final intentAction = intentData[intentDataKeyAction]; + _initialFilters = null; await androidFileUtils.init(); if (!{actionScreenSaver, actionSetWallpaper}.contains(intentAction) && settings.isInstalledAppAccessAllowed) { @@ -123,8 +124,15 @@ class _HomePageState extends State { // widget settings may be modified in a different process after channel setup await settings.reload(); final page = settings.getWidgetOpenPage(widgetId); - if (page == WidgetOpenPage.viewer) { - uri = settings.getWidgetUri(widgetId); + switch (page) { + case WidgetOpenPage.home: + break; + case WidgetOpenPage.collection: + _initialFilters = settings.getWidgetCollectionFilters(widgetId); + break; + case WidgetOpenPage.viewer: + uri = settings.getWidgetUri(widgetId); + break; } unawaited(WidgetService.update(widgetId)); } else { @@ -181,8 +189,10 @@ class _HomePageState extends State { _initialRouteName = extraRoute; } } - final extraFilters = intentData[intentDataKeyFilters]; - _initialFilters = extraFilters != null ? (extraFilters as List).cast().map(CollectionFilter.fromJson).whereNotNull().toSet() : null; + if (_initialFilters == null) { + final extraFilters = intentData[intentDataKeyFilters]; + _initialFilters = extraFilters != null ? (extraFilters as List).cast().map(CollectionFilter.fromJson).whereNotNull().toSet() : null; + } } context.read>().value = appMode; unawaited(reportService.setCustomKey('app_mode', appMode.toString())); diff --git a/untranslated.json b/untranslated.json index e034aad2b..e5aded61f 100644 --- a/untranslated.json +++ b/untranslated.json @@ -1,4 +1,12 @@ { + "de": [ + "widgetOpenPageCollection" + ], + + "el": [ + "widgetOpenPageCollection" + ], + "es": [ "chipActionFilterOut", "chipActionFilterIn", @@ -8,6 +16,7 @@ "filterRecentlyAddedLabel", "viewerTransitionNone", "widgetOpenPageHome", + "widgetOpenPageCollection", "widgetOpenPageViewer", "viewDialogReverseSortOrder", "tileLayoutMosaic", @@ -36,6 +45,7 @@ "chipActionFilterIn", "viewerTransitionNone", "widgetOpenPageHome", + "widgetOpenPageCollection", "widgetOpenPageViewer", "tileLayoutMosaic", "albumGroupType", @@ -47,6 +57,10 @@ "wallpaperUseScrollEffect" ], + "it": [ + "widgetOpenPageCollection" + ], + "ja": [ "chipActionFilterOut", "chipActionFilterIn", @@ -56,6 +70,7 @@ "filterRecentlyAddedLabel", "viewerTransitionNone", "widgetOpenPageHome", + "widgetOpenPageCollection", "widgetOpenPageViewer", "viewDialogReverseSortOrder", "tileLayoutMosaic", @@ -80,6 +95,18 @@ "wallpaperUseScrollEffect" ], + "nl": [ + "widgetOpenPageCollection" + ], + + "pt": [ + "widgetOpenPageCollection" + ], + + "ru": [ + "widgetOpenPageCollection" + ], + "tr": [ "chipActionFilterOut", "chipActionFilterIn", @@ -102,6 +129,7 @@ "wallpaperTargetLock", "wallpaperTargetHomeLock", "widgetOpenPageHome", + "widgetOpenPageCollection", "widgetOpenPageViewer", "menuActionSlideshow", "viewDialogReverseSortOrder", @@ -137,5 +165,9 @@ "viewerSetWallpaperButtonLabel", "viewerInfoLabelDescription", "wallpaperUseScrollEffect" + ], + + "zh": [ + "widgetOpenPageCollection" ] }