mirror of
https://github.com/M66B/FairEmail.git
synced 2026-03-31 22:26:06 +02:00
Handle fingerprint hardware errors
This commit is contained in:
@@ -2166,11 +2166,18 @@ public class Helper {
|
||||
|
||||
@Override
|
||||
public void onAuthenticationError(final int errorCode, @NonNull final CharSequence errString) {
|
||||
Log.w("Authenticate biometric error " + errorCode + ": " + errString);
|
||||
if (isCancelled(errorCode))
|
||||
Log.w("Authenticate biometric error " + errorCode + ": " + errString);
|
||||
else
|
||||
Log.e("Authenticate biometric error " + errorCode + ": " + errString);
|
||||
|
||||
if (errorCode != BiometricPrompt.ERROR_NEGATIVE_BUTTON &&
|
||||
errorCode != BiometricPrompt.ERROR_CANCELED &&
|
||||
errorCode != BiometricPrompt.ERROR_USER_CANCELED)
|
||||
if (isHardwareFailure(errorCode)) {
|
||||
prefs.edit().remove("biometrics").apply();
|
||||
ApplicationEx.getMainHandler().post(authenticated);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isCancelled(errorCode))
|
||||
ApplicationEx.getMainHandler().post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@@ -2196,6 +2203,19 @@ public class Helper {
|
||||
if (++fails >= 3)
|
||||
ApplicationEx.getMainHandler().post(cancelled);
|
||||
}
|
||||
|
||||
private boolean isCancelled(int errorCode) {
|
||||
return (errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON ||
|
||||
errorCode == BiometricPrompt.ERROR_CANCELED ||
|
||||
errorCode == BiometricPrompt.ERROR_USER_CANCELED);
|
||||
}
|
||||
|
||||
private boolean isHardwareFailure(int errorCode) {
|
||||
return (errorCode == BiometricPrompt.ERROR_HW_UNAVAILABLE ||
|
||||
errorCode == BiometricPrompt.ERROR_NO_BIOMETRICS ||
|
||||
errorCode == BiometricPrompt.ERROR_HW_NOT_PRESENT ||
|
||||
errorCode == BiometricPrompt.ERROR_NO_DEVICE_CREDENTIAL);
|
||||
}
|
||||
});
|
||||
|
||||
prompt.authenticate(info.build());
|
||||
|
||||
Reference in New Issue
Block a user