Commit Graph

39 Commits

Author SHA1 Message Date
Mill Chen
dc4ec9bfca Update animation for fingerprint edu page
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
2021-10-26 15:16:50 +08:00
Joshua Mccloskey
8a52ec7153 Tap fp find sensor animation goes to next page.
Test: Tapping the find sensor animation in UDFPS enrollment now goes to
the next page.
Fixes: 199195946

Change-Id: I9d380927a9107ce3d6d90e07fb98e1928020dc8c
2021-10-14 14:56:26 -07:00
Kevin Chyn
1bad80b36b Use lottie animation for fingerprint edu
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
2021-05-26 14:49:51 -07:00
Kevin Chyn
c24caeb4f8 Merge changes I5989a67e,I30a77bd6 into sc-dev
* changes:
  Announce UDPFS enrollment percentage
  Update UDFPS fingerprint enrollment
2021-05-21 00:39:16 +00:00
Kevin Chyn
869e996874 Update UDFPS fingerprint enrollment
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
2021-05-20 11:12:37 -07:00
Kevin Chyn
bcc288e801 Merge changes I9dea35a7,Iddcc0a65 into sc-dev
* changes:
  Update UDFPS "find sensor" string for a11y
  Update a few more strings
2021-05-13 22:27:59 +00:00
Kevin Chyn
6a43df9855 Update UDFPS "find sensor" string for a11y
Bug: 187999176
Test: manual
Change-Id: I9dea35a70aba87f5f2cc94fc73e74a5a624019b9
2021-05-13 15:20:37 -07:00
Joe Bolinger
971f0f3c5a Add userId parameter to all uses of challenge in settings.
Bug: 184915229

Test: manually on device (as normal, extra user, & work profile)
Change-Id: Id509b5866d53525b38a5bb95bbbcc723d6651745
2021-05-10 18:26:57 -07:00
Joe Bolinger
43d978bd7b Fix back navigation in biometric enrollment.
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
2021-05-04 14:43:17 -07:00
Kevin Chyn
33ba245149 Cancel enrollment when back or negative buttons pressed
Fixes: 183671394
Test: Go through enrollment flow and test various buttons
Change-Id: I8d3939de42ecd0a889f0c6d3c94002199285ef8b
2021-05-03 21:46:25 +00:00
Mill Chen
4606a292ac Add an error dialog in FingerprintEnrollFindSensor
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
2021-03-30 21:49:11 +08:00
Mill Chen
474093e8cc Add a reverse landscape layout for UDFPS
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
2021-03-29 11:53:13 +08:00
Kevin Chyn
39b2fe8bd5 Update fingerprint revokeChallenge with frameworks/base
Bug: 181977689
Test: manual
Change-Id: I92e6dae58d67f1355c6d0ba3bbf95ff2ad5247ed
2021-03-09 18:12:54 -08:00
Mill Chen
f97df931df Update FingerprintEnrollFindSensor for landscape
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
2021-03-08 15:27:03 +08:00
Kevin Chyn
c01232b16b Update fingerprint enroll together with frameworks/base
Bug: 179447737
Test: Builds
Change-Id: Ifccb96dbf51e610fb9cd1b238a6ef62350fb1169
2021-02-06 16:57:48 -08:00
Mill Chen
057ce4055e Update FingerprintEnrollFindSensor for UDFPS
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
2021-01-20 00:01:35 +08:00
joshmccloskey
75587638ff Updated Fingerprint enrollment logging
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
2021-01-07 13:53:27 -08:00
Kevin Chyn
af7837f602 Update generateChallenge/revokeChallenge w/ frameworks/base
Bug: 171002801
Bug: 170517180
Test: Enroll on existing devices
Change-Id: I78530fde275c5ac924e50d77de43b90969d6eb5b
2020-10-15 18:41:47 -07:00
Kevin Chyn
87bb772e16 2/n: Add default implementation for multi-biometric enroll
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
2020-09-16 23:30:11 -07:00
Kevin Chyn
202494365c Update settings together with frameworks/base
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
2020-08-16 12:38:27 -07:00
Kevin Chyn
9ce9d3d539 Update biometric onChallengeGenerated with frameworks/base
Bug: 145978626
Test: Builds

Change-Id: If02497fa6462f1ff263aeb96cf0beed014fee328
2020-08-16 11:48:13 -07:00
Kevin Chyn
bee84e2daa Remove remainder of generateChallengeBlocking
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
2020-08-07 12:49:37 -07:00
Kevin Chyn
7b0867c6d3 4/n: Remove challenge from choose/confirm, use new path
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
2020-08-07 12:49:15 -07:00
Curtis Belmonte
aea1bdec2d Fix issues with SUW on fingerprint devices
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
2020-01-07 17:34:34 -08:00
Curtis Belmonte
4ac1d25c2a Finish biometric enroll screens when backgrounded
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
2020-01-02 11:06:29 -08:00
Kevin Chyn
0dfc2769cf Stay in face settings unless the user explicitly backs out
Bug: 130898604

