From 566a7a3031c80dd1ddf492fbba00702b5cf4203c Mon Sep 17 00:00:00 2001 From: Joshua McCloskey Date: Fri, 11 Nov 2022 00:03:34 +0000 Subject: [PATCH 1/3] Centered fingerprint icon Test: Verified icon was centered in the fingerprint enrollment finish page. Fixes: 258604191 Change-Id: I33f19731921ef39829a6bbbaa1d1b097b95d64d4 --- res/layout/sfps_enroll_finish_base.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/layout/sfps_enroll_finish_base.xml b/res/layout/sfps_enroll_finish_base.xml index 17733374550..f58b86cd012 100644 --- a/res/layout/sfps_enroll_finish_base.xml +++ b/res/layout/sfps_enroll_finish_base.xml @@ -45,7 +45,7 @@ android:layout_marginTop="24dp" android:paddingTop="0dp" android:paddingBottom="0dp" - android:gravity="center"> + android:layout_gravity="center"> Date: Wed, 2 Nov 2022 17:30:21 +0000 Subject: [PATCH 2/3] Fix the flicker of FingerprintSettings before FingerprintEnrollIntro. Change to launch FingerprintEnrollIntroductionInternal directly when no fingerprint enrolled and fingerprint is the only biometrics. This avoids the flicker of FingerPrintSettings before showing the enroll introduction. This partially reverts the change in ag/19732076. Bug: 256334588 Test: manual test following cases on fp-only devices, and enable don't keep activity and test them again. 1. fp enrollment on SUW 2. fp add another on SUW 3. add first fp on Security Settings 4. add another fp on Security Settings Test: atest FingerprintStatusUtilsTest BiometricsSafetySourceTest Change-Id: I057b00fbca6660012887ebedf4d65c2c3d35792b Merged-In: I057b00fbca6660012887ebedf4d65c2c3d35792b (cherry picked from commit 6bed01f3159115d158eaf264661721641ac33f7c) --- .../fingerprint/FingerprintStatusUtils.java | 4 +++- .../fingerprint/FingerprintStatusUtilsTest.java | 14 +++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java index 71cdcf73b84..18db774214c 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java @@ -78,7 +78,9 @@ public class FingerprintStatusUtils { * Returns the class name of the Settings page corresponding to fingerprint settings. */ public String getSettingsClassName() { - return FingerprintSettings.class.getName(); + return !hasEnrolled() && isAvailable() + ? FingerprintEnrollIntroductionInternal.class.getName() + : FingerprintSettings.class.getName(); } /** diff --git a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java index 69e5e2f485b..a5d74a03500 100644 --- a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java +++ b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java @@ -179,8 +179,20 @@ public class FingerprintStatusUtilsTest { } @Test - public void getSettingsClassName_whenNotEnrolled_returnsFingerprintSettings() { + public void getSettingsClassName_whenNotEnrolled_fingerprintOnly_returnsFingerprintEnrollInduction() { when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); + when(mFingerprintManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.isHardwareDetected()).thenReturn(false); + + assertThat(mFingerprintStatusUtils.getSettingsClassName()) + .isEqualTo(FingerprintEnrollIntroductionInternal.class.getName()); + } + + @Test + public void getSettingsClassName_whenNotEnrolled_fingerprintNotOnly_returnsFingerprintSettings() { + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); + when(mFingerprintManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.isHardwareDetected()).thenReturn(true); assertThat(mFingerprintStatusUtils.getSettingsClassName()) .isEqualTo(FingerprintSettings.class.getName()); From c10d8ca0458322f0e1066b6e33bff9eb38ad4196 Mon Sep 17 00:00:00 2001 From: Joshua McCloskey Date: Thu, 10 Nov 2022 18:47:01 +0000 Subject: [PATCH 3/3] Remove sidefps toggle from SUW. Test: Verified manully that the toggle is no longer present when enrolling sidefps. Fixes: 258687688 Change-Id: I0ea63a61908b45399ba09ff31fd8fe6a4aacfb41 Merged-In: I0ea63a61908b45399ba09ff31fd8fe6a4aacfb41 --- res/layout/sfps_enroll_finish_base.xml | 9 --- .../sfps_require_screen_on_to_auth_toggle.xml | 62 --------------- .../fingerprint/FingerprintEnrollFinish.java | 33 -------- ...ingerprintRequireScreenOnToAuthToggle.java | 77 ------------------- 4 files changed, 181 deletions(-) delete mode 100644 res/layout/sfps_require_screen_on_to_auth_toggle.xml delete mode 100644 src/com/android/settings/biometrics/fingerprint/FingerprintRequireScreenOnToAuthToggle.java diff --git a/res/layout/sfps_enroll_finish_base.xml b/res/layout/sfps_enroll_finish_base.xml index 17733374550..e7dbaba337a 100644 --- a/res/layout/sfps_enroll_finish_base.xml +++ b/res/layout/sfps_enroll_finish_base.xml @@ -30,15 +30,6 @@ android:clipToPadding="false" android:clipChildren="false"> - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java index 45063104134..d4b1eb0ba6b 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java @@ -25,7 +25,6 @@ import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.os.Bundle; import android.util.Log; import android.view.View; -import android.widget.CompoundButton; import androidx.annotation.VisibleForTesting; @@ -45,7 +44,6 @@ import java.util.List; public class FingerprintEnrollFinish extends BiometricEnrollBase { private static final String TAG = "FingerprintEnrollFinish"; - private static final String KEY_REQUIRE_SCREEN_ON_TO_AUTH = "require_screen_on_to_auth_toggle"; private static final String ACTION_FINGERPRINT_SETTINGS = "android.settings.FINGERPRINT_SETTINGS"; @VisibleForTesting @@ -54,15 +52,10 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase { private FingerprintManager mFingerprintManager; - private FingerprintSettingsRequireScreenOnToAuthPreferenceController - mRequireScreenOnToAuthPreferenceController; - private FingerprintRequireScreenOnToAuthToggle mRequireScreenOnToAuthToggle; private boolean mCanAssumeSfps; private boolean mIsAddAnotherOrFinish; - private CompoundButton.OnCheckedChangeListener mRequireScreenOnToAuthToggleListener; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -72,11 +65,6 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase { mCanAssumeSfps = props != null && props.size() == 1 && props.get(0).isAnySidefpsType(); if (mCanAssumeSfps) { setContentView(R.layout.sfps_enroll_finish); - mRequireScreenOnToAuthPreferenceController = - new FingerprintSettingsRequireScreenOnToAuthPreferenceController( - getApplicationContext(), - KEY_REQUIRE_SCREEN_ON_TO_AUTH - ); } else { setContentView(R.layout.fingerprint_enroll_finish); } @@ -104,20 +92,6 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase { .setTheme(R.style.SudGlifButton_Primary) .build() ); - - if (mCanAssumeSfps) { - mRequireScreenOnToAuthToggleListener = - (buttonView, isChecked) -> { - mRequireScreenOnToAuthPreferenceController.setChecked(isChecked); - }; - mRequireScreenOnToAuthToggle = findViewById(R.id.require_screen_on_to_auth_toggle); - mRequireScreenOnToAuthToggle.setChecked( - mRequireScreenOnToAuthPreferenceController.isChecked()); - mRequireScreenOnToAuthToggle.setListener(mRequireScreenOnToAuthToggleListener); - mRequireScreenOnToAuthToggle.setOnClickListener(v -> { - mRequireScreenOnToAuthToggle.getSwitch().toggle(); - }); - } } @Override @@ -131,13 +105,6 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase { @Override protected void onResume() { super.onResume(); - if (mCanAssumeSfps) { - mRequireScreenOnToAuthToggleListener.onCheckedChanged( - mRequireScreenOnToAuthToggle.getSwitch(), - mRequireScreenOnToAuthToggle.isChecked() - ); - } - FooterButton addButton = mFooterBarMixin.getSecondaryButton(); final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this); diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintRequireScreenOnToAuthToggle.java b/src/com/android/settings/biometrics/fingerprint/FingerprintRequireScreenOnToAuthToggle.java deleted file mode 100644 index f88c9aaec54..00000000000 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintRequireScreenOnToAuthToggle.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 2022 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.fingerprint; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.widget.CompoundButton; -import android.widget.LinearLayout; -import android.widget.Switch; - -import com.android.settings.R; - -/** - * A layout that contains a start-justified title, and an end-justified switch. - */ -public class FingerprintRequireScreenOnToAuthToggle extends LinearLayout { - private Switch mSwitch; - - public FingerprintRequireScreenOnToAuthToggle(Context context) { - this(context, null /* attrs */); - } - - public FingerprintRequireScreenOnToAuthToggle(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public FingerprintRequireScreenOnToAuthToggle( - Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - - LayoutInflater.from(context).inflate(R.layout.sfps_require_screen_on_to_auth_toggle, - this, true /* attachToRoot */); - - mSwitch = findViewById(R.id.toggle); - mSwitch.setClickable(true); - mSwitch.setFocusable(false); - } - - public boolean isChecked() { - return mSwitch.isChecked(); - } - - /** - * - * @param checked - */ - public void setChecked(boolean checked) { - mSwitch.setChecked(checked); - } - - /** - * - * @param listener - */ - public void setListener(CompoundButton.OnCheckedChangeListener listener) { - mSwitch.setOnCheckedChangeListener(listener); - } - - public Switch getSwitch() { - return mSwitch; - } -}