#763 allow setting any filtered collection as home page

This commit is contained in:
Thibault Deckers 2024-01-07 01:04:59 +01:00
parent 694c5941cb
commit 58e12d147d
15 changed files with 152 additions and 10 deletions

View file

@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
### Added
- Collection: allow hiding thumbnail overlay HDR icon
- Collection: allow setting any filtered collection as home page
### Changed

View file

@ -570,6 +570,7 @@
"collectionActionShowTitleSearch": "Show title filter",
"collectionActionHideTitleSearch": "Hide title filter",
"collectionActionAddShortcut": "Add shortcut",
"collectionActionSetHome": "Set as home",
"collectionActionEmptyBin": "Empty bin",
"collectionActionCopy": "Copy to album",
"collectionActionMove": "Move to album",
@ -757,6 +758,7 @@
"settingsNavigationSectionTitle": "Navigation",
"settingsHomeTile": "Home",
"settingsHomeDialogTitle": "Home",
"setHomeCustomCollection": "Custom collection",
"settingsShowBottomNavigationBar": "Show bottom navigation bar",
"settingsKeepScreenOnTile": "Keep screen on",
"settingsKeepScreenOnDialogTitle": "Keep Screen On",

View file

@ -1,6 +1,7 @@
import 'package:aves/model/filters/filters.dart';
import 'package:aves/model/settings/defaults.dart';
import 'package:aves_model/aves_model.dart';
import 'package:collection/collection.dart';
mixin NavigationSettings on SettingsAccess {
bool get mustBackTwiceToExit => getBool(SettingKeys.mustBackTwiceToExitKey) ?? SettingsDefaults.mustBackTwiceToExit;
@ -15,6 +16,10 @@ mixin NavigationSettings on SettingsAccess {
set homePage(HomePageSetting newValue) => set(SettingKeys.homePageKey, newValue.toString());
Set<CollectionFilter> get homeCustomCollection => (getStringList(SettingKeys.homeCustomCollectionKey) ?? []).map(CollectionFilter.fromJson).whereNotNull().toSet();
set homeCustomCollection(Set<CollectionFilter> newValue) => set(SettingKeys.homeCustomCollectionKey, newValue.map((filter) => filter.toJson()).toList());
bool get enableBottomNavigationBar => getBool(SettingKeys.enableBottomNavigationBarKey) ?? SettingsDefaults.enableBottomNavigationBar;
set enableBottomNavigationBar(bool newValue) => set(SettingKeys.enableBottomNavigationBarKey, newValue);

View file

@ -472,6 +472,7 @@ class Settings with ChangeNotifier, SettingsAccess, AppSettings, DisplaySettings
} else {
debugPrint('failed to import key=$key, value=$newValue is not a string');
}
case SettingKeys.homeCustomCollectionKey:
case SettingKeys.drawerTypeBookmarksKey:
case SettingKeys.drawerAlbumBookmarksKey:
case SettingKeys.drawerPageBookmarksKey:

View file

@ -17,6 +17,7 @@ extension ExtraEntrySetActionView on EntrySetAction {
// different data depending on toggle state
context.l10n.collectionActionShowTitleSearch,
EntrySetAction.addShortcut => context.l10n.collectionActionAddShortcut,
EntrySetAction.setHome => context.l10n.collectionActionSetHome,
EntrySetAction.emptyBin => context.l10n.collectionActionEmptyBin,
// browsing or selecting
EntrySetAction.map => context.l10n.menuActionMap,
@ -61,6 +62,7 @@ extension ExtraEntrySetActionView on EntrySetAction {
// different data depending on toggle state
AIcons.filter,
EntrySetAction.addShortcut => AIcons.addShortcut,
EntrySetAction.setHome => AIcons.home,
EntrySetAction.emptyBin => AIcons.emptyBin,
// browsing or selecting
EntrySetAction.map => AIcons.map,

View file

@ -618,6 +618,7 @@ class _CollectionAppBarState extends State<CollectionAppBar> with SingleTickerPr
case EntrySetAction.searchCollection:
case EntrySetAction.toggleTitleSearch:
case EntrySetAction.addShortcut:
case EntrySetAction.setHome:
// browsing or selecting
case EntrySetAction.map:
case EntrySetAction.slideshow:

View file

@ -75,7 +75,9 @@ class EntrySetActionDelegate with FeedbackMixin, PermissionAwareMixin, SizeAware
case EntrySetAction.toggleTitleSearch:
return !useTvLayout && !isSelecting;
case EntrySetAction.addShortcut:
return isMain && !isSelecting && device.canPinShortcut && !isTrash;
return isMain && !isSelecting && !isTrash && device.canPinShortcut;
case EntrySetAction.setHome:
return isMain && !isSelecting && !isTrash && !useTvLayout;
case EntrySetAction.emptyBin:
return canWrite && isMain && isTrash;
// browsing or selecting
@ -131,6 +133,7 @@ class EntrySetActionDelegate with FeedbackMixin, PermissionAwareMixin, SizeAware
case EntrySetAction.searchCollection:
case EntrySetAction.toggleTitleSearch:
case EntrySetAction.addShortcut:
case EntrySetAction.setHome:
return true;
case EntrySetAction.emptyBin:
return !isSelecting && hasItems;
@ -177,6 +180,8 @@ class EntrySetActionDelegate with FeedbackMixin, PermissionAwareMixin, SizeAware
context.read<Query>().toggle();
case EntrySetAction.addShortcut:
_addShortcut(context);
case EntrySetAction.setHome:
_setHome(context);
// browsing or selecting
case EntrySetAction.map:
_goToMap(context);
@ -727,4 +732,10 @@ class EntrySetActionDelegate with FeedbackMixin, PermissionAwareMixin, SizeAware
showFeedback(context, FeedbackType.info, context.l10n.genericSuccessFeedback);
}
}
void _setHome(BuildContext context) async {
settings.homeCustomCollection = context.read<CollectionLens>().filters;
settings.homePage = HomePageSetting.collection;
showFeedback(context, FeedbackType.info, context.l10n.genericSuccessFeedback);
}
}

