@@ -3,7 +3,9 @@ package com.getcode.notifications
3
3
import android.app.Notification
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.media.RingtoneManager
8
10
import android.os.Build
9
11
import androidx.core.app.NotificationCompat
@@ -26,6 +28,7 @@ import com.getcode.util.resources.ResourceHelper
26
28
import com.getcode.util.resources.ResourceType
27
29
import com.getcode.utils.ErrorUtils
28
30
import com.getcode.utils.installationId
31
+ import com.getcode.view.MainActivity
29
32
import com.google.firebase.Firebase
30
33
import com.google.firebase.installations.installations
31
34
import com.google.firebase.messaging.FirebaseMessagingService
@@ -183,6 +186,7 @@ class CodePushMessagingService : FirebaseMessagingService(),
183
186
.setSound(RingtoneManager .getDefaultUri(RingtoneManager .TYPE_NOTIFICATION ))
184
187
.setSmallIcon(R .drawable.ic_code_logo_outline)
185
188
.setAutoCancel(true )
189
+ .setContentIntent(buildContentIntent(type))
186
190
187
191
notificationManager.notify(title.hashCode(), notificationBuilder.build())
188
192
}
@@ -207,6 +211,19 @@ class CodePushMessagingService : FirebaseMessagingService(),
207
211
}
208
212
}
209
213
214
+ private fun Context.buildContentIntent (type : NotificationType ): PendingIntent {
215
+ val launchIntent = Intent (this , MainActivity ::class .java).apply {
216
+ flags = Intent .FLAG_ACTIVITY_NEW_TASK or Intent .FLAG_ACTIVITY_CLEAR_TASK
217
+ }
218
+
219
+ return PendingIntent .getActivity(
220
+ this ,
221
+ type.ordinal,
222
+ launchIntent,
223
+ PendingIntent .FLAG_UPDATE_CURRENT or PendingIntent .FLAG_IMMUTABLE
224
+ )
225
+ }
226
+
210
227
211
228
private fun NotificationManager.getActiveNotification (notificationId : Int ): Notification ? {
212
229
val barNotifications = getActiveNotifications()
0 commit comments