1
1
package fr.free.nrw.commons.upload.worker
2
2
3
3
import android.annotation.SuppressLint
4
+ import android.app.PendingIntent
5
+ import android.app.TaskStackBuilder
4
6
import android.content.Context
7
+ import android.content.Intent
5
8
import android.graphics.BitmapFactory
6
- import android.location.Geocoder
7
9
import androidx.core.app.NotificationCompat
8
10
import androidx.core.app.NotificationManagerCompat
9
11
import androidx.work.CoroutineWorker
@@ -18,11 +20,12 @@ import fr.free.nrw.commons.auth.SessionManager
18
20
import fr.free.nrw.commons.contributions.ChunkInfo
19
21
import fr.free.nrw.commons.contributions.Contribution
20
22
import fr.free.nrw.commons.contributions.ContributionDao
23
+ import fr.free.nrw.commons.contributions.MainActivity
21
24
import fr.free.nrw.commons.customselector.database.UploadedStatus
22
25
import fr.free.nrw.commons.customselector.database.UploadedStatusDao
23
26
import fr.free.nrw.commons.di.ApplicationlessInjection
24
- import fr.free.nrw.commons.location.LatLng
25
27
import fr.free.nrw.commons.media.MediaClient
28
+ import fr.free.nrw.commons.theme.BaseActivity
26
29
import fr.free.nrw.commons.upload.StashUploadResult
27
30
import fr.free.nrw.commons.upload.FileUtilsWrapper
28
31
import fr.free.nrw.commons.upload.StashUploadState
@@ -37,7 +40,6 @@ import kotlinx.coroutines.flow.map
37
40
import kotlinx.coroutines.launch
38
41
import kotlinx.coroutines.withContext
39
42
import timber.log.Timber
40
- import java.io.IOException
41
43
import java.util.*
42
44
import java.util.regex.Pattern
43
45
import javax.inject.Inject
@@ -491,6 +493,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
491
493
@SuppressLint(" StringFormatInvalid" )
492
494
private fun showFailedNotification (contribution : Contribution ) {
493
495
val displayTitle = contribution.media.displayTitle
496
+ curentNotification.setContentIntent(getPendingIntent(MainActivity ::class .java))
494
497
curentNotification.setContentTitle(
495
498
appContext.getString(
496
499
R .string.upload_failed_notification_title,
@@ -526,4 +529,18 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
526
529
curentNotification.build()
527
530
)
528
531
}
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
+
529
546
}
0 commit comments