Fix biometric prompt auto open after lock #554

This commit is contained in:
J-Jamet
2020-05-20 15:19:10 +02:00
parent 03451d2a6e
commit 12669f7ea0
2 changed files with 21 additions and 4 deletions

View File

@@ -63,9 +63,7 @@ import com.kunzisoft.keepass.notifications.DatabaseTaskNotificationService.Compa
import com.kunzisoft.keepass.notifications.DatabaseTaskNotificationService.Companion.MASTER_PASSWORD_KEY
import com.kunzisoft.keepass.notifications.DatabaseTaskNotificationService.Companion.READ_ONLY_KEY
import com.kunzisoft.keepass.settings.PreferencesUtil
import com.kunzisoft.keepass.utils.FileDatabaseInfo
import com.kunzisoft.keepass.utils.MenuUtil
import com.kunzisoft.keepass.utils.UriUtil
import com.kunzisoft.keepass.utils.*
import com.kunzisoft.keepass.view.AdvancedUnlockInfoView
import com.kunzisoft.keepass.view.KeyFileSelectionView
import com.kunzisoft.keepass.view.asError
@@ -110,6 +108,8 @@ open class PasswordActivity : StylishActivity() {
private var mProgressDialogThread: ProgressDialogThread? = null
private var advancedUnlockedManager: AdvancedUnlockedManager? = null
private var mAllowAutoOpenBiometricPrompt: Boolean = true
private var mLockReceiver: LockReceiver? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -166,6 +166,11 @@ open class PasswordActivity : StylishActivity() {
mDatabaseKeyFileUri = UriUtil.parse(savedInstanceState.getString(KEY_KEYFILE))
}
mLockReceiver = LockReceiver {
mAllowAutoOpenBiometricPrompt = false
}
registerLockReceiver(mLockReceiver)
mProgressDialogThread = ProgressDialogThread(this).apply {
onActionFinish = { actionTask, result ->
when (actionTask) {
@@ -438,6 +443,7 @@ open class PasswordActivity : StylishActivity() {
}
})
}
advancedUnlockedManager?.isBiometricPromptAutoOpenEnable = mAllowAutoOpenBiometricPrompt
advancedUnlockedManager?.checkBiometricAvailability()
biometricInitialize = true
} else {
@@ -504,6 +510,8 @@ open class PasswordActivity : StylishActivity() {
advancedUnlockedManager = null
}
mAllowAutoOpenBiometricPrompt = true
super.onPause()
}
@@ -739,6 +747,11 @@ open class PasswordActivity : StylishActivity() {
}
}
override fun onDestroy() {
unregisterLockReceiver(mLockReceiver)
super.onDestroy()
}
companion object {
private val TAG = PasswordActivity::class.java.name

View File

@@ -52,7 +52,11 @@ class AdvancedUnlockedManager(var context: FragmentActivity,
private var biometricUnlockDatabaseHelper: BiometricUnlockDatabaseHelper? = null
private var biometricMode: Mode = Mode.UNAVAILABLE
private var isBiometricPromptAutoOpenEnable = PreferencesUtil.isBiometricPromptAutoOpenEnable(context)
private var biometricPromptAutoOpenPreference = PreferencesUtil.isBiometricPromptAutoOpenEnable(context)
var isBiometricPromptAutoOpenEnable: Boolean = true
get() {
return field && biometricPromptAutoOpenPreference
}
private var cipherDatabaseAction = CipherDatabaseAction.getInstance(context.applicationContext)