Do not show shortcuts if a PIN code is set
This commit is contained in:
parent
3a81c10062
commit
6f577d8232
1
changelog.d/4170.bugfix
Normal file
1
changelog.d/4170.bugfix
Normal file
@ -0,0 +1 @@
|
|||||||
|
Do not show shortcuts if a PIN code is set
|
@ -22,6 +22,7 @@ import android.os.Build
|
|||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import androidx.core.content.pm.ShortcutManagerCompat
|
import androidx.core.content.pm.ShortcutManagerCompat
|
||||||
import im.vector.app.core.di.ActiveSessionHolder
|
import im.vector.app.core.di.ActiveSessionHolder
|
||||||
|
import im.vector.app.features.pin.PinCodeStore
|
||||||
import io.reactivex.disposables.Disposable
|
import io.reactivex.disposables.Disposable
|
||||||
import io.reactivex.disposables.Disposables
|
import io.reactivex.disposables.Disposables
|
||||||
import org.matrix.android.sdk.api.session.room.RoomSortOrder
|
import org.matrix.android.sdk.api.session.room.RoomSortOrder
|
||||||
@ -35,7 +36,8 @@ import javax.inject.Inject
|
|||||||
class ShortcutsHandler @Inject constructor(
|
class ShortcutsHandler @Inject constructor(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
private val shortcutCreator: ShortcutCreator,
|
private val shortcutCreator: ShortcutCreator,
|
||||||
private val activeSessionHolder: ActiveSessionHolder
|
private val activeSessionHolder: ActiveSessionHolder,
|
||||||
|
private val pinCodeStore: PinCodeStore
|
||||||
) {
|
) {
|
||||||
|
|
||||||
fun observeRoomsAndBuildShortcuts(): Disposable {
|
fun observeRoomsAndBuildShortcuts(): Disposable {
|
||||||
@ -61,7 +63,6 @@ class ShortcutsHandler @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun removeDeadShortcut(roomIds: List<String>) {
|
private fun removeDeadShortcut(roomIds: List<String>) {
|
||||||
val deadShortcutIds = ShortcutManagerCompat.getShortcuts(context, ShortcutManagerCompat.FLAG_MATCH_DYNAMIC)
|
val deadShortcutIds = ShortcutManagerCompat.getShortcuts(context, ShortcutManagerCompat.FLAG_MATCH_DYNAMIC)
|
||||||
.map { it.id }
|
.map { it.id }
|
||||||
@ -79,12 +80,17 @@ class ShortcutsHandler @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createShortcuts(rooms: List<RoomSummary>) {
|
private fun createShortcuts(rooms: List<RoomSummary>) {
|
||||||
val shortcuts = rooms.mapIndexed { index, room ->
|
if (pinCodeStore.getEncodedPin() != null) {
|
||||||
shortcutCreator.create(room, index)
|
// No shortcut in this case (privacy)
|
||||||
}
|
ShortcutManagerCompat.removeAllDynamicShortcuts(context)
|
||||||
|
} else {
|
||||||
|
val shortcuts = rooms.mapIndexed { index, room ->
|
||||||
|
shortcutCreator.create(room, index)
|
||||||
|
}
|
||||||
|
|
||||||
shortcuts.forEach { shortcut ->
|
shortcuts.forEach { shortcut ->
|
||||||
ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)
|
ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user