Fix #6409: Add listener call in ImageAdapter to update UI and upload button on deselection

This commit is contained in:
jagadeesh-18-bot 2025-09-07 07:08:24 +05:30
parent 730f314200
commit cd09c81d2e

View file

@ -296,39 +296,14 @@ class ImageAdapter(
private fun onThumbnailClicked( private fun onThumbnailClicked(
position: Int, position: Int,
holder: ImageViewHolder, 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 = val sharedPreferences: SharedPreferences =
context.getSharedPreferences(CUSTOM_SELECTOR_PREFERENCE_KEY, 0) context.getSharedPreferences(CUSTOM_SELECTOR_PREFERENCE_KEY, 0)
val showAlreadyActionedImages = val showAlreadyActionedImages =
sharedPreferences.getBoolean(SHOW_ALREADY_ACTIONED_IMAGES_PREFERENCE_KEY, true) sharedPreferences.getBoolean(SHOW_ALREADY_ACTIONED_IMAGES_PREFERENCE_KEY, true)
// Getting clicked index from all images index when show_already_actioned_images // Single Selection mode
// switch is on
if (singleSelection) { if (singleSelection) {
// If single selection mode, clear previous selection and select only the new one
if (selectedImages.isNotEmpty() && (selectedImages[0] != images[position])) { if (selectedImages.isNotEmpty() && (selectedImages[0] != images[position])) {
val prevIndex = images.indexOf(selectedImages[0]) val prevIndex = images.indexOf(selectedImages[0])
selectedImages.clear() selectedImages.clear()
@ -348,6 +323,7 @@ class ImageAdapter(
numberOfSelectedImagesMarkedAsNotForUpload-- numberOfSelectedImagesMarkedAsNotForUpload--
} }
notifyItemChanged(position, ImageUnselected()) notifyItemChanged(position, ImageUnselected())
imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload) // Added this line to notify the activity
} else { } else {
val image = images[position] val image = images[position]
scope.launch(ioDispatcher) { scope.launch(ioDispatcher) {
@ -632,4 +608,4 @@ class ImageAdapter(
fun setSingleSelection(single: Boolean) { fun setSingleSelection(single: Boolean) {
singleSelection = single singleSelection = single
} }
} }