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..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 @@ -66,6 +66,11 @@ class UploadProgressActivity : BaseActivity() { }, ) setTabs() + + val targetTab = intent.getIntExtra(EXTRA_TARGET_TAB, 0) + if (targetTab != 0) { + binding.uploadProgressViewPager.currentItem = targetTab + } } /** @@ -87,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) } @@ -208,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 21db20f1bf5..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)) + currentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java, UploadProgressActivity.TAB_FAILED)) 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, UploadProgressActivity.TAB_FAILED)) 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(UploadProgressActivity.EXTRA_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) } } }