View file

@ -3,6 +3,8 @@ import 'package:aves/widgets/dialogs/selection_dialogs/common.dart';
import 'package:aves/widgets/dialogs/selection_dialogs/radio_list_tile.dart';
import 'package:flutter/material.dart';
// do not use as `T` a record containing a collection
// because radio value comparison will fail without deep equality
class AvesSingleSelectionDialog<T> extends StatefulWidget {
static const routeName = '/dialog/selection';

View file

@ -196,7 +196,7 @@ class _HomePageState extends State<HomePage> {
unawaited(AnalysisService.registerCallback());
final source = context.read<CollectionSource>();
await source.init(
loadTopEntriesFirst: settings.homePage == HomePageSetting.collection,
loadTopEntriesFirst: settings.homePage == HomePageSetting.collection && settings.homeCustomCollection.isEmpty,
canAnalyze: !safeMode,
);
case AppMode.screenSaver:
@ -338,7 +338,7 @@ class _HomePageState extends State<HomePage> {
case AppMode.screenSaver:
case AppMode.slideshow:
routeName = _initialRouteName ?? settings.homePage.routeName;
filters = _initialFilters ?? {};
filters = _initialFilters ?? (settings.homePage == HomePageSetting.collection ? settings.homeCustomCollection : {});
}
Route buildRoute(WidgetBuilder builder) => DirectMaterialPageRoute(
settings: RouteSettings(name: routeName),

View file

@ -1,5 +1,6 @@
import 'dart:async';
import 'package:aves/model/filters/filters.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/theme/colors.dart';
import 'package:aves/theme/icons.dart';
@ -11,6 +12,7 @@ import 'package:aves/widgets/settings/navigation/confirmation_dialogs.dart';
import 'package:aves/widgets/settings/navigation/drawer.dart';
import 'package:aves/widgets/settings/settings_definition.dart';
import 'package:aves_model/aves_model.dart';
import 'package:collection/collection.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@ -38,16 +40,47 @@ class NavigationSection extends SettingsSection {
];
}
class _HomeOption {
final HomePageSetting page;
final Set<CollectionFilter> customCollection;
const _HomeOption(
this.page, {
this.customCollection = const {},
});
String getName(BuildContext context) {
if (page == HomePageSetting.collection && customCollection.isNotEmpty) {
return context.l10n.setHomeCustomCollection;
}
return page.getName(context);
}
@override
bool operator ==(Object other) => identical(this, other) || other is _HomeOption && runtimeType == other.runtimeType && page == other.page && const DeepCollectionEquality().equals(customCollection, other.customCollection);
@override
int get hashCode => page.hashCode ^ customCollection.hashCode;
}
class SettingsTileNavigationHomePage extends SettingsTile {
@override
String title(BuildContext context) => context.l10n.settingsHomeTile;
@override
Widget build(BuildContext context) => SettingsSelectionListTile<HomePageSetting>(
values: HomePageSetting.values,
Widget build(BuildContext context) => SettingsSelectionListTile<_HomeOption>(
values: [
const _HomeOption(HomePageSetting.collection),
const _HomeOption(HomePageSetting.albums),
const _HomeOption(HomePageSetting.tags),
if (settings.homeCustomCollection.isNotEmpty) _HomeOption(HomePageSetting.collection, customCollection: settings.homeCustomCollection),
],
getName: (context, v) => v.getName(context),
selector: (context, s) => s.homePage,
onSelection: (v) => settings.homePage = v,
selector: (context, s) => _HomeOption(s.homePage, customCollection: s.homeCustomCollection),
onSelection: (v) {
settings.homePage = v.page;
settings.homeCustomCollection = v.customCollection;
},
tileTitle: title(context),
dialogTitle: context.l10n.settingsHomeDialogTitle,
);

View file

@ -8,6 +8,7 @@ enum EntrySetAction {
searchCollection,
toggleTitleSearch,
addShortcut,
setHome,
emptyBin,
// browsing or selecting
map,
@ -47,6 +48,7 @@ class EntrySetActions {
EntrySetAction.searchCollection,
EntrySetAction.toggleTitleSearch,
EntrySetAction.addShortcut,
EntrySetAction.setHome,
null,
EntrySetAction.map,
EntrySetAction.slideshow,
@ -60,11 +62,9 @@ class EntrySetActions {
static const collectionEditorBrowsing = [
EntrySetAction.searchCollection,
EntrySetAction.toggleTitleSearch,
EntrySetAction.addShortcut,
EntrySetAction.map,
EntrySetAction.slideshow,
EntrySetAction.stats,
EntrySetAction.rescan,
];
// `null` items are converted to dividers
@ -98,7 +98,6 @@ class EntrySetActions {
EntrySetAction.map,
EntrySetAction.slideshow,
EntrySetAction.stats,
EntrySetAction.rescan,
// editing actions are in their subsection
];

View file

@ -41,6 +41,7 @@ class SettingKeys {
static const mustBackTwiceToExitKey = 'must_back_twice_to_exit';
static const keepScreenOnKey = 'keep_screen_on';
static const homePageKey = 'home_page';
static const homeCustomCollectionKey = 'home_custom_collection';
static const enableBottomNavigationBarKey = 'show_bottom_navigation_bar';
static const confirmCreateVaultKey = 'confirm_create_vault';
static const confirmDeleteForeverKey = 'confirm_delete_forever';

View file

@ -31,6 +31,7 @@ Future<void> configureAndLaunch() async {
// navigation
..keepScreenOn = KeepScreenOn.always
..homePage = HomePageSetting.collection
..homeCustomCollection = {}
..enableBottomNavigationBar = true
..drawerTypeBookmarks = [null, FavouriteFilter.instance]
// collection

View file

@ -27,6 +27,7 @@ Future<void> configureAndLaunch() async {
// navigation
..keepScreenOn = KeepScreenOn.always
..homePage = HomePageSetting.collection
..homeCustomCollection = {}
..enableBottomNavigationBar = true
// collection
..collectionSectionFactor = EntryGroupFactor.album

View file

@ -1,9 +1,13 @@
{
"ar": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
"be": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
@ -333,6 +337,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -447,6 +452,7 @@
"settingsNavigationSectionTitle",
"settingsHomeTile",
"settingsHomeDialogTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -870,6 +876,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -984,6 +991,7 @@
"settingsNavigationSectionTitle",
"settingsHomeTile",
"settingsHomeDialogTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -1203,6 +1211,8 @@
],
"cs": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
@ -1210,6 +1220,8 @@
"entryActionCast",
"overlayHistogramNone",
"castDialogTitle",
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
@ -1227,15 +1239,21 @@
"aboutDataUsageInternal",
"aboutDataUsageExternal",
"aboutDataUsageClearCache",
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon",
"settingsViewerShowHistogram"
],
"es": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
"eu": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
@ -1370,6 +1388,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -1476,6 +1495,7 @@
"settingsNavigationSectionTitle",
"settingsHomeTile",
"settingsHomeDialogTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -1902,6 +1922,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -2016,6 +2037,7 @@
"settingsNavigationSectionTitle",
"settingsHomeTile",
"settingsHomeDialogTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -2235,6 +2257,8 @@
],
"fr": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
@ -2457,6 +2481,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -2571,6 +2596,7 @@
"settingsNavigationSectionTitle",
"settingsHomeTile",
"settingsHomeDialogTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -3136,6 +3162,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -3250,6 +3277,7 @@
"settingsNavigationSectionTitle",
"settingsHomeTile",
"settingsHomeDialogTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -3795,6 +3823,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -3909,6 +3938,7 @@
"settingsNavigationSectionTitle",
"settingsHomeTile",
"settingsHomeDialogTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -4128,20 +4158,28 @@
],
"hu": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
"id": [
"entryActionCast",
"castDialogTitle",
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
"is": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
"it": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
@ -4185,11 +4223,13 @@
"aboutDataUsageInternal",
"aboutDataUsageExternal",
"aboutDataUsageClearCache",
"collectionActionSetHome",
"stateEmpty",
"placeEmpty",
"searchStatesSectionTitle",
"settingsAskEverytime",
"settingsModificationWarningDialogMessage",
"setHomeCustomCollection",
"settingsConfirmationVaultDataLoss",
"settingsThumbnailShowHdrIcon",
"settingsCollectionBurstPatternsTile",
@ -4531,6 +4571,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -4645,6 +4686,7 @@
"settingsNavigationSectionTitle",
"settingsHomeTile",
"settingsHomeDialogTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -4864,6 +4906,8 @@
],
"ko": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
@ -4929,6 +4973,7 @@
"aboutDataUsageInternal",
"aboutDataUsageExternal",
"aboutDataUsageClearCache",
"collectionActionSetHome",
"drawerPlacePage",
"statePageTitle",
"stateEmpty",
@ -4937,6 +4982,7 @@
"searchStatesSectionTitle",
"settingsAskEverytime",
"settingsModificationWarningDialogMessage",
"setHomeCustomCollection",
"settingsConfirmationVaultDataLoss",
"settingsThumbnailShowHdrIcon",
"settingsCollectionBurstPatternsTile",
@ -5309,6 +5355,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -5423,6 +5470,7 @@
"settingsNavigationSectionTitle",
"settingsHomeTile",
"settingsHomeDialogTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -5652,8 +5700,10 @@
"menuActionConfigureView",
"castDialogTitle",
"aboutDataUsageClearCache",
"collectionActionSetHome",
"newFilterBanner",
"settingsDefault",
"setHomeCustomCollection",
"settingsNavigationDrawerTile",
"settingsNavigationDrawerEditorPageTitle",
"settingsThumbnailSectionTitle",
@ -5771,6 +5821,8 @@
"aboutDataUsageInternal",
"aboutDataUsageExternal",
"aboutDataUsageClearCache",
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon",
"settingsCollectionBurstPatternsTile",
"settingsCollectionBurstPatternsNone",
@ -5833,6 +5885,7 @@
"aboutDataUsageInternal",
"aboutDataUsageExternal",
"aboutDataUsageClearCache",
"collectionActionSetHome",
"drawerPlacePage",
"statePageTitle",
"stateEmpty",
@ -5841,6 +5894,7 @@
"searchStatesSectionTitle",
"settingsAskEverytime",
"settingsModificationWarningDialogMessage",
"setHomeCustomCollection",
"settingsConfirmationVaultDataLoss",
"settingsThumbnailShowHdrIcon",
"settingsCollectionBurstPatternsTile",
@ -5892,7 +5946,9 @@
"aboutLicensesAndroidLibrariesSectionTitle",
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionSetHome",
"drawerCollectionAnimated",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon",
"settingsViewerShowHistogram",
"settingsSlideshowAnimatedZoomEffect",
@ -6210,6 +6266,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -6301,6 +6358,7 @@
"appExportCovers",
"appExportFavourites",
"settingsNavigationSectionTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -6517,10 +6575,14 @@
],
"pl": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
"pt": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
@ -6552,7 +6614,9 @@
"aboutDataUsageInternal",
"aboutDataUsageExternal",
"aboutDataUsageClearCache",
"collectionActionSetHome",
"settingsAskEverytime",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon",
"settingsViewerShowHistogram",
"settingsVideoPlaybackTile",
@ -6563,10 +6627,14 @@
],
"ru": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
"sk": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
@ -6917,6 +6985,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -7031,6 +7100,7 @@
"settingsNavigationSectionTitle",
"settingsHomeTile",
"settingsHomeDialogTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -7320,6 +7390,7 @@
"collectionActionShowTitleSearch",
"collectionActionHideTitleSearch",
"collectionActionAddShortcut",
"collectionActionSetHome",
"collectionActionEmptyBin",
"collectionActionCopy",
"collectionActionMove",
@ -7434,6 +7505,7 @@
"settingsNavigationSectionTitle",
"settingsHomeTile",
"settingsHomeDialogTitle",
"setHomeCustomCollection",
"settingsShowBottomNavigationBar",
"settingsKeepScreenOnTile",
"settingsKeepScreenOnDialogTitle",
@ -7709,6 +7781,7 @@
"aboutDataUsageInternal",
"aboutDataUsageExternal",
"aboutDataUsageClearCache",
"collectionActionSetHome",
"drawerPlacePage",
"statePageTitle",
"stateEmpty",
@ -7716,6 +7789,7 @@
"placeEmpty",
"searchStatesSectionTitle",
"settingsAskEverytime",
"setHomeCustomCollection",
"settingsConfirmationVaultDataLoss",
"settingsThumbnailShowHdrIcon",
"settingsCollectionBurstPatternsTile",
@ -7734,14 +7808,20 @@
],
"uk": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
"vi": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
"zh": [
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon"
],
@ -7758,6 +7838,8 @@
"aboutDataUsageInternal",
"aboutDataUsageExternal",
"aboutDataUsageClearCache",
"collectionActionSetHome",
"setHomeCustomCollection",
"settingsThumbnailShowHdrIcon",
"settingsViewerShowHistogram"
]