11package fr.free.nrw.commons.upload.worker
22
33import android.annotation.SuppressLint
4+ import android.app.PendingIntent
5+ import android.app.TaskStackBuilder
46import android.content.Context
7+ import android.content.Intent
58import android.graphics.BitmapFactory
6- import android.location.Geocoder
79import androidx.core.app.NotificationCompat
810import androidx.core.app.NotificationManagerCompat
911import androidx.work.CoroutineWorker
@@ -18,11 +20,12 @@ import fr.free.nrw.commons.auth.SessionManager
1820import fr.free.nrw.commons.contributions.ChunkInfo
1921import fr.free.nrw.commons.contributions.Contribution
2022import fr.free.nrw.commons.contributions.ContributionDao
23+ import fr.free.nrw.commons.contributions.MainActivity
2124import fr.free.nrw.commons.customselector.database.UploadedStatus
2225import fr.free.nrw.commons.customselector.database.UploadedStatusDao
2326import fr.free.nrw.commons.di.ApplicationlessInjection
24- import fr.free.nrw.commons.location.LatLng
2527import fr.free.nrw.commons.media.MediaClient
28+ import fr.free.nrw.commons.theme.BaseActivity
2629import fr.free.nrw.commons.upload.StashUploadResult
2730import fr.free.nrw.commons.upload.FileUtilsWrapper
2831import fr.free.nrw.commons.upload.StashUploadState
@@ -37,7 +40,6 @@ import kotlinx.coroutines.flow.map
3740import kotlinx.coroutines.launch
3841import kotlinx.coroutines.withContext
3942import timber.log.Timber
40- import java.io.IOException
4143import java.util.*
4244import java.util.regex.Pattern
4345import javax.inject.Inject
@@ -491,6 +493,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
491493 @SuppressLint(" StringFormatInvalid" )
492494 private fun showFailedNotification (contribution : Contribution ) {
493495 val displayTitle = contribution.media.displayTitle
496+ curentNotification.setContentIntent(getPendingIntent(MainActivity ::class .java))
494497 curentNotification.setContentTitle(
495498 appContext.getString(
496499 R .string.upload_failed_notification_title,
@@ -526,4 +529,18 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
526529 curentNotification.build()
527530 )
528531 }
532+
533+ /* *
534+ * Method used to get Pending intent for opening different screen after clicking on notification
535+ * @param toClass
536+ */
537+ private fun getPendingIntent (toClass : Class <out BaseActivity >):PendingIntent
538+ {
539+ val intent = Intent (appContext,toClass)
540+ return TaskStackBuilder .create(appContext).run {
541+ addNextIntentWithParentStack(intent)
542+ getPendingIntent(0 , PendingIntent .FLAG_UPDATE_CURRENT )
543+ };
544+ }
545+
529546}
0 commit comments