From 657af4fe04fafa1b9b507c09eb2f952d1763c798 Mon Sep 17 00:00:00 2001 From: VoidRaven Date: Mon, 15 Sep 2025 14:44:59 +0530 Subject: [PATCH 1/2] Fix #6409: Add listener call in ImageAdapter to update UI and upload (#6420) * Fix #6409: Add listener call in ImageAdapter to update UI and upload button on deselection * Fix image deselection issue in ImageAdapter to update UI correctly (#6409) * Prevent duplicate image selections on multiple taps in ImageAdapter when showAlreadyActionedImages is off (#6409) --------- Co-authored-by: Nicolas Raoul --- .../customselector/ui/adapter/ImageAdapter.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt b/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt index 62a440ff4..c3ef4a784 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt @@ -168,8 +168,7 @@ class ImageAdapter( // Getting selected index when switch is off } else if (actionableImagesMap.size > position) { - ImageHelper - .getIndex(selectedImages, ArrayList(actionableImagesMap.values)[position]) + ImageHelper.getIndex(selectedImages, ArrayList(actionableImagesMap.values)[position]) // For any other case return -1 } else { @@ -348,8 +347,14 @@ class ImageAdapter( numberOfSelectedImagesMarkedAsNotForUpload-- } notifyItemChanged(position, ImageUnselected()) + // Notify listener of deselection to update UI + imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload) } else { - val image = images[position] + // Prevent adding the same image multiple times + val image = if (showAlreadyActionedImages) images[position] else ArrayList(actionableImagesMap.values)[position] + if (selectedImages.contains(image)) { + return // Image already selected, ignore additional clicks + } scope.launch(ioDispatcher) { val imageSHA1 = imageLoader.getSHA1(image, defaultDispatcher) withContext(Dispatchers.Main) { @@ -373,7 +378,6 @@ class ImageAdapter( } selectedImages.add(image) notifyItemChanged(position, ImageSelectedOrUpdated()) - imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload) } } @@ -632,4 +636,4 @@ class ImageAdapter( fun setSingleSelection(single: Boolean) { singleSelection = single } -} +} \ No newline at end of file From 80180005848ddf5cf008164fa4b8a5f26214833b Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 15 Sep 2025 14:02:29 +0200 Subject: [PATCH 2/2] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-kge/error.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 app/src/main/res/values-kge/error.xml diff --git a/app/src/main/res/values-kge/error.xml b/app/src/main/res/values-kge/error.xml new file mode 100644 index 000000000..f2f30519a --- /dev/null +++ b/app/src/main/res/values-kge/error.xml @@ -0,0 +1,10 @@ + + + + Commons cadang ngojut + Ay uy. Uwat say mak bonos! + Unjuk panday sikam apiya say Niku gawiko, raduna kirimko jak surel. Informasimu nulung sikam nandanina! + Tarima kasih! +