fix(#214): notification tap now navigates to correct session
Root cause: MainActivity had no onNewIntent override. When the app was backgrounded and a notification was tapped, Android brought the existing task to the foreground and delivered the intent via onNewIntent — but since it wasn't overridden, the session ID from the notification was silently dropped and the user saw the last-active session. Fix: 1. Changed notificationSessionId from a local val to a Compose mutableStateOf so it's observable across recompositions. 2. Added onNewIntent override that reads the session ID from the incoming intent and updates the observable state. 3. Added FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP to the notification PendingIntent for reliable task management.
This commit is contained in:
1 parent
262578528b
commit
d2e59b2741
2 files changed
+20
-4
No files matched your search
@@ -153,9 +153,11 @@ class ChatNotificationService : Service() {
|
||||
}
|
||||
|
||||
private fun buildContentIntent(sessionId: String?): PendingIntent {
|
||||
val intent = Intent(this, MainActivity::class.java)
|
||||
if (!sessionId.isNullOrBlank()) {
|
||||
intent.putExtra(NotificationReplyReceiver.EXTRA_SESSION_ID, sessionId)
|
||||
val intent = Intent(this, MainActivity::class.java).apply {
|
||||
flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
|
||||
if (!sessionId.isNullOrBlank()) {
|
||||
putExtra(NotificationReplyReceiver.EXTRA_SESSION_ID, sessionId)
|
||||
}
|
||||
}
|
||||
return PendingIntent.getActivity(
|
||||
this,
|
||||
|
||||
Reference in new issue
Block a user