diff --git a/lib/widgets/album/empty.dart b/lib/widgets/album/empty.dart index 700cb1271..c5bf58b3c 100644 --- a/lib/widgets/album/empty.dart +++ b/lib/widgets/album/empty.dart @@ -2,6 +2,14 @@ import 'package:flutter/material.dart'; import 'package:outline_material_icons/outline_material_icons.dart'; class EmptyContent extends StatelessWidget { + final IconData icon; + final String text; + + const EmptyContent({ + this.icon = OMIcons.photo, + this.text = 'Nothing!', + }); + @override Widget build(BuildContext context) { const color = Color(0xFF607D8B); @@ -9,16 +17,16 @@ class EmptyContent extends StatelessWidget { alignment: const FractionalOffset(.5, .35), child: Column( mainAxisSize: MainAxisSize.min, - children: const [ + children: [ Icon( - OMIcons.photo, + icon, size: 64, color: color, ), - SizedBox(height: 16), + const SizedBox(height: 16), Text( - 'Nothing!', - style: TextStyle( + text, + style: const TextStyle( color: color, fontSize: 22, fontFamily: 'Concourse', diff --git a/lib/widgets/album/thumbnail_collection.dart b/lib/widgets/album/thumbnail_collection.dart index 79c039b16..29a023a5e 100644 --- a/lib/widgets/album/thumbnail_collection.dart +++ b/lib/widgets/album/thumbnail_collection.dart @@ -1,4 +1,6 @@ import 'package:aves/model/collection_lens.dart'; +import 'package:aves/model/filters/favourite.dart'; +import 'package:aves/model/filters/video.dart'; import 'package:aves/widgets/album/collection_app_bar.dart'; import 'package:aves/widgets/album/collection_page.dart'; import 'package:aves/widgets/album/collection_scaling.dart'; @@ -7,6 +9,7 @@ import 'package:aves/widgets/album/empty.dart'; import 'package:aves/widgets/common/scroll_thumb.dart'; import 'package:draggable_scrollbar/draggable_scrollbar.dart'; import 'package:flutter/material.dart'; +import 'package:outline_material_icons/outline_material_icons.dart'; import 'package:provider/provider.dart'; class ThumbnailCollection extends StatelessWidget { @@ -54,7 +57,7 @@ class ThumbnailCollection extends StatelessWidget { ), if (collection.isEmpty) SliverFillRemaining( - child: EmptyContent(), + child: _buildEmptyCollectionPlaceholder(collection), hasScrollBody: false, ), ...sectionKeys.map((sectionKey) => SectionSliver( @@ -99,4 +102,17 @@ class ThumbnailCollection extends StatelessWidget { ), ); } + + Widget _buildEmptyCollectionPlaceholder(CollectionLens collection) { + return collection.filters.any((filter) => filter is FavouriteFilter) + ? const EmptyContent( + icon: OMIcons.favoriteBorder, + text: 'No favourite!', + ) + : collection.filters.any((filter) => filter is VideoFilter) + ? const EmptyContent( + icon: OMIcons.movie, + ) + : const EmptyContent(); + } } diff --git a/lib/widgets/stats.dart b/lib/widgets/stats.dart index a5ab52d25..43a4c1788 100644 --- a/lib/widgets/stats.dart +++ b/lib/widgets/stats.dart @@ -49,7 +49,7 @@ class StatsPage extends StatelessWidget { Widget build(BuildContext context) { Widget child; if (collection.isEmpty) { - child = EmptyContent(); + child = const EmptyContent(); } else { final catalogued = entries.where((entry) => entry.isCatalogued); final withGps = catalogued.where((entry) => entry.hasGps);