mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
* 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 <nicolas.raoul@gmail.com>
This commit is contained in:
parent
219fcd3dd8
commit
657af4fe04
1 changed files with 9 additions and 5 deletions
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue