diff --git a/lib/widget/album_viewer.dart b/lib/widget/album_viewer.dart index b30bd9c9..2fd30c96 100644 --- a/lib/widget/album_viewer.dart +++ b/lib/widget/album_viewer.dart @@ -278,7 +278,8 @@ class _AlbumViewerState extends State<AlbumViewer> "[_transformItems] Unsupported file format: ${f.contentType}"); } } - }(); + }() + .toList(); } bool _shouldPropagateResyncedAlbum(Album album) { diff --git a/lib/widget/archive_viewer.dart b/lib/widget/archive_viewer.dart index 63847b31..766b5e08 100644 --- a/lib/widget/archive_viewer.dart +++ b/lib/widget/archive_viewer.dart @@ -280,7 +280,8 @@ class _ArchiveViewerState extends State<ArchiveViewer> "[_transformItems] Unsupported file format: ${f.contentType}"); } } - }(); + }() + .toList(); } void _reqQuery() { diff --git a/lib/widget/dynamic_album_viewer.dart b/lib/widget/dynamic_album_viewer.dart index 7486e92e..b0462be8 100644 --- a/lib/widget/dynamic_album_viewer.dart +++ b/lib/widget/dynamic_album_viewer.dart @@ -402,7 +402,8 @@ class _DynamicAlbumViewerState extends State<DynamicAlbumViewer> "[_onBackingFilesUpdated] Unsupported file format: ${f.contentType}"); } } - }(); + }() + .toList(); } Album _album; diff --git a/lib/widget/home_photos.dart b/lib/widget/home_photos.dart index 09fba750..b2ebb6b0 100644 --- a/lib/widget/home_photos.dart +++ b/lib/widget/home_photos.dart @@ -483,7 +483,8 @@ class _HomePhotosState extends State<HomePhotos> "[_transformItems] Unsupported file format: ${f.contentType}"); } } - }(); + }() + .toList(); } void _reqQuery() { diff --git a/lib/widget/selectable_item_stream_list_mixin.dart b/lib/widget/selectable_item_stream_list_mixin.dart index fba6bf16..01929306 100644 --- a/lib/widget/selectable_item_stream_list_mixin.dart +++ b/lib/widget/selectable_item_stream_list_mixin.dart @@ -78,13 +78,11 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> { List<SelectableItem> get itemStreamListItems => UnmodifiableListView(_items); @protected - set itemStreamListItems(Iterable<SelectableItem> newItems) { + set itemStreamListItems(List<SelectableItem> newItems) { final lastSelectedItem = _lastSelectPosition != null ? _items[_lastSelectPosition] : null; - _items.clear(); - _items.addAll(newItems); - + _items = newItems; _transformSelectedItems(); // Keep _lastSelectPosition if no changes, drop otherwise @@ -216,7 +214,7 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> { int _lastSelectPosition; bool _isRangeSelectionMode = false; - final _items = <SelectableItem>[]; + var _items = <SelectableItem>[]; final _selectedItems = <SelectableItem>{}; final _listKey = GlobalKey();