Fix:initialize the adapter's limit from the constant

This commit is contained in:
Kota-Jagadeesh 2025-10-20 14:59:12 +05:30
parent 38b10106f8
commit 24e6ac7318
4 changed files with 10 additions and 6 deletions

View file

@ -16,6 +16,7 @@ import fr.free.nrw.commons.contributions.Contribution
import fr.free.nrw.commons.customselector.helper.ImageHelper import fr.free.nrw.commons.customselector.helper.ImageHelper
import fr.free.nrw.commons.customselector.helper.ImageHelper.CUSTOM_SELECTOR_PREFERENCE_KEY import fr.free.nrw.commons.customselector.helper.ImageHelper.CUSTOM_SELECTOR_PREFERENCE_KEY
import fr.free.nrw.commons.customselector.helper.ImageHelper.SHOW_ALREADY_ACTIONED_IMAGES_PREFERENCE_KEY import fr.free.nrw.commons.customselector.helper.ImageHelper.SHOW_ALREADY_ACTIONED_IMAGES_PREFERENCE_KEY
import fr.free.nrw.commons.customselector.helper.CustomSelectorConstants.MAX_IMAGE_COUNT
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
import fr.free.nrw.commons.customselector.ui.selector.ImageLoader import fr.free.nrw.commons.customselector.ui.selector.ImageLoader
@ -190,7 +191,7 @@ class ImageAdapter(
) )
holder.itemView.setOnClickListener { holder.itemView.setOnClickListener {
if (!holder.isItemUploaded() && !holder.isItemNotForUpload()) { if (!holder.isItemUploaded() && !holder.isItemNotForUpload()) {
if (selectedImages.size >= 20 && !isSelected) { //enforce the 20-image limit if (selectedImages.size >= MAX_IMAGE_COUNT && !isSelected) { //enforce the 20-image limit
Toast.makeText(context, "Cannot select more than 20 images", Toast.LENGTH_SHORT).show() Toast.makeText(context, "Cannot select more than 20 images", Toast.LENGTH_SHORT).show()
return@setOnClickListener return@setOnClickListener
} }
@ -400,7 +401,7 @@ class ImageAdapter(
* Set new selected images * Set new selected images
*/ */
fun setSelectedImages(newSelectedImages: ArrayList<Image>) { fun setSelectedImages(newSelectedImages: ArrayList<Image>) {
selectedImages = ArrayList(newSelectedImages.take(20)) // enforce 20-image limit selectedImages = ArrayList(newSelectedImages.take(MAX_IMAGE_COUNT)) // enforce 20-image limit
imageSelectListener.onSelectedImagesChanged(selectedImages, 0) imageSelectListener.onSelectedImagesChanged(selectedImages, 0)
} }

View file

@ -47,6 +47,7 @@ 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.FolderDeletionHelper import fr.free.nrw.commons.customselector.helper.FolderDeletionHelper
import fr.free.nrw.commons.customselector.helper.CustomSelectorConstants.MAX_IMAGE_COUNT
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
@ -107,7 +108,7 @@ class CustomSelectorActivity :
/** /**
* Maximum number of images that can be selected. * Maximum number of images that can be selected.
*/ */
private var uploadLimit: Int = 20 // changed to 20 asper the issue #3101 private var uploadLimit: Int = MAX_IMAGE_COUNT // changed to 20 asper the issue #3101
/** /**
* Flag that is marked true when the amount * Flag that is marked true when the amount
@ -214,7 +215,7 @@ class CustomSelectorActivity :
) )
// Check for single selection extra // Check for single selection extra
uploadLimit = if (intent.getBooleanExtra(EXTRA_SINGLE_SELECTION, false)) 1 else 20 uploadLimit = if (intent.getBooleanExtra(EXTRA_SINGLE_SELECTION, false)) 1 else MAX_IMAGE_COUNT
setupViews() setupViews()

View file

@ -10,6 +10,7 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.facebook.drawee.view.SimpleDraweeView import com.facebook.drawee.view.SimpleDraweeView
import fr.free.nrw.commons.R import fr.free.nrw.commons.R
import fr.free.nrw.commons.customselector.helper.CustomSelectorConstants.MAX_IMAGE_COUNT
import fr.free.nrw.commons.databinding.ItemUploadThumbnailBinding import fr.free.nrw.commons.databinding.ItemUploadThumbnailBinding
import fr.free.nrw.commons.filepicker.UploadableFile import fr.free.nrw.commons.filepicker.UploadableFile
import java.io.File import java.io.File
@ -23,7 +24,7 @@ internal class ThumbnailsAdapter(private val callback: Callback) :
var onThumbnailDeletedListener: OnThumbnailDeletedListener? = null var onThumbnailDeletedListener: OnThumbnailDeletedListener? = null
var uploadableFiles: List<UploadableFile> = emptyList() var uploadableFiles: List<UploadableFile> = emptyList()
set(value) { set(value) {
field = value.take(20) //enforce 20-image limit field = value.take(MAX_IMAGE_COUNT) //enforce 20-image limit
notifyDataSetChanged() notifyDataSetChanged()
} }

View file

@ -27,6 +27,7 @@ import fr.free.nrw.commons.R
import fr.free.nrw.commons.auth.LoginActivity import fr.free.nrw.commons.auth.LoginActivity
import fr.free.nrw.commons.auth.SessionManager import fr.free.nrw.commons.auth.SessionManager
import fr.free.nrw.commons.contributions.ContributionController import fr.free.nrw.commons.contributions.ContributionController
import fr.free.nrw.commons.customselector.helper.CustomSelectorConstants.MAX_IMAGE_COUNT
import fr.free.nrw.commons.databinding.ActivityUploadBinding import fr.free.nrw.commons.databinding.ActivityUploadBinding
import fr.free.nrw.commons.filepicker.Constants.RequestCodes import fr.free.nrw.commons.filepicker.Constants.RequestCodes
import fr.free.nrw.commons.filepicker.UploadableFile import fr.free.nrw.commons.filepicker.UploadableFile
@ -735,7 +736,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
} }
// Convert to mutable list,takes up to 20 files, or return empty list if null // Convert to mutable list,takes up to 20 files, or return empty list if null
files?.toMutableList()?.take(20)?.toMutableList() ?: run { //enforce 20-image limit files?.toMutableList()?.take(MAX_IMAGE_COUNT)?.toMutableList() ?: run { //enforce 20-image limit
Timber.w("Files array was null") Timber.w("Files array was null")
mutableListOf() mutableListOf()
} }