From d4011b25f4944726dcc6661b2b1a7cf33f46e070 Mon Sep 17 00:00:00 2001 From: Nishthajain7 Date: Fri, 11 Jul 2025 17:50:50 +0530 Subject: [PATCH] Fixed back button issue --- .../contributions/ContributionController.kt | 43 +++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.kt b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.kt index 29267452b..fe6c8f68b 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.kt @@ -362,9 +362,12 @@ class ContributionController @Inject constructor(@param:Named("default_preferenc override fun onImagesPicked( imagesFiles: List, - source: FilePicker.ImageSource, type: Int + source: FilePicker.ImageSource, + type: Int ) { - val intent = handleImagesPicked(activity, imagesFiles) + val intent = handleImagesPicked(activity, imagesFiles).apply { + addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) + } activity.startActivity(intent) } }) @@ -385,27 +388,31 @@ class ContributionController @Inject constructor(@param:Named("default_preferenc context: Context, imagesFiles: List ): Intent { - val shareIntent = Intent(context, UploadActivity::class.java) - shareIntent.setAction(ACTION_INTERNAL_UPLOADS) - shareIntent - .putParcelableArrayListExtra(UploadActivity.EXTRA_FILES, ArrayList(imagesFiles)) - val place = defaultKvStore.getJson(PLACE_OBJECT, Place::class.java) + val shareIntent = Intent(context, UploadActivity::class.java).apply { + action = ACTION_INTERNAL_UPLOADS + putParcelableArrayListExtra(UploadActivity.EXTRA_FILES, ArrayList(imagesFiles)) - if (place != null) { - shareIntent.putExtra(PLACE_OBJECT, place) - } + val place = defaultKvStore.getJson(PLACE_OBJECT, Place::class.java) + if (place != null) { + putExtra(PLACE_OBJECT, place) + } - if (locationBeforeImageCapture != null) { - shareIntent.putExtra( - UploadActivity.LOCATION_BEFORE_IMAGE_CAPTURE, - locationBeforeImageCapture + if (locationBeforeImageCapture != null) { + putExtra( + UploadActivity.LOCATION_BEFORE_IMAGE_CAPTURE, + locationBeforeImageCapture + ) + } + + putExtra( + UploadActivity.IN_APP_CAMERA_UPLOAD, + isInAppCameraUpload ) + + // ✅ Prevent multiple UploadActivity instances on backstack + addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) } - shareIntent.putExtra( - UploadActivity.IN_APP_CAMERA_UPLOAD, - isInAppCameraUpload - ) isInAppCameraUpload = false // reset the flag for next use return shareIntent }