瀏覽代碼

Minor improvement (#1282)

Ashil 2 年之前
父節點
當前提交
4cf795b974
共有 1 個文件被更改,包括 8 次插入2 次删除
  1. 8 2
      lib/ui/viewer/gallery/component/group/lazy_group_gallery.dart

+ 8 - 2
lib/ui/viewer/gallery/component/group/lazy_group_gallery.dart

@@ -57,6 +57,7 @@ class _LazyGroupGalleryState extends State<LazyGroupGallery> {
   late Logger _logger;
 
   late List<File> _files;
+  Set<File>? _filesAsSet;
   late StreamSubscription<FilesUpdatedEvent>? _reloadEventSubscription;
   late StreamSubscription<int> _currentIndexSubscription;
   bool? _shouldRender;
@@ -89,6 +90,11 @@ class _LazyGroupGalleryState extends State<LazyGroupGallery> {
     });
   }
 
+  Set<File> get _setOfFiles {
+    _filesAsSet ??= _files.toSet();
+    return _filesAsSet!;
+  }
+
   bool _areAllFromGroupSelected() {
     if (widget.selectedFiles != null &&
         widget.selectedFiles!.files.length >= widget.files.length) {
@@ -204,7 +210,7 @@ class _LazyGroupGalleryState extends State<LazyGroupGallery> {
                               ),
                               onTap: () {
                                 widget.selectedFiles?.toggleGroupSelection(
-                                  _files.toSet(),
+                                  _setOfFiles,
                                 );
                               },
                             );
@@ -234,7 +240,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(_setOfFiles);
 
     //Can remove this if we decide to show select all by default for all galleries
     if (widget.selectedFiles!.files.isEmpty && !widget.showSelectAllByDefault) {