Skip to content

Commit 553b69b

Browse files
authored
Merge pull request #506 from code-payments/chore/open-app-from-notification
chore: open app from push notification
2 parents cfec920 + 567c9a3 commit 553b69b

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

app/src/main/java/com/getcode/notifications/CodePushMessagingService.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package com.getcode.notifications
33
import android.app.Notification
44
import android.app.NotificationChannel
55
import android.app.NotificationManager
6+
import android.app.PendingIntent
67
import android.content.Context
8+
import android.content.Intent
79
import android.media.RingtoneManager
810
import android.os.Build
911
import androidx.core.app.NotificationCompat
@@ -26,6 +28,7 @@ import com.getcode.util.resources.ResourceHelper
2628
import com.getcode.util.resources.ResourceType
2729
import com.getcode.utils.ErrorUtils
2830
import com.getcode.utils.installationId
31+
import com.getcode.view.MainActivity
2932
import com.google.firebase.Firebase
3033
import com.google.firebase.installations.installations
3134
import 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

211228
private fun NotificationManager.getActiveNotification(notificationId: Int): Notification? {
212229
val barNotifications = getActiveNotifications()

0 commit comments

Comments
 (0)