#625 option to set the Tags page as home
This commit is contained in:
parent
9aa3527f19
commit
a4869bf41a
7 changed files with 47 additions and 48 deletions
|
@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
|
|||
|
||||
## <a id="unreleased"></a>[Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- option to set the Tags page as home
|
||||
|
||||
## <a id="v1.8.6"></a>[v1.8.6] - 2023-04-30
|
||||
|
||||
### Added
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:aves/widgets/collection/collection_page.dart';
|
||||
import 'package:aves/widgets/filter_grids/albums_page.dart';
|
||||
import 'package:aves/widgets/filter_grids/tags_page.dart';
|
||||
import 'package:aves_model/aves_model.dart';
|
||||
|
||||
extension ExtraHomePageSetting on HomePageSetting {
|
||||
|
@ -9,6 +10,8 @@ extension ExtraHomePageSetting on HomePageSetting {
|
|||
return CollectionPage.routeName;
|
||||
case HomePageSetting.albums:
|
||||
return AlbumListPage.routeName;
|
||||
case HomePageSetting.tags:
|
||||
return TagListPage.routeName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -104,6 +104,8 @@ extension ExtraHomePageSettingView on HomePageSetting {
|
|||
return context.l10n.drawerCollectionAll;
|
||||
case HomePageSetting.albums:
|
||||
return context.l10n.drawerAlbumPage;
|
||||
case HomePageSetting.tags:
|
||||
return context.l10n.drawerTagPage;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import 'package:aves/model/source/collection_source.dart';
|
|||
import 'package:aves/widgets/collection/collection_page.dart';
|
||||
import 'package:aves/widgets/common/extensions/build_context.dart';
|
||||
import 'package:aves/widgets/filter_grids/albums_page.dart';
|
||||
import 'package:aves/widgets/filter_grids/tags_page.dart';
|
||||
import 'package:aves_model/aves_model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
@ -33,25 +34,25 @@ class TvNavigationPopHandler {
|
|||
case HomePageSetting.collection:
|
||||
return context.read<CollectionLens>().filters.isEmpty;
|
||||
case HomePageSetting.albums:
|
||||
case HomePageSetting.tags:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
static Route _getHomeRoute() {
|
||||
switch (settings.homePage) {
|
||||
final homePage = settings.homePage;
|
||||
Route buildRoute(WidgetBuilder builder) => MaterialPageRoute(
|
||||
settings: RouteSettings(name: homePage.routeName),
|
||||
builder: builder,
|
||||
);
|
||||
|
||||
switch (homePage) {
|
||||
case HomePageSetting.collection:
|
||||
return MaterialPageRoute(
|
||||
settings: const RouteSettings(name: CollectionPage.routeName),
|
||||
builder: (context) => CollectionPage(
|
||||
source: context.read<CollectionSource>(),
|
||||
filters: null,
|
||||
),
|
||||
);
|
||||
return buildRoute((context) => CollectionPage(source: context.read<CollectionSource>(), filters: null));
|
||||
case HomePageSetting.albums:
|
||||
return MaterialPageRoute(
|
||||
settings: const RouteSettings(name: AlbumListPage.routeName),
|
||||
builder: (context) => const AlbumListPage(),
|
||||
);
|
||||
return buildRoute((context) => const AlbumListPage());
|
||||
case HomePageSetting.tags:
|
||||
return buildRoute((context) => const TagListPage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ import 'package:aves/widgets/common/extensions/build_context.dart';
|
|||
import 'package:aves/widgets/common/search/page.dart';
|
||||
import 'package:aves/widgets/common/search/route.dart';
|
||||
import 'package:aves/widgets/filter_grids/albums_page.dart';
|
||||
import 'package:aves/widgets/filter_grids/tags_page.dart';
|
||||
import 'package:aves/widgets/search/search_delegate.dart';
|
||||
import 'package:aves/widgets/settings/home_widget_settings_page.dart';
|
||||
import 'package:aves/widgets/settings/screen_saver_settings_page.dart';
|
||||
|
@ -345,32 +346,23 @@ class _HomePageState extends State<HomePage> {
|
|||
filters = _initialFilters ?? {};
|
||||
break;
|
||||
}
|
||||
Route buildRoute(WidgetBuilder builder) => DirectMaterialPageRoute(
|
||||
settings: RouteSettings(name: routeName),
|
||||
builder: builder,
|
||||
);
|
||||
|
||||
final source = context.read<CollectionSource>();
|
||||
switch (routeName) {
|
||||
case AlbumListPage.routeName:
|
||||
return DirectMaterialPageRoute(
|
||||
settings: RouteSettings(name: routeName),
|
||||
builder: (context) => const AlbumListPage(),
|
||||
);
|
||||
return buildRoute((context) => const AlbumListPage());
|
||||
case TagListPage.routeName:
|
||||
return buildRoute((context) => const TagListPage());
|
||||
case ScreenSaverPage.routeName:
|
||||
return DirectMaterialPageRoute(
|
||||
settings: RouteSettings(name: routeName),
|
||||
builder: (context) => ScreenSaverPage(
|
||||
source: source,
|
||||
),
|
||||
);
|
||||
return buildRoute((context) => ScreenSaverPage(source: source));
|
||||
case ScreenSaverSettingsPage.routeName:
|
||||
return DirectMaterialPageRoute(
|
||||
settings: RouteSettings(name: routeName),
|
||||
builder: (context) => const ScreenSaverSettingsPage(),
|
||||
);
|
||||
return buildRoute((context) => const ScreenSaverSettingsPage());
|
||||
case HomeWidgetSettingsPage.routeName:
|
||||
return DirectMaterialPageRoute(
|
||||
settings: RouteSettings(name: routeName),
|
||||
builder: (context) => HomeWidgetSettingsPage(
|
||||
widgetId: _widgetId!,
|
||||
),
|
||||
);
|
||||
return buildRoute((context) => HomeWidgetSettingsPage(widgetId: _widgetId!));
|
||||
case SearchPage.routeName:
|
||||
return SearchPageRoute(
|
||||
delegate: CollectionSearchDelegate(
|
||||
|
@ -382,13 +374,7 @@ class _HomePageState extends State<HomePage> {
|
|||
);
|
||||
case CollectionPage.routeName:
|
||||
default:
|
||||
return DirectMaterialPageRoute(
|
||||
settings: RouteSettings(name: routeName),
|
||||
builder: (context) => CollectionPage(
|
||||
source: source,
|
||||
filters: filters,
|
||||
),
|
||||
);
|
||||
return buildRoute((context) => CollectionPage(source: source, filters: filters));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'dart:ui';
|
|||
|
||||
import 'package:aves/model/filters/album.dart';
|
||||
import 'package:aves/model/filters/filters.dart';
|
||||
import 'package:aves/model/settings/enums/home_page.dart';
|
||||
import 'package:aves/model/settings/settings.dart';
|
||||
import 'package:aves/model/source/collection_lens.dart';
|
||||
import 'package:aves/model/source/collection_source.dart';
|
||||
|
@ -12,7 +13,6 @@ import 'package:aves/widgets/common/basic/insets.dart';
|
|||
import 'package:aves/widgets/common/extensions/build_context.dart';
|
||||
import 'package:aves/widgets/common/identity/aves_logo.dart';
|
||||
import 'package:aves/widgets/debug/app_debug_page.dart';
|
||||
import 'package:aves/widgets/filter_grids/albums_page.dart';
|
||||
import 'package:aves/widgets/navigation/drawer/app_drawer.dart';
|
||||
import 'package:aves/widgets/navigation/drawer/page_nav_tile.dart';
|
||||
import 'package:aves/widgets/navigation/drawer/tile.dart';
|
||||
|
@ -240,13 +240,16 @@ class _TvRailState extends State<TvRail> {
|
|||
return pageBookmarks.map(_routeNavEntry).toList();
|
||||
}
|
||||
|
||||
_NavEntry _routeNavEntry(String routeName) => _NavEntry(
|
||||
icon: DrawerPageIcon(route: routeName),
|
||||
label: DrawerPageTitle(route: routeName),
|
||||
isHome: settings.homePage == HomePageSetting.albums && routeName == AlbumListPage.routeName,
|
||||
isSelected: context.currentRouteName == routeName,
|
||||
onSelection: () => _goTo(routeName),
|
||||
);
|
||||
_NavEntry _routeNavEntry(String routeName) {
|
||||
final homePage = settings.homePage;
|
||||
return _NavEntry(
|
||||
icon: DrawerPageIcon(route: routeName),
|
||||
label: DrawerPageTitle(route: routeName),
|
||||
isHome: homePage != HomePageSetting.collection && routeName == homePage.routeName,
|
||||
isSelected: context.currentRouteName == routeName,
|
||||
onSelection: () => _goTo(routeName),
|
||||
);
|
||||
}
|
||||
|
||||
void _goTo(String routeName) {
|
||||
Navigator.maybeOf(context)?.pushAndRemoveUntil(
|
||||
|
|
|
@ -14,7 +14,7 @@ enum DisplayRefreshRateMode { auto, highest, lowest }
|
|||
|
||||
enum EntryBackground { black, white, checkered }
|
||||
|
||||
enum HomePageSetting { collection, albums }
|
||||
enum HomePageSetting { collection, albums, tags }
|
||||
|
||||
enum KeepScreenOn { never, videoPlayback, viewerOnly, always }
|
||||
|
||||
|
|
Loading…
Reference in a new issue