@@ -3,7 +3,9 @@ package com.getcode.notifications
33import android.app.Notification
44import android.app.NotificationChannel
55import android.app.NotificationManager
6+ import android.app.PendingIntent
67import android.content.Context
8+ import android.content.Intent
79import android.media.RingtoneManager
810import android.os.Build
911import androidx.core.app.NotificationCompat
@@ -26,6 +28,7 @@ import com.getcode.util.resources.ResourceHelper
2628import com.getcode.util.resources.ResourceType
2729import com.getcode.utils.ErrorUtils
2830import com.getcode.utils.installationId
31+ import com.getcode.view.MainActivity
2932import com.google.firebase.Firebase
3033import com.google.firebase.installations.installations
3134import com.google.firebase.messaging.FirebaseMessagingService
@@ -183,6 +186,7 @@ class CodePushMessagingService : FirebaseMessagingService(),
183186 .setSound(RingtoneManager .getDefaultUri(RingtoneManager .TYPE_NOTIFICATION ))
184187 .setSmallIcon(R .drawable.ic_code_logo_outline)
185188 .setAutoCancel(true )
189+ .setContentIntent(buildContentIntent(type))
186190
187191 notificationManager.notify(title.hashCode(), notificationBuilder.build())
188192 }
@@ -207,6 +211,19 @@ class CodePushMessagingService : FirebaseMessagingService(),
207211 }
208212}
209213
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+
210227
211228private fun NotificationManager.getActiveNotification (notificationId : Int ): Notification ? {
212229 val barNotifications = getActiveNotifications()
0 commit comments