From aba39ef5683ad998c7782362c9559dcdfb8705eb Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 14 Apr 2023 18:10:55 +0200 Subject: [PATCH] Fix issue with pendingintent data. (Simplier to use String that Serializable) --- .../notifications/factories/PendingIntentFactory.kt | 10 +++++----- .../factories/action/AcceptInvitationActionFactory.kt | 6 +++--- .../factories/action/MarkAsReadActionFactory.kt | 6 +++--- .../factories/action/QuickReplyActionFactory.kt | 8 ++++---- .../factories/action/RejectInvitationActionFactory.kt | 6 +++--- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/PendingIntentFactory.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/PendingIntentFactory.kt index ca662afe17..4979eb3ddb 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/PendingIntentFactory.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/PendingIntentFactory.kt @@ -63,8 +63,8 @@ class PendingIntentFactory @Inject constructor( fun createDismissSummaryPendingIntent(sessionId: SessionId): PendingIntent { val intent = Intent(context, NotificationBroadcastReceiver::class.java) intent.action = actionIds.dismissSummary - intent.data = createIgnoredUri("deleteSummary?${sessionId.value}") - intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId) + intent.data = createIgnoredUri("deleteSummary/${sessionId.value}") + intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId.value) return PendingIntent.getBroadcast( context, 0, @@ -76,9 +76,9 @@ class PendingIntentFactory @Inject constructor( fun createDismissRoomPendingIntent(sessionId: SessionId, roomId: RoomId): PendingIntent { val intent = Intent(context, NotificationBroadcastReceiver::class.java) intent.action = actionIds.dismissRoom - intent.data = createIgnoredUri("deleteRoom?${sessionId.value}&${roomId.value}") - intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId) - intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId) + intent.data = createIgnoredUri("deleteRoom/${sessionId.value}/${roomId.value}") + intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId.value) + intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId.value) return PendingIntent.getBroadcast( context, clock.epochMillis().toInt(), diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/AcceptInvitationActionFactory.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/AcceptInvitationActionFactory.kt index 580c36c162..06ef22247e 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/AcceptInvitationActionFactory.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/AcceptInvitationActionFactory.kt @@ -38,11 +38,11 @@ class AcceptInvitationActionFactory @Inject constructor( ) { // offer to type a quick accept button fun create(inviteNotifiableEvent: InviteNotifiableEvent): NotificationCompat.Action { - val sessionId = inviteNotifiableEvent.sessionId - val roomId = inviteNotifiableEvent.roomId + val sessionId = inviteNotifiableEvent.sessionId.value + val roomId = inviteNotifiableEvent.roomId.value val intent = Intent(context, NotificationBroadcastReceiver::class.java) intent.action = actionIds.join - intent.data = createIgnoredUri("acceptInvite?${sessionId.value}&${roomId.value}") + intent.data = createIgnoredUri("acceptInvite/$sessionId/$roomId") intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId) intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId) val pendingIntent = PendingIntent.getBroadcast( diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/MarkAsReadActionFactory.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/MarkAsReadActionFactory.kt index 4a5e0aa7f3..0dcf4bb326 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/MarkAsReadActionFactory.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/MarkAsReadActionFactory.kt @@ -39,11 +39,11 @@ class MarkAsReadActionFactory @Inject constructor( ) { fun create(roomInfo: RoomEventGroupInfo): NotificationCompat.Action? { if (!NotificationConfig.supportMarkAsReadAction) return null - val sessionId = roomInfo.sessionId - val roomId = roomInfo.roomId + val sessionId = roomInfo.sessionId.value + val roomId = roomInfo.roomId.value val intent = Intent(context, NotificationBroadcastReceiver::class.java) intent.action = actionIds.markRoomRead - intent.data = createIgnoredUri("markRead?${sessionId.value}&$${roomId.value}") + intent.data = createIgnoredUri("markRead/$sessionId/$roomId") intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId) intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId) val pendingIntent = PendingIntent.getBroadcast( diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/QuickReplyActionFactory.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/QuickReplyActionFactory.kt index 4f454f2855..a42ba3c86e 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/QuickReplyActionFactory.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/QuickReplyActionFactory.kt @@ -78,11 +78,11 @@ class QuickReplyActionFactory @Inject constructor( return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { val intent = Intent(context, NotificationBroadcastReceiver::class.java) intent.action = actionIds.smartReply - intent.data = createIgnoredUri("quickReply?${sessionId.value}&${roomId.value}" + threadId?.let { "&${it.value}" }.orEmpty()) - intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId) - intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId) + intent.data = createIgnoredUri("quickReply/${sessionId.value}/${roomId.value}" + threadId?.let { "/${it.value}" }.orEmpty()) + intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId.value) + intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId.value) threadId?.let { - intent.putExtra(NotificationBroadcastReceiver.KEY_THREAD_ID, it) + intent.putExtra(NotificationBroadcastReceiver.KEY_THREAD_ID, it.value) } PendingIntent.getBroadcast( diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/RejectInvitationActionFactory.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/RejectInvitationActionFactory.kt index b30297295e..75e1cdaf99 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/RejectInvitationActionFactory.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/RejectInvitationActionFactory.kt @@ -37,11 +37,11 @@ class RejectInvitationActionFactory @Inject constructor( private val clock: SystemClock, ) { fun create(inviteNotifiableEvent: InviteNotifiableEvent): NotificationCompat.Action? { - val sessionId = inviteNotifiableEvent.sessionId - val roomId = inviteNotifiableEvent.roomId + val sessionId = inviteNotifiableEvent.sessionId.value + val roomId = inviteNotifiableEvent.roomId.value val intent = Intent(context, NotificationBroadcastReceiver::class.java) intent.action = actionIds.reject - intent.data = createIgnoredUri("rejectInvite?${sessionId.value}&${roomId.value}") + intent.data = createIgnoredUri("rejectInvite/$sessionId/$roomId") intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId) intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId) val pendingIntent = PendingIntent.getBroadcast(