1. Accodring to settings & setupdesign lib theme architecture
Only force apply sytle SetupWizardPartnerResource for current
activity/contextThemeWrapper is sufficient, override GlifV3Theme
again will cause incorrect resource mapping of private attributes.
2. Set Theme_AlertDialog style for AlertDialog in for Material design
- FingerprintEnrollEnrolling
- FingerprintEnrollFindSensor
3. Add test for AlertDialog theme, and fix broken test cases
Fixes: 245684949
Bug: 249789759
Bug: 248994476
Test: manual in SUW `adb shell cmd uimode night yes` and check visual
Test: manual in SUW enrolling check timeout dialog apply theme
Test: manual in SUW enroll UDFPS tips lottie view showing expectedly
Test: manual in SUW enroll UDFPS landscape showing correct layout
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
SetupFingerprintEnrollFindSensorTest
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
FingerprintEnrollEnrollingTest
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
FingerprintEnrollFindSensorTest
Change-Id: I17cbf26e38318e6681ba124d23bf86317a0f1e1d
Moves DT->LT dynamic color mapping call to after animation asset is set
Test: (manual) In light mode, advance past fingerprint enrollment edu screen and hit back button, observe correct LT asset
Fixes: 246233066
Change-Id: I5425f57b151a6f586338497ee0e5bf247af55f6e
Updates SFPS enrollment education layout and adds new assets indicating
sensor location in each orientation. Also defines color codes and adds
LottieColorUtils to dynamically map LottieAnimationView colors from light/dark theme
Test: Observe correct assets during enrollment in all orientations
Fixes: 242074146
Fixes: 238596925
Change-Id: If3b7502350057cc9b04f12aa9a5b36be06958630
Reduces perception of long enrollment process by introducing new enrollment layout and stages for SFPS. Also adds user feedback via new animated assets with dynamic colors, and all associated strings and a11y labels.
Test: Observe new guided enrollment process on T6
Test: make RunSettingsRoboTests ROBOTEST_FILTER=FingerprintEnrollEnrollingTest
Fixes: 232024488
Fixes: 233091341
Fixes: 241165082
Fixes: 242218240
Fixes: 243813773
Change-Id: I1fa0b9349545586919eceeb9d05f365c2f2ec491
Merged-In: I1fa0b9349545586919eceeb9d05f365c2f2ec491
1. When user chooses "Add another" on latest fingerprint enroll page, we
shall bypass RESULT_CANCELED from FingerprintEnrollEnrolling. This is
because user has successfully enrolled a fingerprint before enter
FingerprintEnrollFinish page.
2. In FingerprintEnrollFindSensor
A. Do not call startLookingForFingerprint() if mNextClick is true
because it is wating the result back from
FingerprintEnrollEnrolling, and let onActivityResult() mehtod to
handle correct behavior.
B. Add tests for following cases
a. Sidecar existence
b. Activity recycled and recreate in order to get activity result.
Bug: 243701933
Bug: 243762418
Test: ROBOTEST for SetupFingerprintEnrollFindSensorTest,
FingerprintEnrollFindSensorTest, SetupFingerprintEnrollFinishTest
Test: Test scenarios w/ and w/o always_finish_activities
1. Enroll a fingerprint but cancel it during enrolling in SuW
2. Enroll a fingerprint in SuW
3. Add another fingerprint in SuW
4. Run "Add another" but cancel it during enrolling in SuW
5. W/o enrolled fingerprint, add first fingerprint in settings
6. W/o enrolled fingerprint, add first fingerprint but cancel it
during enrolling in settings
7. W/o enrolled fingerprint, add first fingerprint and choose "Add
another" in settings
8. W/o enrolled fingerprint, add first fingerprint and choose "Add
another" then cancel it during enrolling in settings
9. W/ 1 enrolled fingerprint, add fingerprint in settings
10. W/ 1 enrolled fingerprint, add fingerprint but cancel it during
enrolling in settings
11. W/ 1 enrolled fingerprint, add fingerprint and choose "Add
another" in settings
12. W/ 1 enrolled fingerprint, add fingerprint and choose "Add
another" then canel it during enrolling in settings
Change-Id: I03d8d8ebc39eb34f8fc28acb5cd267e37c7a0311
1. on udfps + faceunlock devices, fingerprint settings shall not be
launched if no fingerprint enrolled.
2. on udfps device, after first fingerprint enrollment successfully,
fingerprint settings shall be shown.
3. Update FingerprintEnrollFindSensorTest to support udfps cases.
Bug: 243701933
Bug: 243003012
Test: manully adding first fingerprint on udfps + faceunlock device
Test: manully suw on udfps + faceunlock device
Test: run robotest for FingerprintEnrollFindSensorTest
and SetupFingerprintEnrollFindSensorTest
Merged-In: I62d945f2c2e980edf2a885234e54acae109e7672
Change-Id: I62d945f2c2e980edf2a885234e54acae109e7672
(cherry picked from commit 936dd31312)
Change to use FingerprintSetting as base activity when use launch
"Fingerprint Unlock" from Settings -> Security. And then we can prevent
that necesssary pop-up activites become full-screen.
Bug: 243701933
Bug: 232874879
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
Test: robo test for SetupFingerprintEnrollFindSensorTest
SetupFingerprintEnrollFinishTest
FingerprintEnrollFindSensorTest FingerprintEnrollEnrollingTest
Merged-In: Ib1c2ef9f93fb910eed2930f871c0c69bdb94bcbd
Change-Id: Ib1c2ef9f93fb910eed2930f871c0c69bdb94bcbd
(cherry picked from commit 84b39c3ed0)
Test: Verified that Unicorn SUW flows can now
enroll a face.
Test: Verified normal SUW flow works as expected.
Fixes: 237088482
Fixes: 234663447
Change-Id: I9c4100f61b5e7d40fc9ed67c6918ec7bf31fc30a
Recreate animation on fingerprint setup page when screen orientation is
changed from 0 to 180, or 180 to 0.
Bug: 232187001
Test: Manually rotate screen for 4 orientation, and make sure animation
orientation is correct
Change-Id: I75687bc8500cf5a48be6da6ef4245b12b63e774e
Test: Skip FP, Enroll Face, hit back button, observe that you will go
back to Fingerprint enrollment.
Test: Verify that after completing a biometric enroll we no longer
show the introduction activity with a "Done" button.
Fixes: 229813512
Change-Id: Ie0d7ce5d5cef084b3614afce10e05dc72c86b492
Test: Verified that AIDL FP devices honor the maximum number
of fp's allowed according to the HAL.
Fixes: 223617233
Change-Id: Ia0c46647d77ce52d4fe95154eae8d8b656456f53
This reverts commit ba0a012b57.
Fix: 204719520
Test: Settings should not crash when entering fingerprint edu page
Change-Id: If79fc50bbd6b198e7fccc52fce66c27cf3761d6d
Bug: 197264655
Test: visual verify
1) Navigate to fingerprint unlock and start fingerprint enrolling flow
2) Observe the education page and see if the animation works
Change-Id: Id07ee17fac29f8f49babb137889e50514ec86326
Test: Tapping the find sensor animation in UDFPS enrollment now goes to
the next page.
Fixes: 199195946
Change-Id: I9d380927a9107ce3d6d90e07fb98e1928020dc8c
The landscape layout can be removed now, since for UDFPS,
we do not use this page for the "find sensor" functionality anymore.
Instead, we show the edu animation.
Bug: 187460696
Test: manual
Change-Id: Ic2e15ecf73c42b8a0cea4ea8996b1b7dd2f3b4f2
1) Update UDFPS FindSensor to more of an EDU flow
2) Update UDFPS enrolling page to announce strings properly
Bug: 187460696
Test: manual
Change-Id: I30a77bd6bba911afb82e158d5e9f35b644ec880d
Using the back buttons can cause a crash in at least two cases. Skipping
face enrollment and then starting/stopping any enrollment can lead to
an invalid token and failed HAT request. Backing out of the activity and
restarting it can also lead to using a stale token that fails.
Fix: 179336333
Test: manual on device
Change-Id: I0c1133e4c3d9c97997043ddc9374aa3cfc4f1c97
When a device stands for a while during the fingerprint enrollment, the
fingerprint icon will disappear without any warning message. This
change is trying to show a dialog to inform users.
Fixes: 180633056
Test: visual verified
1) Settings -> Security -> Fingerprint
2) Navigate to "Touch & hold the fingerprint icon" page
3) Let device stand for a while and see if there's a dialog shown
Change-Id: I69c8fb73f2a7406e4a379396e2624fb523e162a8
Bug: 181614043
Test: visual verified
1) Settings -> Security -> Fingerprint
2) Follow the setup flow to find sensor page and enrolling page
3) Rotate your device and see if fingerprint icon is overlapping with
the title.
Change-Id: Ia1202e9688f2472c8063287164f4fc8f479cdae9
SUW library can support landscape mode. It reuse the portrait layout to
render the screen for landscape. So we don't need to have a layout for
it. This change is to move the description to a subtitle and remove the
unused layout.
Bug: 179234361
Bug: 171294253
Bug: 179317709
Test: visual verified
Change-Id: Icfb3be799c1b4e190691731638aaa3467cadf624
Since the education page of UDFPS is different from the one for rear
fingerprint, it's necessary to create a new education page for UDFPS and
update the decription.
Bug: 177026524
Test: visual verified
Change-Id: I70eb80484cccfbb583c32dbaadbc6c2744b5db60
Test: Verified regular fingerprint enrollment correctly logged
enrollment.
Test: Verified that the find fingerprint sensor activity no longer
falsely reports a failed enrollment.
Bug: 175316123
Fingerprint enrollment shows a find sensor screen which makes a call to
FingerprintManager.enroll(), the purpose is to get the user to locate
the sensor. The consequence was that logging built into the framework
was incorrectly logging a failed enrollment after cancellation.
Change-Id: I4777613fe521f04cc97c471e0a1e85e5809d7f06
1) Adds a layout for multi-biometric selection in BiometricEnrollActivity
2) Adds widgets for checkboxes
3) Shows ConfirmLock*/ChooseLock* for multi-biometric devices in
BiometricEnrollActivity
4) finish()'s when loses foreground
5) Adds default string for ChooseLock* and multi-biometrics, e.g.
"Set up Password + Biometrics", as well as associated plumbing
to bring the user back to BiometricEnrollActivity once the
credential is enrolled
6) When max templates enrolled, checkbox becomes disabled and
description string is updated
Bug: 162341940
Bug: 152242790
Fixes: 161742393
No effect on existing devices with the following:
Test: adb shell am start -a android.settings.BIOMETRIC_ENROLL
Test: SUW
Test: make -j RunSettingsRoboTests
Exempt-From-Owner-Approval: Biometric-related change
to EncryptionInterstitial
Change-Id: I855460d50228ace24d4ec5fbe330f02ab406cc02
LockSettingsService returns a handle to the gatekeeper password
instead of the password itself now. As such, update areas of code
accordingly.
Bug: 161765592
Test: RunSettingsRoboTests
Run the following on face/fingerprint devices
Test: Remove credential
adb shell am start -a android.app.action.SET_NEW_PASSWORD
Set up credential + fingerprint
Test: Remove credential,
adb shell am start -a android.settings.FINGERPRINT_SETTINGS
This tests the ChooseLock* logic in FingerprintSettings
Test: Set up credential,
adb shell am start -a android.settings.FINGERPRINT_SETTINGS
This tests the ConfirmLock* logic in FingerprintSettings
Test: Remove device credential, enroll fingerprint/face. Succeeds.
This tests the ChooseLock* returning SP path from
BiometricEnrollIntro
Test: With credential and fingerprint/face enrolled, go to
fingerprint/face settings and enroll. This tests the
ConfirmLock* path in Fingerprint/FaceSettings
Test: Remove device credential, enroll credential-only, enroll
fingerprint/face separately. Succeeds. This tests the
ConfirmLock* returning SP path in BiometricEnrollIntro
Test: In SUW, set up credential, then biometric. This tests
the ChooseLock* path in SUW
Test: In SUW, set up credential, go back, then set up biometric.
This tests the ConfirmLock* path in SUW
Change-Id: Ibc71ec88f8192620d041bfd125f400371708b296
Test: make -j56 RunSettingsRoboTests
Face Tests:
Test: Open face settings, remove face, add face
Test: Open face settings, but cancel credential confirmation.
Face settings does not show up
Test: adb shell am start -a android.app.action.SET_NEW_PASSWORD
Able to enroll face
Fingerprint Tests:
Test: Open fingerprint settings, add button is shown
Test: Open fingerprint settings, but cancel credential confirmation.
Fingerprint settings does not show up
Test: adb shell am start -a android.app.action.SET_NEW_PASSWORD
Able to enroll fingerprint
Bug: 162533680
Change-Id: Ie448ed086e73b0b545bd3a2e62437c543f7aad6c
Biometric enrollment will not request a Gatekeeper HAT during
initial credential setup or credential confirmation anymore.
Instead, it is broken down into the following steps now.
Bug: 161765592
1) Request credential setup / confirmation to return a
Gatekeeper Password
2) Biometric enrollment will generate a challenge
3) Biometric enrollment will request LockSettingsService to
verify(GatekeeperPassword, challenge), and upon verification,
the Gatekeeper HAT will be returned.
Since both LockSettingsService and Biometric enroll/settings
make use of biometric challenges, this allows us to make the
challenge ownership/lifecycle clear (vs. previously, where
LockSettingsService has no idea who the challenge belongs to).
Exempt-From-Owner-Approval:For files not owned by our team,
(StorageWizard), this change is just a method rename
Test: RunSettingsRoboTests
Run the following on face/fingerprint devices
Test: Remove credential
adb shell am start -a android.app.action.SET_NEW_PASSWORD
Set up credential + fingerprint
Test: Remove credential,
adb shell am start -a android.settings.FINGERPRINT_SETTINGS
This tests the ChooseLock* logic in FingerprintSettings
Test: Set up credential,
adb shell am start -a android.settings.FINGERPRINT_SETTINGS
This tests the ConfirmLock* logic in FingerprintSettings
Test: Remove device credential, enroll fingerprint/face. Succeeds.
This tests the ChooseLock* returning SP path from
BiometricEnrollIntro
Test: With credential and fingerprint/face enrolled, go to
fingerprint/face settings and enroll. This tests the
ConfirmLock* path in Fingerprint/FaceSettings
Test: Remove device credential, enroll credential-only, enroll
fingerprint/face separately. Succeeds. This tests the
ConfirmLock* returning SP path in BiometricEnrollIntro
Test: In SUW, set up credential, then biometric. This tests
the ChooseLock* path in SUW
Test: In SUW, set up credential, go back, then set up biometric.
This tests the ConfirmLock* path in SUW
Change-Id: Idf6fcb43f7497323d089eb9c37125294e7a7f5dc
Fixes the following issues related to fingerprint/face in Setup Wizard:
- Ensures super.onStop() is called by all enrollment-related Activities
Test: Proceed through Setup Wizard on factory reset Pixel 3 XL
Before: Periodic crash dialogs and stuck on fingerprint enrollment
After: Able to proceed through wizard and enroll fingerprint normally
Bug: 147325159
Change-Id: I76eb8c944140aa68f78eaea3702f440102b779c6
Currently, there are some biometric security setting and enrollment
screens which remain open after the user has backgrounded them. This
means that they can later be resumed without requiring the user to
confirm their device credential as normal.
This commit fixes the issue in AOSP by adding logic to the affected
biometric enrollment/setting activities in to finish() with
RESULT_TIMEOUT in onStop(). We don't want to finish() these activities
prematurely if the user is currently in a wizard setup flow, however. In
that case, this commit ensures that the newly added logic will not run.
Test: Pixel 3 - Background at each step of fingerprint enroll => finish
Test: Pixel 3 - Rotate at each step of fingerprint enroll => no finish
Test: Pixel 3 - Proceed though fingerprint setup wizard => no change
Bug: 142544519
Change-Id: I8ec0fa1e30bafe097d9dc82991ff786ebf24844b
1. Change to FooterBarMixin
2. Move FooterButton to the same package with FooterBarMixin
Bug: 120805516
Test: RunSettingsRoboTests
Change-Id: Ic6937e3cbc515dd7bf877c9193932cd5800ac801
FotterButton constructor in setupcompat will be deprecated, change to
use builder.
Bug: 120805516
Test: RunSettingsRoboTests
Change-Id: Ic84b0c91205bf3c770bc658e8eaf2626e4d7bddd
Skip button is now shown when ChooseLock is launched by
BiometricEnroll, otherwise users are forced to use passwords
(maybe good thing?)
Bug: 111548033
Test: Pin/pattern/pass must be set/confirmed before enrollment
Test: Able to enroll FP in SUW and Settings
Change-Id: Ic4bbeb539e4bf01c1c402dec308943292b43406d
Having consistent import order will reduce chance of merge
conflict between internal and external master
Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b