minor fix
This commit is contained in:
parent
f385f16209
commit
2d8d49a282
8 changed files with 36 additions and 32 deletions
|
@ -31,29 +31,33 @@ abstract class CollectionFilter extends Equatable implements Comparable<Collecti
|
||||||
];
|
];
|
||||||
|
|
||||||
static CollectionFilter? fromJson(String jsonString) {
|
static CollectionFilter? fromJson(String jsonString) {
|
||||||
final jsonMap = jsonDecode(jsonString);
|
try {
|
||||||
if (jsonMap is Map<String, dynamic>) {
|
final jsonMap = jsonDecode(jsonString);
|
||||||
final type = jsonMap['type'];
|
if (jsonMap is Map<String, dynamic>) {
|
||||||
switch (type) {
|
final type = jsonMap['type'];
|
||||||
case AlbumFilter.type:
|
switch (type) {
|
||||||
return AlbumFilter.fromMap(jsonMap);
|
case AlbumFilter.type:
|
||||||
case CoordinateFilter.type:
|
return AlbumFilter.fromMap(jsonMap);
|
||||||
return CoordinateFilter.fromMap(jsonMap);
|
case CoordinateFilter.type:
|
||||||
case FavouriteFilter.type:
|
return CoordinateFilter.fromMap(jsonMap);
|
||||||
return FavouriteFilter.instance;
|
case FavouriteFilter.type:
|
||||||
case LocationFilter.type:
|
return FavouriteFilter.instance;
|
||||||
return LocationFilter.fromMap(jsonMap);
|
case LocationFilter.type:
|
||||||
case MimeFilter.type:
|
return LocationFilter.fromMap(jsonMap);
|
||||||
return MimeFilter.fromMap(jsonMap);
|
case MimeFilter.type:
|
||||||
case PathFilter.type:
|
return MimeFilter.fromMap(jsonMap);
|
||||||
return PathFilter.fromMap(jsonMap);
|
case PathFilter.type:
|
||||||
case QueryFilter.type:
|
return PathFilter.fromMap(jsonMap);
|
||||||
return QueryFilter.fromMap(jsonMap);
|
case QueryFilter.type:
|
||||||
case TagFilter.type:
|
return QueryFilter.fromMap(jsonMap);
|
||||||
return TagFilter.fromMap(jsonMap);
|
case TagFilter.type:
|
||||||
case TypeFilter.type:
|
return TagFilter.fromMap(jsonMap);
|
||||||
return TypeFilter.fromMap(jsonMap);
|
case TypeFilter.type:
|
||||||
|
return TypeFilter.fromMap(jsonMap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error, stack) {
|
||||||
|
debugPrint('failed to parse filter from json=$jsonString error=$error\n$stack');
|
||||||
}
|
}
|
||||||
debugPrint('failed to parse filter from json=$jsonString');
|
debugPrint('failed to parse filter from json=$jsonString');
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -37,7 +37,7 @@ class CollectionLens with ChangeNotifier {
|
||||||
|
|
||||||
CollectionLens({
|
CollectionLens({
|
||||||
required this.source,
|
required this.source,
|
||||||
Iterable<CollectionFilter?>? filters,
|
Set<CollectionFilter?>? filters,
|
||||||
this.id,
|
this.id,
|
||||||
this.listenToSource = true,
|
this.listenToSource = true,
|
||||||
this.fixedSelection,
|
this.fixedSelection,
|
||||||
|
|
|
@ -123,7 +123,7 @@ class _CoverSelectionDialogState extends State<CoverSelectionDialog> {
|
||||||
builder: (context) => ItemPickDialog(
|
builder: (context) => ItemPickDialog(
|
||||||
collection: CollectionLens(
|
collection: CollectionLens(
|
||||||
source: context.read<CollectionSource>(),
|
source: context.read<CollectionSource>(),
|
||||||
filters: [filter],
|
filters: {filter},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
fullscreenDialog: true,
|
fullscreenDialog: true,
|
||||||
|
|
|
@ -50,7 +50,7 @@ class CollectionNavTile extends StatelessWidget {
|
||||||
builder: (context) => CollectionPage(
|
builder: (context) => CollectionPage(
|
||||||
collection: CollectionLens(
|
collection: CollectionLens(
|
||||||
source: context.read<CollectionSource>(),
|
source: context.read<CollectionSource>(),
|
||||||
filters: [filter],
|
filters: {filter},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -70,7 +70,7 @@ class FilterNavigationPage<T extends CollectionFilter> extends StatelessWidget {
|
||||||
builder: (context) => CollectionPage(
|
builder: (context) => CollectionPage(
|
||||||
collection: CollectionLens(
|
collection: CollectionLens(
|
||||||
source: source,
|
source: source,
|
||||||
filters: [filter],
|
filters: {filter},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -41,7 +41,7 @@ class HomePage extends StatefulWidget {
|
||||||
class _HomePageState extends State<HomePage> {
|
class _HomePageState extends State<HomePage> {
|
||||||
AvesEntry? _viewerEntry;
|
AvesEntry? _viewerEntry;
|
||||||
String? _shortcutRouteName, _shortcutSearchQuery;
|
String? _shortcutRouteName, _shortcutSearchQuery;
|
||||||
List<String>? _shortcutFilters;
|
Set<String>? _shortcutFilters;
|
||||||
|
|
||||||
static const allowedShortcutRoutes = [CollectionPage.routeName, AlbumListPage.routeName, SearchPage.routeName];
|
static const allowedShortcutRoutes = [CollectionPage.routeName, AlbumListPage.routeName, SearchPage.routeName];
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ class _HomePageState extends State<HomePage> {
|
||||||
_shortcutRouteName = extraRoute;
|
_shortcutRouteName = extraRoute;
|
||||||
}
|
}
|
||||||
final extraFilters = intentData['filters'];
|
final extraFilters = intentData['filters'];
|
||||||
_shortcutFilters = extraFilters != null ? (extraFilters as List).cast<String>() : null;
|
_shortcutFilters = extraFilters != null ? (extraFilters as List).cast<String>().toSet() : null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
context.read<ValueNotifier<AppMode>>().value = appMode;
|
context.read<ValueNotifier<AppMode>>().value = appMode;
|
||||||
|
@ -152,12 +152,12 @@ class _HomePageState extends State<HomePage> {
|
||||||
}
|
}
|
||||||
|
|
||||||
String routeName;
|
String routeName;
|
||||||
Iterable<CollectionFilter?>? filters;
|
Set<CollectionFilter?>? filters;
|
||||||
if (appMode == AppMode.pickExternal) {
|
if (appMode == AppMode.pickExternal) {
|
||||||
routeName = CollectionPage.routeName;
|
routeName = CollectionPage.routeName;
|
||||||
} else {
|
} else {
|
||||||
routeName = _shortcutRouteName ?? settings.homePage.routeName;
|
routeName = _shortcutRouteName ?? settings.homePage.routeName;
|
||||||
filters = (_shortcutFilters ?? []).map(CollectionFilter.fromJson);
|
filters = (_shortcutFilters ?? {}).map(CollectionFilter.fromJson).toSet();
|
||||||
}
|
}
|
||||||
final source = context.read<CollectionSource>();
|
final source = context.read<CollectionSource>();
|
||||||
switch (routeName) {
|
switch (routeName) {
|
||||||
|
|
|
@ -259,7 +259,7 @@ class CollectionSearchDelegate {
|
||||||
builder: (context) => CollectionPage(
|
builder: (context) => CollectionPage(
|
||||||
collection: CollectionLens(
|
collection: CollectionLens(
|
||||||
source: source,
|
source: source,
|
||||||
filters: [filter],
|
filters: {filter},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -295,7 +295,7 @@ class StatsPage extends StatelessWidget {
|
||||||
builder: (context) => CollectionPage(
|
builder: (context) => CollectionPage(
|
||||||
collection: CollectionLens(
|
collection: CollectionLens(
|
||||||
source: source,
|
source: source,
|
||||||
filters: [filter],
|
filters: {filter},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
Loading…
Reference in a new issue