Add mandatory biometric for exported enroll intents

Flag: android.hardware.biometrics.flags.mandatory_biometrics
Fixes: 358173662
Test: N/A
Change-Id: Ic67d42ba84220f4c18cf445ae75d4f7f8dfd1f39
This commit is contained in:
Diya Bera
2024-08-27 14:10:17 +00:00
parent e7c670ea27
commit b8ab650afe
4 changed files with 57 additions and 4 deletions

View File

@@ -19,6 +19,7 @@ package com.android.settings.biometrics;
import static android.provider.Settings.ACTION_BIOMETRIC_ENROLL;
import static android.provider.Settings.EXTRA_BIOMETRIC_AUTHENTICATORS_ALLOWED;
import static com.android.settings.biometrics.BiometricEnrollBase.BIOMETRIC_AUTH_REQUEST;
import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_CONSENT_DENIED;
import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_CONSENT_GRANTED;
@@ -51,6 +52,7 @@ import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.SetupWizardUtils;
import com.android.settings.Utils;
import com.android.settings.core.InstrumentedActivity;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockGeneric;
@@ -442,6 +444,16 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
if (!mParentalConsentHelper.launchNext(this, REQUEST_CHOOSE_OPTIONS)) {
Log.e(TAG, "Nothing to prompt for consent (no modalities enabled)!");
finish();
} else {
final Utils.BiometricStatus biometricStatus =
Utils.requestBiometricAuthenticationForMandatoryBiometrics(this,
false /* biometricsAuthenticationRequested */, mUserId);
if (biometricStatus == Utils.BiometricStatus.OK) {
Utils.launchBiometricPromptForMandatoryBiometrics(this,
BIOMETRIC_AUTH_REQUEST, mUserId, true /* hideBackground */);
} else if (biometricStatus != Utils.BiometricStatus.NOT_ACTIVE) {
finish();
}
}
} else {
Log.d(TAG, "Unknown result for set/choose lock: " + resultCode);
@@ -473,6 +485,10 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
finish();
}
break;
case BIOMETRIC_AUTH_REQUEST:
if (resultCode != RESULT_OK) {
finish();
}
default:
Log.w(TAG, "Unknown consenting requestCode: " + requestCode + ", finishing");
finish();