Adds an activity result extra during multi-biometric enroll that ensures fingerprint setup will not be repeated multiple times if explicitly finished or skipped by the user. Also updates various activities in the stack to ensure that they handle all possible result codes correctly and pass along result data. Test: Manually skip and complete at each stage of multi-biometric enroll Test: Manually test single-biometric enroll flows for SUW and Settings Fixes: 193601823 Change-Id: Ic5a8306068eb4c32009f146ad6fff824fde25a11
127 lines
3.5 KiB
Java
127 lines
3.5 KiB
Java
/*
|
|
* Copyright (C) 2021 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package com.android.settings.biometrics.face;
|
|
|
|
import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
|
|
|
|
import android.app.settings.SettingsEnums;
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.view.View;
|
|
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.StringRes;
|
|
|
|
import com.android.settings.R;
|
|
|
|
/**
|
|
* Displays parental consent information for face authentication.
|
|
*/
|
|
public class FaceEnrollParentalConsent extends FaceEnrollIntroduction {
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
|
|
setDescriptionText(R.string.security_settings_face_enroll_introduction_consent_message);
|
|
}
|
|
|
|
@Override
|
|
protected void onNextButtonClick(View view) {
|
|
onConsentResult(true /* granted */);
|
|
}
|
|
|
|
@Override
|
|
protected void onSkipButtonClick(View view) {
|
|
onConsentResult(false /* granted */);
|
|
}
|
|
|
|
@Override
|
|
protected void onEnrollmentSkipped(@Nullable Intent data) {
|
|
onConsentResult(false /* granted */);
|
|
}
|
|
|
|
@Override
|
|
protected void onFinishedEnrolling(@Nullable Intent data) {
|
|
onConsentResult(true /* granted */);
|
|
}
|
|
|
|
private void onConsentResult(boolean granted) {
|
|
final Intent result = new Intent();
|
|
result.putExtra(EXTRA_KEY_MODALITY, TYPE_FACE);
|
|
setResult(granted ? RESULT_CONSENT_GRANTED : RESULT_CONSENT_DENIED, result);
|
|
finish();
|
|
}
|
|
|
|
@Override
|
|
protected boolean onSetOrConfirmCredentials(@Nullable Intent data) {
|
|
// prevent challenge from being generated by default
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
protected boolean generateChallengeOnCreate() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
@StringRes
|
|
protected int getInfoMessageGlasses() {
|
|
return R.string.security_settings_face_enroll_introduction_info_consent_glasses;
|
|
}
|
|
|
|
@Override
|
|
@StringRes
|
|
protected int getInfoMessageLooking() {
|
|
return R.string.security_settings_face_enroll_introduction_info_consent_looking;
|
|
}
|
|
|
|
@Override
|
|
@StringRes
|
|
protected int getInfoMessageRequireEyes() {
|
|
return R.string.security_settings_face_enroll_introduction_info_consent_gaze;
|
|
}
|
|
|
|
@Override
|
|
@StringRes
|
|
protected int getHowMessage() {
|
|
return R.string.security_settings_face_enroll_introduction_how_consent_message;
|
|
}
|
|
|
|
@Override
|
|
@StringRes
|
|
protected int getInControlTitle() {
|
|
return R.string.security_settings_face_enroll_introduction_control_consent_title;
|
|
}
|
|
|
|
@Override
|
|
@StringRes
|
|
protected int getInControlMessage() {
|
|
return R.string.security_settings_face_enroll_introduction_control_consent_message;
|
|
}
|
|
|
|
@Override
|
|
protected int getHeaderResDefault() {
|
|
return R.string.security_settings_face_enroll_consent_introduction_title;
|
|
}
|
|
|
|
@Override
|
|
public int getMetricsCategory() {
|
|
return SettingsEnums.FACE_PARENTAL_CONSENT;
|
|
}
|
|
}
|