@@ -3,7 +3,9 @@ package com.stop.ui.mission
3
3
import android.Manifest
4
4
import android.app.NotificationChannel
5
5
import android.app.NotificationManager
6
+ import android.app.PendingIntent
6
7
import android.content.Context
8
+ import android.content.Intent
7
9
import android.content.pm.PackageManager
8
10
import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION
9
11
import android.os.Build
@@ -17,6 +19,7 @@ import androidx.work.ForegroundInfo
17
19
import androidx.work.WorkManager
18
20
import androidx.work.WorkerParameters
19
21
import com.google.android.gms.location.*
22
+ import com.stop.MainActivity
20
23
import com.stop.R
21
24
import com.stop.isMoreThanOreo
22
25
import com.stop.model.Location
@@ -81,20 +84,20 @@ class MissionWorker @AssistedInject constructor(
81
84
private fun createForegroundInfo (): ForegroundInfo {
82
85
val id = applicationContext.getString(R .string.mission_notification_channel_id)
83
86
val title = applicationContext.getString(R .string.mission_notification_title)
84
- val cancel = applicationContext.getString(R .string.alarm_cancel_text)
85
-
86
- val intent = WorkManager .getInstance(applicationContext)
87
- .createCancelPendingIntent(getId())
88
87
89
88
createChannel(id)
90
89
90
+ val pendingIntent = PendingIntent .getActivity(applicationContext, MISSION_CODE , Intent (applicationContext, MainActivity ::class .java).apply {
91
+ putExtra(" MISSION_CODE" , MISSION_CODE )
92
+ }, PendingIntent .FLAG_UPDATE_CURRENT or PendingIntent .FLAG_IMMUTABLE )
93
+
91
94
val notification = NotificationCompat .Builder (applicationContext, id)
92
95
.setContentTitle(title)
93
96
.setTicker(title)
94
97
.setContentText(NOTIFICATION_CONTENT )
95
98
.setSmallIcon(R .mipmap.ic_bus)
96
99
.setOngoing(true ) // 사용자가 지우지 못하도록 막음
97
- .addAction(android. R .drawable.ic_delete, cancel, intent )
100
+ .setContentIntent(pendingIntent )
98
101
.build()
99
102
100
103
if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .Q ) {
@@ -121,6 +124,7 @@ class MissionWorker @AssistedInject constructor(
121
124
private const val NOTIFICATION_CONTENT = " 사용자의 위치를 추적중입니다."
122
125
private var NUM = 0
123
126
private const val INTERVAL_UNIT = 1000L
127
+ private const val MISSION_CODE = 88
124
128
}
125
129
126
130
}
0 commit comments