diff --git a/lib/services/collections_service.dart b/lib/services/collections_service.dart index 9c95b7ee2..1edcdcdf6 100644 --- a/lib/services/collections_service.dart +++ b/lib/services/collections_service.dart @@ -254,6 +254,12 @@ class CollectionsService { return null; } + File? getCoverCache(Collection c) { + final int localSyncTime = getCollectionSyncTime(c.id); + final String coverKey = '${c.id}_${localSyncTime}_${c.updationTime}'; + return _coverCache[coverKey]; + } + Future getFileCount(Collection c) async { if (_countCache.containsKey(c.id)) { return _countCache[c.id]!; diff --git a/lib/ui/collections/album/row_item.dart b/lib/ui/collections/album/row_item.dart index b366bb63d..d8be611c4 100644 --- a/lib/ui/collections/album/row_item.dart +++ b/lib/ui/collections/album/row_item.dart @@ -59,8 +59,13 @@ class AlbumRowItemWidget extends StatelessWidget { FutureBuilder( future: CollectionsService.instance.getCover(c), builder: (context, snapshot) { + File? thumbnail; if (snapshot.hasData) { - final thumbnail = snapshot.data!; + thumbnail = snapshot.data!; + } else { + thumbnail = CollectionsService.instance.getCoverCache(c); + } + if (thumbnail != null) { final String heroTag = tagPrefix + thumbnail.tag; return Hero( tag: heroTag,