From 16da0ec3f57a4803a91862f9f9dcc858b4522dc9 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Sun, 2 Feb 2025 20:59:17 +0100 Subject: [PATCH] #1331 ignore attempts to move file to its current folder --- .../exifinterface/media/ExifInterfaceFork.java | 1 + lib/widgets/common/action_mixins/entry_storage.dart | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/android/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterfaceFork.java b/android/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterfaceFork.java index d3e422bb0..2f0f4566a 100644 --- a/android/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterfaceFork.java +++ b/android/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterfaceFork.java @@ -93,6 +93,7 @@ import java.util.zip.CRC32; /* * Forked from 'androidx.exifinterface:exifinterface:1.4.0-beta01' on 2025/01/21 * Named differently to let ExifInterface be loaded as subdependency. + * cf https://maven.google.com/web/index.html?q=exifinterface#androidx.exifinterface:exifinterface * cf https://github.com/androidx/androidx/tree/androidx-main/exifinterface/exifinterface/src/main/java/androidx/exifinterface/media */ diff --git a/lib/widgets/common/action_mixins/entry_storage.dart b/lib/widgets/common/action_mixins/entry_storage.dart index f57a6e656..e8dc67f26 100644 --- a/lib/widgets/common/action_mixins/entry_storage.dart +++ b/lib/widgets/common/action_mixins/entry_storage.dart @@ -162,13 +162,21 @@ mixin EntryStorageMixin on FeedbackMixin, PermissionAwareMixin, SizeAwareMixin { Future doQuickMove( BuildContext context, { required MoveType moveType, - required Map> entriesByDestination, + required Map> entriesByDestination, bool hideShowAction = false, VoidCallback? onSuccess, }) async { + if (moveType == MoveType.move) { + // skip moving entries to their directory + entriesByDestination.forEach((destinationAlbum, entries) { + entries.removeWhere((entry) => entry.directory == destinationAlbum); + }); + entriesByDestination.removeWhere((_, entries) => entries.isEmpty); + } + final entries = entriesByDestination.values.expand((v) => v).toSet(); final todoCount = entries.length; - assert(todoCount > 0); + if (todoCount == 0) return; final toBin = moveType == MoveType.toBin; final copy = moveType == MoveType.copy;