Switch to using a LinkedHashSet to ensure there are no duplicate elements
This commit is contained in:
parent
3d07ca4e05
commit
770be776d7
5 changed files with 11 additions and 11 deletions
|
@ -5,7 +5,7 @@ import 'package:photos/events/clear_selections_event.dart';
|
|||
import 'package:photos/models/file.dart';
|
||||
|
||||
class SelectedFiles extends ChangeNotifier {
|
||||
final files = <File>[];
|
||||
final files = <File>{};
|
||||
final lastSelections = <File>{};
|
||||
|
||||
void toggleSelection(File file) {
|
||||
|
|
|
@ -424,7 +424,7 @@ class CollectionsListWidget extends StatelessWidget {
|
|||
await CollectionsService.instance.move(
|
||||
toCollectionID,
|
||||
fromCollectionID,
|
||||
selectedFiles!.files,
|
||||
selectedFiles!.files.toList(),
|
||||
);
|
||||
await dialog.hide();
|
||||
RemoteSyncService.instance.sync(silently: true);
|
||||
|
@ -455,7 +455,7 @@ class CollectionsListWidget extends StatelessWidget {
|
|||
await dialog.show();
|
||||
try {
|
||||
await CollectionsService.instance
|
||||
.restore(toCollectionID, selectedFiles!.files);
|
||||
.restore(toCollectionID, selectedFiles!.files.toList());
|
||||
RemoteSyncService.instance.sync(silently: true);
|
||||
selectedFiles?.clearAll();
|
||||
await dialog.hide();
|
||||
|
|
|
@ -412,7 +412,7 @@ class _FileSelectionActionWidgetState extends State<FileSelectionActionWidget> {
|
|||
Future<void> _onCreateCollageClicked() async {
|
||||
final bool? result = await routeToPage(
|
||||
context,
|
||||
CollageCreatorPage(widget.selectedFiles.files),
|
||||
CollageCreatorPage(widget.selectedFiles.files.toList()),
|
||||
);
|
||||
if (result != null && result) {
|
||||
widget.selectedFiles.clearAll();
|
||||
|
@ -502,7 +502,7 @@ class _FileSelectionActionWidgetState extends State<FileSelectionActionWidget> {
|
|||
Future<void> _permanentlyDelete() async {
|
||||
if (await deleteFromTrash(
|
||||
context,
|
||||
widget.selectedFiles.files,
|
||||
widget.selectedFiles.files.toList(),
|
||||
)) {
|
||||
widget.selectedFiles.clearAll();
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@ class _FileSelectionOverlayBarState extends State<FileSelectionOverlayBar> {
|
|||
onTap: () async {
|
||||
if (await deleteFromTrash(
|
||||
context,
|
||||
widget.selectedFiles.files,
|
||||
widget.selectedFiles.files.toList(),
|
||||
)) {
|
||||
widget.selectedFiles.clearAll();
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ class _FileSelectionOverlayBarState extends State<FileSelectionOverlayBar> {
|
|||
onTap: () => shareSelected(
|
||||
context,
|
||||
shareButtonKey,
|
||||
widget.selectedFiles.files,
|
||||
widget.selectedFiles.files.toList(),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
@ -160,7 +160,7 @@ class _FileSelectionOverlayBarState extends State<FileSelectionOverlayBar> {
|
|||
Future<void> _onUnArchiveClick() async {
|
||||
await changeVisibility(
|
||||
context,
|
||||
widget.selectedFiles.files,
|
||||
widget.selectedFiles.files.toList(),
|
||||
visibleVisibility,
|
||||
);
|
||||
widget.selectedFiles.clearAll();
|
||||
|
|
|
@ -537,7 +537,7 @@ Future<void> showDeleteSheet(
|
|||
onTap: () async {
|
||||
await deleteFilesFromRemoteOnly(
|
||||
context,
|
||||
selectedFiles.files,
|
||||
selectedFiles.files.toList(),
|
||||
).then(
|
||||
(value) {
|
||||
showShortToast(context, S.of(context).movedToTrash);
|
||||
|
@ -564,7 +564,7 @@ Future<void> showDeleteSheet(
|
|||
shouldSurfaceExecutionStates: false,
|
||||
isInAlert: true,
|
||||
onTap: () async {
|
||||
await deleteFilesOnDeviceOnly(context, selectedFiles.files);
|
||||
await deleteFilesOnDeviceOnly(context, selectedFiles.files.toList());
|
||||
},
|
||||
),
|
||||
);
|
||||
|
@ -583,7 +583,7 @@ Future<void> showDeleteSheet(
|
|||
onTap: () async {
|
||||
await deleteFilesFromEverywhere(
|
||||
context,
|
||||
selectedFiles.files,
|
||||
selectedFiles.files.toList(),
|
||||
);
|
||||
},
|
||||
),
|
||||
|
|
Loading…
Add table
Reference in a new issue