diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/conversations/DefaultNotificationConversationService.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/conversations/DefaultNotificationConversationService.kt index 3796539f1a..24b69a2e58 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/conversations/DefaultNotificationConversationService.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/conversations/DefaultNotificationConversationService.kt @@ -34,6 +34,7 @@ import io.element.android.libraries.push.api.notifications.NotificationBitmapLoa import io.element.android.libraries.push.api.notifications.conversations.NotificationConversationService import io.element.android.libraries.push.impl.intent.IntentProvider import io.element.android.libraries.push.impl.notifications.shortcut.createShortcutId +import io.element.android.libraries.push.impl.notifications.shortcut.filterBySession import io.element.android.libraries.sessionstorage.api.observer.SessionListener import io.element.android.libraries.sessionstorage.api.observer.SessionObserver import io.element.android.libraries.ui.strings.CommonStrings @@ -182,7 +183,7 @@ class DefaultNotificationConversationService( private fun onSessionLogOut(sessionId: SessionId) { runCatchingExceptions { val shortcuts = ShortcutManagerCompat.getDynamicShortcuts(context) - val shortcutIdsToRemove = shortcuts.filter { it.id.startsWith(sessionId.value) }.map { it.id } + val shortcutIdsToRemove = shortcuts.filterBySession(sessionId).map { it.id } ShortcutManagerCompat.removeDynamicShortcuts(context, shortcutIdsToRemove) if (isRequestPinShortcutSupported) { diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/shortcut/Utils.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/shortcut/Utils.kt index e2a8b4a742..6176886dbc 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/shortcut/Utils.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/shortcut/Utils.kt @@ -7,7 +7,13 @@ package io.element.android.libraries.push.impl.notifications.shortcut +import androidx.core.content.pm.ShortcutInfoCompat import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId internal fun createShortcutId(sessionId: SessionId, roomId: RoomId) = "$sessionId-$roomId" + +internal fun Iterable.filterBySession(sessionId: SessionId): Iterable { + val prefix = "$sessionId-" + return filter { it.id.startsWith(prefix) } +}