From 2d398908de551be986ef57f355535849e50798bc Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Tue, 12 Aug 2025 11:11:12 +0200 Subject: [PATCH] fix: refresh when activate setting --- .../keepass/biometric/DeviceUnlockFragment.kt | 1 + .../keepass/viewmodels/DeviceUnlockViewModel.kt | 15 +++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/biometric/DeviceUnlockFragment.kt b/app/src/main/java/com/kunzisoft/keepass/biometric/DeviceUnlockFragment.kt index a97138f31..012de3a96 100644 --- a/app/src/main/java/com/kunzisoft/keepass/biometric/DeviceUnlockFragment.kt +++ b/app/src/main/java/com/kunzisoft/keepass/biometric/DeviceUnlockFragment.kt @@ -172,6 +172,7 @@ class DeviceUnlockFragment: Fragment() { override fun onResume() { super.onResume() + mDeviceUnlockViewModel.checkUnlockAvailability() keepConnection = false } diff --git a/app/src/main/java/com/kunzisoft/keepass/viewmodels/DeviceUnlockViewModel.kt b/app/src/main/java/com/kunzisoft/keepass/viewmodels/DeviceUnlockViewModel.kt index 7ab19f20e..2c07838e2 100644 --- a/app/src/main/java/com/kunzisoft/keepass/viewmodels/DeviceUnlockViewModel.kt +++ b/app/src/main/java/com/kunzisoft/keepass/viewmodels/DeviceUnlockViewModel.kt @@ -45,12 +45,11 @@ class DeviceUnlockViewModel(application: Application): AndroidViewModel(applicat } /** - * Check unlock availability and change the current mode depending of device's state + * Check unlock availability by verifying device settings and database mode */ - fun checkUnlockAvailability(databaseFileUri: Uri?) { - databaseUri = databaseFileUri + fun checkUnlockAvailability() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - cipherDatabaseAction.containsCipherDatabase(databaseFileUri) { containsCipherDatabase -> + cipherDatabaseAction.containsCipherDatabase(databaseUri) { containsCipherDatabase -> if (PreferencesUtil.isBiometricUnlockEnable(getApplication())) { // biometric not supported (by API level or hardware) so keep option hidden // or manually disable @@ -80,6 +79,14 @@ class DeviceUnlockViewModel(application: Application): AndroidViewModel(applicat } } + /** + * Check unlock availability and change the current mode depending of device's state + */ + fun checkUnlockAvailability(databaseFileUri: Uri?) { + databaseUri = databaseFileUri + checkUnlockAvailability() + } + private fun isModeChanging(newMode: DeviceUnlockMode): Boolean { return _uiState.value.deviceUnlockMode != newMode }