Fix issue with pendingintent data. (Simplier to use String that Serializable)

This commit is contained in:
Benoit Marty 2023-04-14 18:10:55 +02:00
parent 5f3d33ca72
commit 8a91d31c24
5 changed files with 18 additions and 18 deletions

View file

@ -63,8 +63,8 @@ class PendingIntentFactory @Inject constructor(
fun createDismissSummaryPendingIntent(sessionId: SessionId): PendingIntent { fun createDismissSummaryPendingIntent(sessionId: SessionId): PendingIntent {
val intent = Intent(context, NotificationBroadcastReceiver::class.java) val intent = Intent(context, NotificationBroadcastReceiver::class.java)
intent.action = actionIds.dismissSummary intent.action = actionIds.dismissSummary
intent.data = createIgnoredUri("deleteSummary?${sessionId.value}") intent.data = createIgnoredUri("deleteSummary/${sessionId.value}")
intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId) intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId.value)
return PendingIntent.getBroadcast( return PendingIntent.getBroadcast(
context, context,
0, 0,
@ -76,9 +76,9 @@ class PendingIntentFactory @Inject constructor(
fun createDismissRoomPendingIntent(sessionId: SessionId, roomId: RoomId): PendingIntent { fun createDismissRoomPendingIntent(sessionId: SessionId, roomId: RoomId): PendingIntent {
val intent = Intent(context, NotificationBroadcastReceiver::class.java) val intent = Intent(context, NotificationBroadcastReceiver::class.java)
intent.action = actionIds.dismissRoom intent.action = actionIds.dismissRoom
intent.data = createIgnoredUri("deleteRoom?${sessionId.value}&${roomId.value}") intent.data = createIgnoredUri("deleteRoom/${sessionId.value}/${roomId.value}")
intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId) intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId.value)
intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId) intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId.value)
return PendingIntent.getBroadcast( return PendingIntent.getBroadcast(
context, context,
clock.epochMillis().toInt(), clock.epochMillis().toInt(),

View file

@ -38,11 +38,11 @@ class AcceptInvitationActionFactory @Inject constructor(
) { ) {
// offer to type a quick accept button // offer to type a quick accept button
fun create(inviteNotifiableEvent: InviteNotifiableEvent): NotificationCompat.Action { fun create(inviteNotifiableEvent: InviteNotifiableEvent): NotificationCompat.Action {
val sessionId = inviteNotifiableEvent.sessionId val sessionId = inviteNotifiableEvent.sessionId.value
val roomId = inviteNotifiableEvent.roomId val roomId = inviteNotifiableEvent.roomId.value
val intent = Intent(context, NotificationBroadcastReceiver::class.java) val intent = Intent(context, NotificationBroadcastReceiver::class.java)
intent.action = actionIds.join 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_SESSION_ID, sessionId)
intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId) intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId)
val pendingIntent = PendingIntent.getBroadcast( val pendingIntent = PendingIntent.getBroadcast(

View file

@ -39,11 +39,11 @@ class MarkAsReadActionFactory @Inject constructor(
) { ) {
fun create(roomInfo: RoomEventGroupInfo): NotificationCompat.Action? { fun create(roomInfo: RoomEventGroupInfo): NotificationCompat.Action? {
if (!NotificationConfig.supportMarkAsReadAction) return null if (!NotificationConfig.supportMarkAsReadAction) return null
val sessionId = roomInfo.sessionId val sessionId = roomInfo.sessionId.value
val roomId = roomInfo.roomId val roomId = roomInfo.roomId.value
val intent = Intent(context, NotificationBroadcastReceiver::class.java) val intent = Intent(context, NotificationBroadcastReceiver::class.java)
intent.action = actionIds.markRoomRead 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_SESSION_ID, sessionId)
intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId) intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId)
val pendingIntent = PendingIntent.getBroadcast( val pendingIntent = PendingIntent.getBroadcast(

View file

@ -78,11 +78,11 @@ class QuickReplyActionFactory @Inject constructor(
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val intent = Intent(context, NotificationBroadcastReceiver::class.java) val intent = Intent(context, NotificationBroadcastReceiver::class.java)
intent.action = actionIds.smartReply intent.action = actionIds.smartReply
intent.data = createIgnoredUri("quickReply?${sessionId.value}&${roomId.value}" + threadId?.let { "&${it.value}" }.orEmpty()) intent.data = createIgnoredUri("quickReply/${sessionId.value}/${roomId.value}" + threadId?.let { "/${it.value}" }.orEmpty())
intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId) intent.putExtra(NotificationBroadcastReceiver.KEY_SESSION_ID, sessionId.value)
intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId) intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId.value)
threadId?.let { threadId?.let {
intent.putExtra(NotificationBroadcastReceiver.KEY_THREAD_ID, it) intent.putExtra(NotificationBroadcastReceiver.KEY_THREAD_ID, it.value)
} }
PendingIntent.getBroadcast( PendingIntent.getBroadcast(

View file

@ -37,11 +37,11 @@ class RejectInvitationActionFactory @Inject constructor(
private val clock: SystemClock, private val clock: SystemClock,
) { ) {
fun create(inviteNotifiableEvent: InviteNotifiableEvent): NotificationCompat.Action? { fun create(inviteNotifiableEvent: InviteNotifiableEvent): NotificationCompat.Action? {
val sessionId = inviteNotifiableEvent.sessionId val sessionId = inviteNotifiableEvent.sessionId.value
val roomId = inviteNotifiableEvent.roomId val roomId = inviteNotifiableEvent.roomId.value
val intent = Intent(context, NotificationBroadcastReceiver::class.java) val intent = Intent(context, NotificationBroadcastReceiver::class.java)
intent.action = actionIds.reject 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_SESSION_ID, sessionId)
intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId) intent.putExtra(NotificationBroadcastReceiver.KEY_ROOM_ID, roomId)
val pendingIntent = PendingIntent.getBroadcast( val pendingIntent = PendingIntent.getBroadcast(