#347 widget: option to open collection on tap

This commit is contained in:
Thibault Deckers 2022-10-11 18:30:23 +02:00
parent 9a9b753982
commit 59fe826e24
8 changed files with 56 additions and 5 deletions

View file

@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
## <a id="unreleased"></a>[Unreleased]
### Added
- Widget: option to open collection on tap
## <a id="v1.7.1"></a>[v1.7.1] - 2022-10-09
### Added

View file

@ -216,6 +216,7 @@
"wallpaperTargetHomeLock": "Home and lock screens",
"widgetOpenPageHome": "Open home",
"widgetOpenPageCollection": "Open collection",
"widgetOpenPageViewer": "Open viewer",
"albumTierNew": "New",

View file

@ -176,6 +176,7 @@
"wallpaperTargetHomeLock": "Écrans accueil et verrouillage",
"widgetOpenPageHome": "Ouvrir la page daccueil",
"widgetOpenPageCollection": "Ouvrir la collection",
"widgetOpenPageViewer": "Ouvrir la visionneuse",
"albumTierNew": "Nouveaux",

View file

@ -176,6 +176,7 @@
"wallpaperTargetHomeLock": "홈 및 잠금화면",
"widgetOpenPageHome": "홈 열기",
"widgetOpenPageCollection": "미디어 열기",
"widgetOpenPageViewer": "뷰어 열기",
"albumTierNew": "신규",

View file

@ -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 }

View file

@ -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;
}

View file

@ -106,6 +106,7 @@ class _HomePageState extends State<HomePage> {
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<HomePage> {
// 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<HomePage> {
_initialRouteName = extraRoute;
}
}
final extraFilters = intentData[intentDataKeyFilters];
_initialFilters = extraFilters != null ? (extraFilters as List).cast<String>().map(CollectionFilter.fromJson).whereNotNull().toSet() : null;
if (_initialFilters == null) {
final extraFilters = intentData[intentDataKeyFilters];
_initialFilters = extraFilters != null ? (extraFilters as List).cast<String>().map(CollectionFilter.fromJson).whereNotNull().toSet() : null;
}
}
context.read<ValueNotifier<AppMode>>().value = appMode;
unawaited(reportService.setCustomKey('app_mode', appMode.toString()));

View file

@ -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"
]
}