From 7c1f130c48c40845458e92bd7ff5fcf563777b3f Mon Sep 17 00:00:00 2001 From: Kishan8548 Date: Tue, 12 May 2026 15:49:32 +0530 Subject: [PATCH 1/2] Fix #6881: Add intent to Failed Upload notification to open Failed tab --- .../free/nrw/commons/upload/UploadProgressActivity.kt | 5 +++++ .../fr/free/nrw/commons/upload/worker/UploadWorker.kt | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt b/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt index a8aa5c3ff70..5337496a91e 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt @@ -66,6 +66,11 @@ class UploadProgressActivity : BaseActivity() { }, ) setTabs() + + val targetTab = intent.getIntExtra("upload_target_tab", 0) + if (targetTab != 0) { + binding.uploadProgressViewPager.currentItem = targetTab + } } /** diff --git a/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt b/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt index 21db20f1bf5..f525857e476 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt @@ -629,7 +629,7 @@ class UploadWorker( @SuppressLint("StringFormatInvalid", "MissingPermission") private fun showFailedNotification(contribution: Contribution) { val displayTitle = contribution.media.displayTitle - currentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java)) + currentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java, 1)) currentNotification .setContentTitle( appContext.getString( @@ -671,6 +671,7 @@ class UploadWorker( @SuppressLint("StringFormatInvalid", "MissingPermission") private fun showErrorNotification(contribution: Contribution) { val displayTitle = contribution.media.displayTitle + currentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java, 1)) currentNotification .setContentTitle( appContext.getString( @@ -736,18 +737,20 @@ class UploadWorker( /** * Method used to get Pending intent for opening different screen after clicking on notification * @param toClass + * @param targetTab */ - private fun getPendingIntent(toClass: Class): PendingIntent { + private fun getPendingIntent(toClass: Class, targetTab: Int = 0): PendingIntent { val intent = Intent(appContext, toClass) + intent.putExtra("upload_target_tab", targetTab) return TaskStackBuilder.create(appContext).run { addNextIntentWithParentStack(intent) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { getPendingIntent( - 0, + targetTab, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT, ) } else { - getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT) + getPendingIntent(targetTab, PendingIntent.FLAG_UPDATE_CURRENT) } } } From 331dde84d043447d71d56d50cabcd31517874a30 Mon Sep 17 00:00:00 2001 From: Kishan8548 Date: Tue, 12 May 2026 16:00:26 +0530 Subject: [PATCH 2/2] Refactor: address Copilot suggestions for intent extras and menu invalidation --- .../fr/free/nrw/commons/upload/UploadProgressActivity.kt | 9 +++++++-- .../fr/free/nrw/commons/upload/worker/UploadWorker.kt | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt b/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt index 5337496a91e..9a0abcd0654 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt @@ -67,7 +67,7 @@ class UploadProgressActivity : BaseActivity() { ) setTabs() - val targetTab = intent.getIntExtra("upload_target_tab", 0) + val targetTab = intent.getIntExtra(EXTRA_TARGET_TAB, 0) if (targetTab != 0) { binding.uploadProgressViewPager.currentItem = targetTab } @@ -92,7 +92,7 @@ class UploadProgressActivity : BaseActivity() { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.menu_uploads, menu) this.menu = menu - updateMenuItems(0) + updateMenuItems(binding.uploadProgressViewPager.currentItem) return super.onCreateOptionsMenu(menu) } @@ -213,4 +213,9 @@ class UploadProgressActivity : BaseActivity() { isErrorIconsVisisble = visible updateMenuItems(binding.uploadProgressViewPager.currentItem) } + + companion object { + const val EXTRA_TARGET_TAB = "upload_target_tab" + const val TAB_FAILED = 1 + } } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt b/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt index f525857e476..9c945e4a67b 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt @@ -629,7 +629,7 @@ class UploadWorker( @SuppressLint("StringFormatInvalid", "MissingPermission") private fun showFailedNotification(contribution: Contribution) { val displayTitle = contribution.media.displayTitle - currentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java, 1)) + currentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java, UploadProgressActivity.TAB_FAILED)) currentNotification .setContentTitle( appContext.getString( @@ -671,7 +671,7 @@ class UploadWorker( @SuppressLint("StringFormatInvalid", "MissingPermission") private fun showErrorNotification(contribution: Contribution) { val displayTitle = contribution.media.displayTitle - currentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java, 1)) + currentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java, UploadProgressActivity.TAB_FAILED)) currentNotification .setContentTitle( appContext.getString( @@ -741,7 +741,7 @@ class UploadWorker( */ private fun getPendingIntent(toClass: Class, targetTab: Int = 0): PendingIntent { val intent = Intent(appContext, toClass) - intent.putExtra("upload_target_tab", targetTab) + intent.putExtra(UploadProgressActivity.EXTRA_TARGET_TAB, targetTab) return TaskStackBuilder.create(appContext).run { addNextIntentWithParentStack(intent) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {