From cd09c81d2e0536e581e3c5600dcfc7804dcdb174 Mon Sep 17 00:00:00 2001 From: jagadeesh-18-bot Date: Sun, 7 Sep 2025 07:08:24 +0530 Subject: [PATCH] Fix #6409: Add listener call in ImageAdapter to update UI and upload button on deselection --- .../customselector/ui/adapter/ImageAdapter.kt | 30 ++----------------- 1 file changed, 3 insertions(+), 27 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..375e3c9a2 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 @@ -296,39 +296,14 @@ class ImageAdapter( private fun onThumbnailClicked( position: Int, holder: ImageViewHolder, - ) { - val sharedPreferences: SharedPreferences = - context.getSharedPreferences(CUSTOM_SELECTOR_PREFERENCE_KEY, 0) - val switchState = - sharedPreferences.getBoolean(SHOW_ALREADY_ACTIONED_IMAGES_PREFERENCE_KEY, true) - - // While switch is turned off, lets user click on image only if the position is - // added inside map - if (!switchState) { - if (actionableImagesMap.size > position) { - selectOrRemoveImage(holder, position) - } - } else { - selectOrRemoveImage(holder, position) - } - } - - /** - * Handle click event on an image, update counter on images. - */ - private fun selectOrRemoveImage( - holder: ImageViewHolder, - position: Int, ) { val sharedPreferences: SharedPreferences = context.getSharedPreferences(CUSTOM_SELECTOR_PREFERENCE_KEY, 0) val showAlreadyActionedImages = sharedPreferences.getBoolean(SHOW_ALREADY_ACTIONED_IMAGES_PREFERENCE_KEY, true) - // Getting clicked index from all images index when show_already_actioned_images - // switch is on + // Single Selection mode if (singleSelection) { - // If single selection mode, clear previous selection and select only the new one if (selectedImages.isNotEmpty() && (selectedImages[0] != images[position])) { val prevIndex = images.indexOf(selectedImages[0]) selectedImages.clear() @@ -348,6 +323,7 @@ class ImageAdapter( numberOfSelectedImagesMarkedAsNotForUpload-- } notifyItemChanged(position, ImageUnselected()) + imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload) // Added this line to notify the activity } else { val image = images[position] scope.launch(ioDispatcher) { @@ -632,4 +608,4 @@ class ImageAdapter( fun setSingleSelection(single: Boolean) { singleSelection = single } -} +} \ No newline at end of file