During BiometricEnrollBase::onStop(), it judeges activity result and determine finishing self or not by a common rule. And it causes some problems. 1. It may override original setResult() which was set by its child activity. 2. If we change the judgmental rule in BiometricEnollBase, we need to manully test all override class cases to make sure everything works well. It makes us hard to change the criteria here. Move code in BiometricEnrollBase::onStop() to its extended class to have more flexiable. Bug: 197717071 Test: Run ROBOTEST for SetupFingerprintEnrollIntroductionTest SetupFingerprintEnrollFinishTest FingerprintEnrollEnrollingTest FingerprintEnrollFindSensorTest FingerprintEnrollIntroductionTest SetupFingerprintEnrollFindSensorTest Test: Manully test fingerprint/faceauth flow in settings or SUW Change-Id: I5d6c63cf537c0146bc03bd2b36ee3e1d68918a19
73 lines
2.3 KiB
Java
73 lines
2.3 KiB
Java
/*
|
|
* Copyright (C) 2018 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 android.app.settings.SettingsEnums;
|
|
import android.os.Bundle;
|
|
import android.view.View;
|
|
|
|
import com.android.settings.R;
|
|
import com.android.settings.biometrics.BiometricEnrollBase;
|
|
import com.android.settings.biometrics.BiometricUtils;
|
|
|
|
import com.google.android.setupcompat.template.FooterBarMixin;
|
|
import com.google.android.setupcompat.template.FooterButton;
|
|
|
|
/**
|
|
* Activity which concludes face enrollment.
|
|
*/
|
|
public class FaceEnrollFinish extends BiometricEnrollBase {
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.face_enroll_finish);
|
|
setHeaderText(R.string.security_settings_face_enroll_finish_title);
|
|
|
|
mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
|
|
mFooterBarMixin.setPrimaryButton(
|
|
new FooterButton.Builder(this)
|
|
.setText(R.string.security_settings_face_enroll_done)
|
|
.setListener(this::onNextButtonClick)
|
|
.setButtonType(FooterButton.ButtonType.NEXT)
|
|
.setTheme(R.style.SudGlifButton_Primary)
|
|
.build()
|
|
);
|
|
}
|
|
|
|
@Override
|
|
protected void onStop() {
|
|
if (!isChangingConfigurations() && shouldFinishWhenBackgrounded()
|
|
&& !BiometricUtils.isAnyMultiBiometricFlow(this)) {
|
|
setResult(RESULT_TIMEOUT);
|
|
finish();
|
|
}
|
|
super.onStop();
|
|
}
|
|
|
|
@Override
|
|
public int getMetricsCategory() {
|
|
return SettingsEnums.FACE_ENROLL_FINISHED;
|
|
}
|
|
|
|
@Override
|
|
public void onNextButtonClick(View view) {
|
|
setResult(RESULT_FINISHED);
|
|
finish();
|
|
}
|
|
}
|