collection: custom quick actions for browsing

This commit is contained in:
Thibault Deckers 2021-11-01 17:17:06 +09:00
parent 08020260a4
commit 2b90d7cca8
5 changed files with 24 additions and 18 deletions

View file

@ -17,8 +17,6 @@ class CollectionSearchButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
return IconButton(
// key is expected by test driver
key: const Key('search-button'),
icon: const Icon(AIcons.search),
onPressed: () => _goToSearch(context),
tooltip: MaterialLocalizations.of(context).searchFieldLabel,

View file

@ -4,19 +4,19 @@ import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:aves/widgets/settings/common/quick_actions/editor_page.dart';
import 'package:flutter/material.dart';
class SelectionActionsTile extends StatelessWidget {
const SelectionActionsTile({Key? key}) : super(key: key);
class BrowsingActionsTile extends StatelessWidget {
const BrowsingActionsTile({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return ListTile(
title: Text(context.l10n.settingsCollectionSelectionQuickActionsTile),
title: Text(context.l10n.settingsCollectionBrowsingQuickActionsTile),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
settings: const RouteSettings(name: SelectionActionEditorPage.routeName),
builder: (context) => const SelectionActionEditorPage(),
settings: const RouteSettings(name: BrowsingActionEditorPage.routeName),
builder: (context) => const BrowsingActionEditorPage(),
),
);
},
@ -24,21 +24,21 @@ class SelectionActionsTile extends StatelessWidget {
}
}
class SelectionActionEditorPage extends StatelessWidget {
static const routeName = '/settings/collection_selection_actions';
class BrowsingActionEditorPage extends StatelessWidget {
static const routeName = '/settings/collection_browsing_actions';
const SelectionActionEditorPage({Key? key}) : super(key: key);
const BrowsingActionEditorPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return QuickActionEditorPage<EntrySetAction>(
title: context.l10n.settingsCollectionSelectionQuickActionEditorTitle,
bannerText: context.l10n.settingsCollectionSelectionQuickActionEditorBanner,
allAvailableActions: EntrySetActions.selection,
title: context.l10n.settingsCollectionBrowsingQuickActionEditorTitle,
bannerText: context.l10n.settingsCollectionBrowsingQuickActionEditorBanner,
allAvailableActions: EntrySetActions.browsing,
actionIcon: (action) => action.getIcon(),
actionText: (context, action) => action.getText(context),
load: () => settings.collectionSelectionQuickActions.toList(),
save: (actions) => settings.collectionSelectionQuickActions = actions,
load: () => settings.collectionBrowsingQuickActions.toList(),
save: (actions) => settings.collectionBrowsingQuickActions = actions,
);
}
}

View file

@ -6,6 +6,7 @@ import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:aves/widgets/common/identity/aves_expansion_tile.dart';
import 'package:aves/widgets/common/identity/aves_icons.dart';
import 'package:aves/widgets/settings/common/tile_leading.dart';
import 'package:aves/widgets/settings/thumbnails/browsing_actions_editor.dart';
import 'package:aves/widgets/settings/thumbnails/selection_actions_editor.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@ -37,6 +38,7 @@ class ThumbnailsSection extends StatelessWidget {
expandedNotifier: expandedNotifier,
showHighlight: false,
children: [
const BrowsingActionsTile(),
const SelectionActionsTile(),
SwitchListTile(
value: currentShowThumbnailLocation,

View file

@ -169,7 +169,7 @@ void selectFirstAlbum() {
void searchAlbum() {
test('[collection] search album', () async {
await driver.tap(find.byValueKey('search-button'));
await driver.tap(find.byValueKey('menu-search'));
await driver.waitUntilNoTransientCallbacks();
const albumPath = targetPicturesDirEmulated;

View file

@ -5,7 +5,10 @@
"editEntryDateDialogExtractFromTitle",
"collectionActionEdit",
"collectionEditFailureFeedback",
"collectionEditSuccessFeedback"
"collectionEditSuccessFeedback",
"settingsCollectionBrowsingQuickActionsTile",
"settingsCollectionBrowsingQuickActionEditorTitle",
"settingsCollectionBrowsingQuickActionEditorBanner"
],
"ru": [
@ -15,6 +18,9 @@
"aboutCreditsTranslators",
"collectionActionEdit",
"collectionEditFailureFeedback",
"collectionEditSuccessFeedback"
"collectionEditSuccessFeedback",
"settingsCollectionBrowsingQuickActionsTile",
"settingsCollectionBrowsingQuickActionEditorTitle",
"settingsCollectionBrowsingQuickActionEditorBanner"
]
}