Avoid potential copying of item list

This commit is contained in:
Ming Ming 2021-07-08 02:51:34 +08:00
parent 4fb6c022d2
commit c04c9ae7b0
5 changed files with 11 additions and 9 deletions

View file

@ -278,7 +278,8 @@ class _AlbumViewerState extends State<AlbumViewer>
"[_transformItems] Unsupported file format: ${f.contentType}"); "[_transformItems] Unsupported file format: ${f.contentType}");
} }
} }
}(); }()
.toList();
} }
bool _shouldPropagateResyncedAlbum(Album album) { bool _shouldPropagateResyncedAlbum(Album album) {

View file

@ -280,7 +280,8 @@ class _ArchiveViewerState extends State<ArchiveViewer>
"[_transformItems] Unsupported file format: ${f.contentType}"); "[_transformItems] Unsupported file format: ${f.contentType}");
} }
} }
}(); }()
.toList();
} }
void _reqQuery() { void _reqQuery() {

View file

@ -402,7 +402,8 @@ class _DynamicAlbumViewerState extends State<DynamicAlbumViewer>
"[_onBackingFilesUpdated] Unsupported file format: ${f.contentType}"); "[_onBackingFilesUpdated] Unsupported file format: ${f.contentType}");
} }
} }
}(); }()
.toList();
} }
Album _album; Album _album;

View file

@ -483,7 +483,8 @@ class _HomePhotosState extends State<HomePhotos>
"[_transformItems] Unsupported file format: ${f.contentType}"); "[_transformItems] Unsupported file format: ${f.contentType}");
} }
} }
}(); }()
.toList();
} }
void _reqQuery() { void _reqQuery() {

View file

@ -78,13 +78,11 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> {
List<SelectableItem> get itemStreamListItems => UnmodifiableListView(_items); List<SelectableItem> get itemStreamListItems => UnmodifiableListView(_items);
@protected @protected
set itemStreamListItems(Iterable<SelectableItem> newItems) { set itemStreamListItems(List<SelectableItem> newItems) {
final lastSelectedItem = final lastSelectedItem =
_lastSelectPosition != null ? _items[_lastSelectPosition] : null; _lastSelectPosition != null ? _items[_lastSelectPosition] : null;
_items.clear(); _items = newItems;
_items.addAll(newItems);
_transformSelectedItems(); _transformSelectedItems();
// Keep _lastSelectPosition if no changes, drop otherwise // Keep _lastSelectPosition if no changes, drop otherwise
@ -216,7 +214,7 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> {
int _lastSelectPosition; int _lastSelectPosition;
bool _isRangeSelectionMode = false; bool _isRangeSelectionMode = false;
final _items = <SelectableItem>[]; var _items = <SelectableItem>[];
final _selectedItems = <SelectableItem>{}; final _selectedItems = <SelectableItem>{};
final _listKey = GlobalKey(); final _listKey = GlobalKey();