Switch to using a LinkedHashSet to ensure there are no duplicate elements

This commit is contained in:
vishnukvmd 2023-06-05 11:40:40 +05:30
parent 3d07ca4e05
commit 770be776d7
5 changed files with 11 additions and 11 deletions

View file

@ -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) {

View 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();

View file

@ -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();
}

View file

@ -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();

View file

@ -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(),
);
},
),