Browse Source

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

test/jme/compound-poc
Benoit Marty 1 year ago
parent
commit
aba39ef568
  1. 10
      libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/PendingIntentFactory.kt
  2. 6
      libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/AcceptInvitationActionFactory.kt
  3. 6
      libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/MarkAsReadActionFactory.kt
  4. 8
      libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/QuickReplyActionFactory.kt
  5. 6
      libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/action/RejectInvitationActionFactory.kt

10
libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/PendingIntentFactory.kt

@ -63,8 +63,8 @@ class PendingIntentFactory @Inject constructor( @@ -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( @@ -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(),

6
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( @@ -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(

6
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( @@ -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(

8
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( @@ -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(

6
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( @@ -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(

Loading…
Cancel
Save