Introduce filterBySession() extension
This commit is contained in:
parent
a6f3a16d5f
commit
6d6cdfc55b
2 changed files with 8 additions and 1 deletions
|
|
@ -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.api.notifications.conversations.NotificationConversationService
|
||||||
import io.element.android.libraries.push.impl.intent.IntentProvider
|
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.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.SessionListener
|
||||||
import io.element.android.libraries.sessionstorage.api.observer.SessionObserver
|
import io.element.android.libraries.sessionstorage.api.observer.SessionObserver
|
||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
|
|
@ -182,7 +183,7 @@ class DefaultNotificationConversationService(
|
||||||
private fun onSessionLogOut(sessionId: SessionId) {
|
private fun onSessionLogOut(sessionId: SessionId) {
|
||||||
runCatchingExceptions {
|
runCatchingExceptions {
|
||||||
val shortcuts = ShortcutManagerCompat.getDynamicShortcuts(context)
|
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)
|
ShortcutManagerCompat.removeDynamicShortcuts(context, shortcutIdsToRemove)
|
||||||
|
|
||||||
if (isRequestPinShortcutSupported) {
|
if (isRequestPinShortcutSupported) {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,13 @@
|
||||||
|
|
||||||
package io.element.android.libraries.push.impl.notifications.shortcut
|
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.RoomId
|
||||||
import io.element.android.libraries.matrix.api.core.SessionId
|
import io.element.android.libraries.matrix.api.core.SessionId
|
||||||
|
|
||||||
internal fun createShortcutId(sessionId: SessionId, roomId: RoomId) = "$sessionId-$roomId"
|
internal fun createShortcutId(sessionId: SessionId, roomId: RoomId) = "$sessionId-$roomId"
|
||||||
|
|
||||||
|
internal fun Iterable<ShortcutInfoCompat>.filterBySession(sessionId: SessionId): Iterable<ShortcutInfoCompat> {
|
||||||
|
val prefix = "$sessionId-"
|
||||||
|
return filter { it.id.startsWith(prefix) }
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue