diff --git a/app/build.gradle b/app/build.gradle index 3853b3670..f0ca14d2d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,9 +38,9 @@ android { } dependencies { - implementation 'com.google.android.material:material:1.0.0' - implementation 'androidx.biometric:biometric:1.0.0-alpha04' - implementation "androidx.media:media:1.1.0" + implementation 'com.google.android.material:material:1.2.1' + implementation 'androidx.biometric:biometric:1.0.1' + implementation "androidx.media:media:1.2.0" } task versionName { diff --git a/app/src/main/java/com/termux/api/FingerprintAPI.java b/app/src/main/java/com/termux/api/FingerprintAPI.java index f0bc6aef4..8b45e696b 100644 --- a/app/src/main/java/com/termux/api/FingerprintAPI.java +++ b/app/src/main/java/com/termux/api/FingerprintAPI.java @@ -12,8 +12,8 @@ import androidx.annotation.NonNull; import androidx.biometric.BiometricConstants; +import androidx.biometric.BiometricManager; import androidx.biometric.BiometricPrompt; -import androidx.core.hardware.fingerprint.FingerprintManagerCompat; import androidx.fragment.app.FragmentActivity; import com.termux.api.util.ResultReturner; @@ -71,7 +71,7 @@ static void onReceive(final Context context, final Intent intent) { resetFingerprintResult(); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { - FingerprintManagerCompat fingerprintManagerCompat = FingerprintManagerCompat.from(context); + BiometricManager fingerprintManagerCompat = BiometricManager.from(context); // make sure we have a valid fingerprint sensor before attempting to launch Fingerprint activity if (validateFingerprintSensor(context, fingerprintManagerCompat)) { Intent fingerprintIntent = new Intent(context, FingerprintActivity.class); @@ -120,16 +120,21 @@ public void writeJson(JsonWriter out) throws Exception { * Ensure that we have a fingerprint sensor and that the user has already enrolled fingerprints */ @TargetApi(Build.VERSION_CODES.M) - protected static boolean validateFingerprintSensor(Context context, FingerprintManagerCompat fingerprintManagerCompat) { + protected static boolean validateFingerprintSensor(Context context, BiometricManager biometricManager) { boolean result = true; - if (!fingerprintManagerCompat.isHardwareDetected()) { + if (biometricManager.canAuthenticate() == BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE) { Toast.makeText(context, "No fingerprint scanner found!", Toast.LENGTH_SHORT).show(); appendFingerprintError(ERROR_NO_HARDWARE); result = false; } + if (biometricManager.canAuthenticate() == BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE) { + Toast.makeText(context, "No fingerprint scanner available!", Toast.LENGTH_SHORT).show(); + appendFingerprintError(ERROR_NO_HARDWARE); + result = false; + } - if (!fingerprintManagerCompat.hasEnrolledFingerprints()) { + if (biometricManager.canAuthenticate() == BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED) { Toast.makeText(context, "No fingerprints enrolled", Toast.LENGTH_SHORT).show(); appendFingerprintError(ERROR_NO_ENROLLED_FINGERPRINTS); result = false; diff --git a/app/src/main/res/layout/activity_permission.xml b/app/src/main/res/layout/activity_permission.xml deleted file mode 100644 index d532cc300..000000000 --- a/app/src/main/res/layout/activity_permission.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - -