From 17d7928cc9f4bfe5abd62de154fef63631644804 Mon Sep 17 00:00:00 2001 From: Emily Kager Date: Fri, 7 Feb 2020 18:24:44 +0100 Subject: [PATCH] For #7603 - Temporarily do not show biometric prompt for OnePlus devices --- .../mozilla/fenix/settings/LoginsFragment.kt | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/LoginsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/LoginsFragment.kt index 241ae7cc3..92799d5dd 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/LoginsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/LoginsFragment.kt @@ -140,15 +140,23 @@ class LoginsFragment : PreferenceFragmentCompat(), AccountObserver { override fun onAuthenticationProblems() = updateSyncPreferenceNeedsReauth() val isHardwareAvailable: Boolean by lazy { - if (Build.VERSION.SDK_INT >= M) { - context?.let { - val bm = BiometricManager.from(it) - val canAuthenticate = bm.canAuthenticate() - !(canAuthenticate == BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE || - canAuthenticate == BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE) - } ?: false - } else { - false + // Temporary fix for certain devices that can't use the current biometrics library + // https://github.com/mozilla-mobile/fenix/issues/7603 + when { + Build.MANUFACTURER.toLowerCase().contains("oneplus") -> { + false + } + Build.VERSION.SDK_INT >= M -> { + context?.let { + val bm = BiometricManager.from(it) + val canAuthenticate = bm.canAuthenticate() + !(canAuthenticate == BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE || + canAuthenticate == BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE) + } ?: false + } + else -> { + false + } } }