Closed ebenwight closed 5 years ago
Thank you for the photos. I just completed the integration of the new biometric API on the develop branch. I created a new biometric workflow that should solve the problem. I can not test with your device but you will tell me if it works with the version 2.5.0.0beta23 of the application.
If you look at the code, I'm now using the biometric API of AndroidX that opens a biometric prompt. There is no more listener directly connected to the password edittext. The checkbox is used to initialize the recognition mode (store or retrieve) and the button is used to open the dialog box. I no longer store encrypted keys in preferences (code that came from KeePassDroid) but in a dedicated database table that uses Room. I created a manager (AdvancedUnlockedManager) which makes it easier to manage the biometric. BiometricUnlockDatabaseHelper allows to manage the generation of keys with the cipher initialized in AES and to store them in the Keystore of the device. Most errors are reported directly from the API or Keystore but I differentiate the type through an interface
interface BiometricUnlockErrorCallback {
fun onInvalidKeyException(e: Exception)
fun onBiometricException(e: Exception)
}
They are now reassembled in a dedicated textView.
I completely redid the fingerprint system, it should now work with the S10 +, tell me if it's ok with the version 2.5.0.0beta23?
When using fingerprint to authenticate with the password checkbox unchecked the application successfully opens the database, however the user is presented with the message stating that the fingerprint operation was canceled.
Also, the process for registering a fingerprint is not well documented in the app and it's two tends to generate an error message even when a fingerprint is successfully registered.
This affects: Version 2.5.0.0 beta 22 Build free, as downloaded from the play store
Apologies in advance for the admittedly atrocious formatting of my attached images.