diff --git a/mobile/lib/ui/viewer/gallery/gallery.dart b/mobile/lib/ui/viewer/gallery/gallery.dart index d637add390..dee0c32307 100644 --- a/mobile/lib/ui/viewer/gallery/gallery.dart +++ b/mobile/lib/ui/viewer/gallery/gallery.dart @@ -117,8 +117,7 @@ class GalleryState extends State { final _forceReloadEventSubscriptions = >[]; late String _logTag; bool _sortOrderAsc = false; - List _allFiles = []; - List _filteredFiles = []; + List _allGalleryFiles = []; late SearchFilterDataProvider? _searchFilterDataProvider; @override @@ -252,6 +251,20 @@ class GalleryState extends State { curateAlbumFilters(_searchFilterDataProvider!, filterdFiles); } + void _setFilteredFilesAndReload(List files) { + _allGalleryFiles = files; + final updatedGroupedFiles = + widget.enableFileGrouping && widget.groupType.timeGrouping() + ? _groupBasedOnTime(files) + : _genericGroupForPerf(files); + + if (mounted) { + setState(() { + currentGroupedFiles = updatedGroupedFiles; + }); + } + } + void _setFilesAndReload(List files) { final hasReloaded = _onFilesLoaded(files); if (!hasReloaded && mounted) { @@ -259,6 +272,30 @@ class GalleryState extends State { } } + // group files into multiple groups and returns `true` if it resulted in a + // gallery reload + bool _onFilesLoaded(List files) { + _allGalleryFiles = files; + + final updatedGroupedFiles = + widget.enableFileGrouping && widget.groupType.timeGrouping() + ? _groupBasedOnTime(files) + : _genericGroupForPerf(files); + if (currentGroupedFiles.length != updatedGroupedFiles.length || + currentGroupedFiles.isEmpty) { + if (mounted) { + setState(() { + _hasLoadedFiles = true; + currentGroupedFiles = updatedGroupedFiles; + }); + } + return true; + } else { + currentGroupedFiles = updatedGroupedFiles; + return false; + } + } + Future _loadFiles({int? limit}) async { _logger.info("Loading ${limit ?? "all"} files"); try { @@ -296,44 +333,6 @@ class GalleryState extends State { } } - void _setFilteredFilesAndReload(List files) { - _filteredFiles = files; - - final updatedGroupedFiles = - widget.enableFileGrouping && widget.groupType.timeGrouping() - ? _groupBasedOnTime(files) - : _genericGroupForPerf(files); - if (mounted) { - setState(() { - currentGroupedFiles = updatedGroupedFiles; - }); - } - } - - // group files into multiple groups and returns `true` if it resulted in a - // gallery reload - bool _onFilesLoaded(List files) { - _allFiles = files; - - final updatedGroupedFiles = - widget.enableFileGrouping && widget.groupType.timeGrouping() - ? _groupBasedOnTime(files) - : _genericGroupForPerf(files); - if (currentGroupedFiles.length != updatedGroupedFiles.length || - currentGroupedFiles.isEmpty) { - if (mounted) { - setState(() { - _hasLoadedFiles = true; - currentGroupedFiles = updatedGroupedFiles; - }); - } - return true; - } else { - currentGroupedFiles = updatedGroupedFiles; - return false; - } - } - @override void dispose() { _reloadEventSubscription?.cancel(); @@ -352,7 +351,7 @@ class GalleryState extends State { @override Widget build(BuildContext context) { _logger.finest("Building Gallery ${widget.tagPrefix}"); - GalleryFilesState.of(context).setGalleryFiles = _allFiles; + GalleryFilesState.of(context).setGalleryFiles = _allGalleryFiles; if (!_hasLoadedFiles) { return widget.loadingWidget; }