Skip to content

Commit bd6c097

Browse files
committed
Introduce filterBySession() extension
1 parent d851bf2 commit bd6c097

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/conversations/DefaultNotificationConversationService.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import io.element.android.libraries.push.api.notifications.NotificationBitmapLoa
3434
import io.element.android.libraries.push.api.notifications.conversations.NotificationConversationService
3535
import io.element.android.libraries.push.impl.intent.IntentProvider
3636
import io.element.android.libraries.push.impl.notifications.shortcut.createShortcutId
37+
import io.element.android.libraries.push.impl.notifications.shortcut.filterBySession
3738
import io.element.android.libraries.sessionstorage.api.observer.SessionListener
3839
import io.element.android.libraries.sessionstorage.api.observer.SessionObserver
3940
import io.element.android.libraries.ui.strings.CommonStrings
@@ -182,7 +183,7 @@ class DefaultNotificationConversationService(
182183
private fun onSessionLogOut(sessionId: SessionId) {
183184
runCatchingExceptions {
184185
val shortcuts = ShortcutManagerCompat.getDynamicShortcuts(context)
185-
val shortcutIdsToRemove = shortcuts.filter { it.id.startsWith(sessionId.value) }.map { it.id }
186+
val shortcutIdsToRemove = shortcuts.filterBySession(sessionId).map { it.id }
186187
ShortcutManagerCompat.removeDynamicShortcuts(context, shortcutIdsToRemove)
187188

188189
if (isRequestPinShortcutSupported) {

libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/shortcut/Utils.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@
77

88
package io.element.android.libraries.push.impl.notifications.shortcut
99

10+
import androidx.core.content.pm.ShortcutInfoCompat
1011
import io.element.android.libraries.matrix.api.core.RoomId
1112
import io.element.android.libraries.matrix.api.core.SessionId
1213

1314
internal fun createShortcutId(sessionId: SessionId, roomId: RoomId) = "$sessionId-$roomId"
15+
16+
internal fun Iterable<ShortcutInfoCompat>.filterBySession(sessionId: SessionId): Iterable<ShortcutInfoCompat> {
17+
val prefix = "$sessionId-"
18+
return filter { it.id.startsWith(prefix) }
19+
}

0 commit comments

Comments
 (0)