minor fix

This commit is contained in:
Thibault Deckers 2021-11-08 15:23:12 +09:00
parent f385f16209
commit 2d8d49a282
8 changed files with 36 additions and 32 deletions

View file

@ -31,29 +31,33 @@ abstract class CollectionFilter extends Equatable implements Comparable<Collecti
];
static CollectionFilter? fromJson(String jsonString) {
final jsonMap = jsonDecode(jsonString);
if (jsonMap is Map<String, dynamic>) {
final type = jsonMap['type'];
switch (type) {
case AlbumFilter.type:
return AlbumFilter.fromMap(jsonMap);
case CoordinateFilter.type:
return CoordinateFilter.fromMap(jsonMap);
case FavouriteFilter.type:
return FavouriteFilter.instance;
case LocationFilter.type:
return LocationFilter.fromMap(jsonMap);
case MimeFilter.type:
return MimeFilter.fromMap(jsonMap);
case PathFilter.type:
return PathFilter.fromMap(jsonMap);
case QueryFilter.type:
return QueryFilter.fromMap(jsonMap);
case TagFilter.type:
return TagFilter.fromMap(jsonMap);
case TypeFilter.type:
return TypeFilter.fromMap(jsonMap);
try {
final jsonMap = jsonDecode(jsonString);
if (jsonMap is Map<String, dynamic>) {
final type = jsonMap['type'];
switch (type) {
case AlbumFilter.type:
return AlbumFilter.fromMap(jsonMap);
case CoordinateFilter.type:
return CoordinateFilter.fromMap(jsonMap);
case FavouriteFilter.type:
return FavouriteFilter.instance;
case LocationFilter.type:
return LocationFilter.fromMap(jsonMap);
case MimeFilter.type:
return MimeFilter.fromMap(jsonMap);
case PathFilter.type:
return PathFilter.fromMap(jsonMap);
case QueryFilter.type:
return QueryFilter.fromMap(jsonMap);
case TagFilter.type:
return TagFilter.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');
return null;

View file

@ -37,7 +37,7 @@ class CollectionLens with ChangeNotifier {
CollectionLens({
required this.source,
Iterable<CollectionFilter?>? filters,
Set<CollectionFilter?>? filters,
this.id,
this.listenToSource = true,
this.fixedSelection,

View file

@ -123,7 +123,7 @@ class _CoverSelectionDialogState extends State<CoverSelectionDialog> {
builder: (context) => ItemPickDialog(
collection: CollectionLens(
source: context.read<CollectionSource>(),
filters: [filter],
filters: {filter},
),
),
fullscreenDialog: true,

View file

@ -50,7 +50,7 @@ class CollectionNavTile extends StatelessWidget {
builder: (context) => CollectionPage(
collection: CollectionLens(
source: context.read<CollectionSource>(),
filters: [filter],
filters: {filter},
),
),
),

View file

@ -70,7 +70,7 @@ class FilterNavigationPage<T extends CollectionFilter> extends StatelessWidget {
builder: (context) => CollectionPage(
collection: CollectionLens(
source: source,
filters: [filter],
filters: {filter},
),
),
),

View file

@ -41,7 +41,7 @@ class HomePage extends StatefulWidget {
class _HomePageState extends State<HomePage> {
AvesEntry? _viewerEntry;
String? _shortcutRouteName, _shortcutSearchQuery;
List<String>? _shortcutFilters;
Set<String>? _shortcutFilters;
static const allowedShortcutRoutes = [CollectionPage.routeName, AlbumListPage.routeName, SearchPage.routeName];
@ -108,7 +108,7 @@ class _HomePageState extends State<HomePage> {
_shortcutRouteName = extraRoute;
}
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;
@ -152,12 +152,12 @@ class _HomePageState extends State<HomePage> {
}
String routeName;
Iterable<CollectionFilter?>? filters;
Set<CollectionFilter?>? filters;
if (appMode == AppMode.pickExternal) {
routeName = CollectionPage.routeName;
} else {
routeName = _shortcutRouteName ?? settings.homePage.routeName;
filters = (_shortcutFilters ?? []).map(CollectionFilter.fromJson);
filters = (_shortcutFilters ?? {}).map(CollectionFilter.fromJson).toSet();
}
final source = context.read<CollectionSource>();
switch (routeName) {

View file

@ -259,7 +259,7 @@ class CollectionSearchDelegate {
builder: (context) => CollectionPage(
collection: CollectionLens(
source: source,
filters: [filter],
filters: {filter},
),
),
),

View file

@ -295,7 +295,7 @@ class StatsPage extends StatelessWidget {
builder: (context) => CollectionPage(
collection: CollectionLens(
source: source,
filters: [filter],
filters: {filter},
),
),
),