From d918b848e8ddf46d8e0b9e7ac1f6b7ef2376ae0b Mon Sep 17 00:00:00 2001 From: Kota-Jagadeesh Date: Tue, 14 Oct 2025 00:18:56 +0530 Subject: [PATCH] Enforced 5-image limit for selection and upload, added close button, updated warning dialog strings, and ensured thumbnail bar consistency --- .../free/nrw/commons/upload/ThumbnailsAdapter.kt | 2 +- .../fr/free/nrw/commons/upload/UploadActivity.kt | 7 +++++-- .../res/layout/item_custom_selector_image.xml | 15 ++++++++++++--- app/src/main/res/values/strings.xml | 2 ++ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ThumbnailsAdapter.kt b/app/src/main/java/fr/free/nrw/commons/upload/ThumbnailsAdapter.kt index d467f9bf6..2cc8603be 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ThumbnailsAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/ThumbnailsAdapter.kt @@ -23,7 +23,7 @@ internal class ThumbnailsAdapter(private val callback: Callback) : var onThumbnailDeletedListener: OnThumbnailDeletedListener? = null var uploadableFiles: List = emptyList() set(value) { - field = value + field = value.take(5) //enforce 5-image limit notifyDataSetChanged() } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.kt b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.kt index c2bed5fff..4b2c72057 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.kt @@ -735,8 +735,8 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C intent.getParcelableArrayListExtra(EXTRA_FILES) } - // Convert to mutable list or return empty list if null - files?.toMutableList() ?: run { + // Convert to mutable list,takes up to 5 files, or return empty list if null + files?.toMutableList()?.take(5)?.toMutableList() ?: run { //enforce 5-image limit Timber.w("Files array was null") mutableListOf() } @@ -753,6 +753,9 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C Timber.d("File $index path: ${file.getFilePath()}") } + //update thumbnails adapter with limited files + thumbnailsAdapter?.uploadableFiles = uploadableFiles + // Handle other extras with null safety place = try { if (VERSION.SDK_INT >= VERSION_CODES.TIRAMISU) { diff --git a/app/src/main/res/layout/item_custom_selector_image.xml b/app/src/main/res/layout/item_custom_selector_image.xml index d7b8611d7..8b37389f7 100644 --- a/app/src/main/res/layout/item_custom_selector_image.xml +++ b/app/src/main/res/layout/item_custom_selector_image.xml @@ -1,4 +1,3 @@ - + - + app:constraint_referenced_ids="selected_overlay,selected_image,close_button"/> Created and uploaded by: %1$s Created by %1$s and uploaded by %2$s Nominated for Deletion + + You can only select up to 5 images.