explorer: stats
This commit is contained in:
parent
94cb6e2b80
commit
59de10a1ce
5 changed files with 33 additions and 1 deletions
|
@ -10,6 +10,7 @@ All notable changes to this project will be documented in this file.
|
|||
- Viewer: long descriptions are scrollable when overlay is expanded by tap
|
||||
- Collection: sort by duration
|
||||
- Map: open external map app from map views
|
||||
- Explorer: stats
|
||||
|
||||
### Changed
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ extension ExtraExplorerActionView on ExplorerAction {
|
|||
return switch (this) {
|
||||
ExplorerAction.addShortcut => l10n.collectionActionAddShortcut,
|
||||
ExplorerAction.setHome => l10n.collectionActionSetHome,
|
||||
ExplorerAction.stats => l10n.menuActionStats,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -18,6 +19,7 @@ extension ExtraExplorerActionView on ExplorerAction {
|
|||
return switch (this) {
|
||||
ExplorerAction.addShortcut => AIcons.addShortcut,
|
||||
ExplorerAction.setHome => AIcons.home,
|
||||
ExplorerAction.stats => AIcons.stats,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -117,7 +117,10 @@ class _ExplorerAppBarState extends State<ExplorerAppBar> with WidgetsBindingObse
|
|||
return [
|
||||
ExplorerAction.addShortcut,
|
||||
ExplorerAction.setHome,
|
||||
].map((v) {
|
||||
null,
|
||||
ExplorerAction.stats,
|
||||
].map<PopupMenuEntry<ExplorerAction>>((v) {
|
||||
if (v == null) return const PopupMenuDivider();
|
||||
return PopupMenuItem(
|
||||
value: v,
|
||||
child: MenuRow(text: v.getText(context), icon: v.getIcon()),
|
||||
|
|
|
@ -9,6 +9,7 @@ import 'package:aves/services/common/services.dart';
|
|||
import 'package:aves/widgets/common/action_mixins/feedback.dart';
|
||||
import 'package:aves/widgets/common/extensions/build_context.dart';
|
||||
import 'package:aves/widgets/dialogs/add_shortcut_dialog.dart';
|
||||
import 'package:aves/widgets/stats/stats_page.dart';
|
||||
import 'package:aves_model/aves_model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
@ -29,6 +30,8 @@ class ExplorerActionDelegate with FeedbackMixin {
|
|||
return isMain && device.canPinShortcut;
|
||||
case ExplorerAction.setHome:
|
||||
return isMain && !useTvLayout;
|
||||
case ExplorerAction.stats:
|
||||
return isMain;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -36,6 +39,7 @@ class ExplorerActionDelegate with FeedbackMixin {
|
|||
switch (action) {
|
||||
case ExplorerAction.addShortcut:
|
||||
case ExplorerAction.setHome:
|
||||
case ExplorerAction.stats:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -47,6 +51,8 @@ class ExplorerActionDelegate with FeedbackMixin {
|
|||
_addShortcut(context);
|
||||
case ExplorerAction.setHome:
|
||||
_setHome(context);
|
||||
case ExplorerAction.stats:
|
||||
_goToStats(context);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -82,4 +88,23 @@ class ExplorerActionDelegate with FeedbackMixin {
|
|||
settings.setHome(HomePageSetting.explorer, customExplorerPath: directory.dirPath);
|
||||
showFeedback(context, FeedbackType.info, context.l10n.genericSuccessFeedback);
|
||||
}
|
||||
|
||||
void _goToStats(BuildContext context) {
|
||||
final path = directory.dirPath;
|
||||
final filter = PathFilter(path);
|
||||
final collection = CollectionLens(
|
||||
source: context.read<CollectionSource>(),
|
||||
filters: {filter},
|
||||
);
|
||||
|
||||
Navigator.maybeOf(context)?.push(
|
||||
MaterialPageRoute(
|
||||
settings: const RouteSettings(name: StatsPage.routeName),
|
||||
builder: (context) => StatsPage(
|
||||
entries: collection.sortedEntries.toSet(),
|
||||
source: collection.source,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
enum ExplorerAction {
|
||||
addShortcut,
|
||||
setHome,
|
||||
stats,
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue