Fixes #5840 Custom select folder display breaks after exiting media preview (#5866)

* ImageFragment.kt: notifyDataSetChanged() added to update observers about init call in handleResult()

* ImageFragment.kt: unnecessary initialisation after exiting media preview was removed from passSelectedImages
This commit is contained in:
LachlanMajor 2024-10-20 22:36:15 +11:00 committed by GitHub
parent 63f1ed8a2d
commit 56d0beb22a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 5 additions and 11 deletions

View file

@ -41,7 +41,6 @@ import fr.free.nrw.commons.R
import fr.free.nrw.commons.customselector.database.NotForUploadStatus import fr.free.nrw.commons.customselector.database.NotForUploadStatus
import fr.free.nrw.commons.customselector.database.NotForUploadStatusDao import fr.free.nrw.commons.customselector.database.NotForUploadStatusDao
import fr.free.nrw.commons.customselector.helper.CustomSelectorConstants import fr.free.nrw.commons.customselector.helper.CustomSelectorConstants
import fr.free.nrw.commons.customselector.helper.CustomSelectorConstants.SHOULD_REFRESH
import fr.free.nrw.commons.customselector.listeners.FolderClickListener import fr.free.nrw.commons.customselector.listeners.FolderClickListener
import fr.free.nrw.commons.customselector.listeners.ImageSelectListener import fr.free.nrw.commons.customselector.listeners.ImageSelectListener
import fr.free.nrw.commons.customselector.model.Image import fr.free.nrw.commons.customselector.model.Image
@ -237,8 +236,7 @@ class CustomSelectorActivity :
val selectedImages: ArrayList<Image> = val selectedImages: ArrayList<Image> =
data!! data!!
.getParcelableArrayListExtra(CustomSelectorConstants.NEW_SELECTED_IMAGES)!! .getParcelableArrayListExtra(CustomSelectorConstants.NEW_SELECTED_IMAGES)!!
val shouldRefresh = data.getBooleanExtra(SHOULD_REFRESH, false) viewModel?.selectedImages?.value = selectedImages
imageFragment?.passSelectedImages(selectedImages, shouldRefresh)
} }
} }

View file

@ -279,6 +279,10 @@ class ImageFragment :
filteredImages = ImageHelper.filterImages(images, bucketId) filteredImages = ImageHelper.filterImages(images, bucketId)
allImages = ArrayList(filteredImages) allImages = ArrayList(filteredImages)
imageAdapter.init(filteredImages, allImages, TreeMap(), uploadingContributions) imageAdapter.init(filteredImages, allImages, TreeMap(), uploadingContributions)
viewModel?.selectedImages?.value?.let { selectedImages ->
imageAdapter.setSelectedImages(selectedImages)
}
imageAdapter.notifyDataSetChanged()
selectorRV?.let { selectorRV?.let {
it.visibility = View.VISIBLE it.visibility = View.VISIBLE
lastItemId?.let { pos -> lastItemId?.let { pos ->
@ -382,14 +386,6 @@ class ImageFragment :
selectedImages: ArrayList<Image>, selectedImages: ArrayList<Image>,
shouldRefresh: Boolean, shouldRefresh: Boolean,
) { ) {
imageAdapter.setSelectedImages(selectedImages)
val uploadingContributions = getUploadingContributions()
if (!showAlreadyActionedImages && shouldRefresh) {
imageAdapter.init(filteredImages, allImages, TreeMap(), uploadingContributions)
imageAdapter.setSelectedImages(selectedImages)
}
} }
/** /**