Store set of files in state of widget rather than converting to set from list in multiple places

This commit is contained in:
ashilkn 2023-07-14 14:52:15 +05:30
parent 060b5a457d
commit d74a5166db

View file

@ -57,6 +57,7 @@ class _LazyGroupGalleryState extends State<LazyGroupGallery> {
late Logger _logger;
late List<File> _files;
late Set<File> _filesAsSet;
late StreamSubscription<FilesUpdatedEvent>? _reloadEventSubscription;
late StreamSubscription<int> _currentIndexSubscription;
bool? _shouldRender;
@ -75,6 +76,7 @@ class _LazyGroupGalleryState extends State<LazyGroupGallery> {
_logger = Logger("LazyLoading_${widget.logTag}");
_shouldRender = true;
_files = widget.files;
_filesAsSet = _files.toSet();
_reloadEventSubscription = widget.reloadEvent?.listen((e) => _onReload(e));
_currentIndexSubscription =
@ -204,7 +206,7 @@ class _LazyGroupGalleryState extends State<LazyGroupGallery> {
),
onTap: () {
widget.selectedFiles?.toggleGroupSelection(
_files.toSet(),
_filesAsSet,
);
},
);
@ -234,7 +236,7 @@ class _LazyGroupGalleryState extends State<LazyGroupGallery> {
void _selectedFilesListener() {
if (widget.selectedFiles == null) return;
_areAllFromGroupSelectedNotifer.value =
widget.selectedFiles!.files.containsAll(widget.files.toSet());
widget.selectedFiles!.files.containsAll(_filesAsSet);
//Can remove this if we decide to show select all by default for all galleries
if (widget.selectedFiles!.files.isEmpty && !widget.showSelectAllByDefault) {