fix: Auto prompt #2111

This commit is contained in:
J-Jamet
2025-08-14 17:02:40 +02:00
parent 9e1f6d29a5
commit 23bebf9597
8 changed files with 23 additions and 29 deletions

View File

@@ -24,9 +24,6 @@ import kotlinx.coroutines.flow.update
import javax.crypto.Cipher
class DeviceUnlockViewModel(application: Application): AndroidViewModel(application) {
var allowAutoOpenBiometricPrompt : Boolean = true
private var cipherDatabaseListener: CipherDatabaseAction.CipherDatabaseListener? = null
private var isConditionToStoreCredentialVerified: Boolean = false
@@ -306,7 +303,7 @@ class DeviceUnlockViewModel(application: Application): AndroidViewModel(applicat
}
fun promptShown() {
allowAutoOpenBiometricPrompt = false
isAutoOpenBiometricPromptAllowed = false
_uiState.update { currentState ->
currentState.copy(
cryptoPromptState = DeviceUnlockPromptMode.IDLE
@@ -348,7 +345,10 @@ class DeviceUnlockViewModel(application: Application): AndroidViewModel(applicat
cipherDatabase?.let {
try {
deviceUnlockManager?.initDecryptData(cipherDatabase.specParameters) { cryptoPrompt ->
onPromptRequested(cryptoPrompt, autoOpen = allowAutoOpenBiometricPrompt)
onPromptRequested(
cryptoPrompt,
autoOpen = isAutoOpenBiometricPromptAllowed
)
} ?: setException(Exception("AdvancedUnlockManager not initialized"))
} catch (e: Exception) {
setException(e)
@@ -417,6 +417,10 @@ class DeviceUnlockViewModel(application: Application): AndroidViewModel(applicat
deviceUnlockManager = null
}
}
companion object {
var isAutoOpenBiometricPromptAllowed = true
}
}
enum class DeviceUnlockPromptMode {