From 6f577d823281ee7e4edc9ab28df69727cc6e53bf Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 27 Oct 2021 15:24:24 +0200 Subject: [PATCH] Do not show shortcuts if a PIN code is set --- changelog.d/4170.bugfix | 1 + .../app/features/home/ShortcutsHandler.kt | 20 ++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 changelog.d/4170.bugfix diff --git a/changelog.d/4170.bugfix b/changelog.d/4170.bugfix new file mode 100644 index 0000000000..3c1cc4361f --- /dev/null +++ b/changelog.d/4170.bugfix @@ -0,0 +1 @@ +Do not show shortcuts if a PIN code is set \ No newline at end of file diff --git a/vector/src/main/java/im/vector/app/features/home/ShortcutsHandler.kt b/vector/src/main/java/im/vector/app/features/home/ShortcutsHandler.kt index d0f805c75a..005ca30845 100644 --- a/vector/src/main/java/im/vector/app/features/home/ShortcutsHandler.kt +++ b/vector/src/main/java/im/vector/app/features/home/ShortcutsHandler.kt @@ -22,6 +22,7 @@ import android.os.Build import androidx.core.content.getSystemService import androidx.core.content.pm.ShortcutManagerCompat import im.vector.app.core.di.ActiveSessionHolder +import im.vector.app.features.pin.PinCodeStore import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposables import org.matrix.android.sdk.api.session.room.RoomSortOrder @@ -35,7 +36,8 @@ import javax.inject.Inject class ShortcutsHandler @Inject constructor( private val context: Context, private val shortcutCreator: ShortcutCreator, - private val activeSessionHolder: ActiveSessionHolder + private val activeSessionHolder: ActiveSessionHolder, + private val pinCodeStore: PinCodeStore ) { fun observeRoomsAndBuildShortcuts(): Disposable { @@ -61,7 +63,6 @@ class ShortcutsHandler @Inject constructor( } } - private fun removeDeadShortcut(roomIds: List) { val deadShortcutIds = ShortcutManagerCompat.getShortcuts(context, ShortcutManagerCompat.FLAG_MATCH_DYNAMIC) .map { it.id } @@ -79,12 +80,17 @@ class ShortcutsHandler @Inject constructor( } private fun createShortcuts(rooms: List) { - val shortcuts = rooms.mapIndexed { index, room -> - shortcutCreator.create(room, index) - } + if (pinCodeStore.getEncodedPin() != null) { + // No shortcut in this case (privacy) + ShortcutManagerCompat.removeAllDynamicShortcuts(context) + } else { + val shortcuts = rooms.mapIndexed { index, room -> + shortcutCreator.create(room, index) + } - shortcuts.forEach { shortcut -> - ShortcutManagerCompat.pushDynamicShortcut(context, shortcut) + shortcuts.forEach { shortcut -> + ShortcutManagerCompat.pushDynamicShortcut(context, shortcut) + } } }