Test: Builds
Change-Id: I7159c3a6259d298f78b8328b2c6974ba46fb56f9
2019-04-23 17:05:47 -07:00
pastychang
9bdb59a764 Rename ButtonFooterMixin to FooterBarMixin
1. Change to FooterBarMixin
2. Move FooterButton to the same package with FooterBarMixin

Bug: 120805516
Test: RunSettingsRoboTests
Change-Id: Ic6937e3cbc515dd7bf877c9193932cd5800ac801
2019-01-24 16:18:28 +08:00
Fan Zhang
31b210017b Migrate all MetricsProto enums to SettingsEnums
Bug: 122855168
Test: rebuild
Change-Id: I962d9a71179f86b7cae9dc5e9a00e0aa1557dc76
2019-01-17 14:55:42 -08:00
pastychang
79614823cb Rename prefix from suw to sud
Bug: 120805516
Test: RunSettingsRoboTests
Change-Id: I44a399b586671c100cb9d85c97effbfb1a379413
2019-01-04 10:46:20 +08:00
pastychang
908501e40f Apply FooterButton builder
FotterButton constructor in setupcompat will be deprecated, change to
use builder.

Bug: 120805516
Test: RunSettingsRoboTests
Change-Id: Ic84b0c91205bf3c770bc658e8eaf2626e4d7bddd
2018-12-26 14:56:44 +08:00
pastychang
1b1666855e Migrating to new footer button for fingerprint and face enrolling pages.
Bug: 120805516
Test: RunSettingsRoboTests
Change-Id: I89a5e3674b8ba9ec66945c03c9b783664eee214f
2018-12-19 23:24:48 +08:00
Kevin Chyn
69e8a089d7 Show Choose/ConfirmLock before showing BiometricEnrollIntroduction
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
2018-12-18 13:59:45 -08:00
Fan Zhang
23f8d59d02 Sort imports
Having consistent import order will reduce chance of merge
conflict between internal and external master

Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
2018-08-28 22:13:15 +00:00
Kevin Chyn
e9117d9b95 7/n: Add enrollment animation
Fixes: 112005540

Test: Tested with ag/4749121

Change-Id: I7d51187f7b8b7a6c2c34c984740b76bc9fd89262
2018-08-14 22:22:53 -07:00
Fan Zhang
1b7ab5b40d Fix a crash when trying to find fingerprint sensor
Change-Id: I5bd237fde6d08ace7f8910808a88ba7b62610cba
Fixes: 111443778
Test: manual
2018-07-13 13:32:57 -07:00
tmfang
27c84de325 Settings Fragment Migration (Build pass app)
This patch focused on fixing compile errors and some runtime errors.

Test: We can't test it now. But we will have an integration test later.
Bug: 110259478
Change-Id: I16c471ddcd0fa1460c665b7f74d86fcace5ee67b
2018-07-11 18:24:51 -07:00
Kevin Chyn
ea65b51a36 4/n: Add basic enrollment for Face
Bug: 110589286

Test: fingerprint enrolling still works
Test: enrollment flow with and without a pin set up still works properly
Test: enrollment continues when configuration changes, stops otherwise

Change-Id: I39f76c7f1a16e9533cef573f87cf4b81cb20cb18
2018-07-10 18:39:19 -07:00
Kevin Chyn
4882e875ae 1/n Start adding Face settings (base, intro)
This change refactors common biometric settings code as well to minimize
duplicated code in areas such as:
    Preference Controller
    EnrollBase
    EnrollIntro

This change also updates ChooseLock to have Face + Pin/Pattern/Pass

Bug: 110589286

Test: Fingerprint settings/enrollment still works
Test: make -j56 RunSettingsRoboTests
Change-Id: Ie35406a01b85617423beece42683ac086e9bc4a7
2018-06-29 18:19:34 -07:00
Kevin Chyn
871e55fc54 Move Fingerprint settings to biometrics/fingerprint
Bug: 110589286

Test: make -j56 RunSettingsRoboTests
Test: adb shell am start -a android.settings.FINGERPRINT_ENROLL still works
Test: adb shell am start -a android.settings.FINGERPRINT_SETUP still works
Change-Id: If33b557137cae7b57e4a0e906ee95032bc589436
2018-06-25 16:51:16 -07:00