mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +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
|
// Getting selected index when switch is off
|
||||||
} else if (actionableImagesMap.size > position) {
|
} else if (actionableImagesMap.size > position) {
|
||||||
ImageHelper
|
ImageHelper.getIndex(selectedImages, ArrayList(actionableImagesMap.values)[position])
|
||||||
.getIndex(selectedImages, ArrayList(actionableImagesMap.values)[position])
|
|
||||||
|
|
||||||
// For any other case return -1
|
// For any other case return -1
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -348,8 +347,14 @@ class ImageAdapter(
|
||||||
numberOfSelectedImagesMarkedAsNotForUpload--
|
numberOfSelectedImagesMarkedAsNotForUpload--
|
||||||
}
|
}
|
||||||
notifyItemChanged(position, ImageUnselected())
|
notifyItemChanged(position, ImageUnselected())
|
||||||
|
// Notify listener of deselection to update UI
|
||||||
|
imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
|
||||||
} else {
|
} 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) {
|
scope.launch(ioDispatcher) {
|
||||||
val imageSHA1 = imageLoader.getSHA1(image, defaultDispatcher)
|
val imageSHA1 = imageLoader.getSHA1(image, defaultDispatcher)
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
|
|
@ -373,7 +378,6 @@ class ImageAdapter(
|
||||||
}
|
}
|
||||||
selectedImages.add(image)
|
selectedImages.add(image)
|
||||||
notifyItemChanged(position, ImageSelectedOrUpdated())
|
notifyItemChanged(position, ImageSelectedOrUpdated())
|
||||||
|
|
||||||
imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
|
imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -632,4 +636,4 @@ class ImageAdapter(
|
||||||
fun setSingleSelection(single: Boolean) {
|
fun setSingleSelection(single: Boolean) {
|
||||||
singleSelection = single
|
singleSelection = single
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue