Commit Graph

395 Commits

Author SHA1 Message Date
Joe Bolinger
c78af9a272 Merge "Refresh biometric preference controllers on lifecycle events." into sc-dev 2021-08-13 01:08:16 +00:00
Kevin Chyn
570540b15c Do not show work profile strings for parent-managed enrollment
Work profiles and parental management both utilize the
DevicePolicyManager KEYGUARD_DISABLE_* flags. This CL ensures that
work profile strings are only shown for work profiles, and not
parent-managed devices.

Bug: 196060286
Bug: 196443744
Test: Set up child account, then enroll from Settings > Security
Change-Id: Ib5ed1d63dd5d58ac64caf30010e340ac7784c38f
2021-08-12 15:56:38 -07:00
Kevin Chyn
715e337af8 Add debugReason to BiometricUtils#tryStartingNextBiometricEnroll
Bug: 196060286
Test: adb shell am start -a android.settings.BIOMETRIC_ENROLL
Change-Id: Ib157dd916b1cfd2238cf6844a970d70cbf56faa6
2021-08-11 16:35:35 -07:00
Joe Bolinger
9e9f1249d4 Refresh biometric preference controllers on lifecycle events.
Fix: 195961101
Test: make RunSettingsRoboTests
Test: manual (enroll via settings and verify preferences enabled after enrolling)

Change-Id: Ie50cd862a42c96eb95f2156a33f34748b2b8b50c
2021-08-10 13:29:05 -07:00
Curtis Belmonte
4cb6d12b55 Merge "Make face education handle timeout result correctly" into sc-dev 2021-08-10 00:06:17 +00:00
Curtis Belmonte
ea07bb8d2f Make face education handle timeout result correctly
Ensures that a result code of RESULT_TIMEOUT always causes the face
enroll education screen to finish and propagate the result.

Test: Lock and unlock screen at each stage of face enrollment

Fixes: 194857793
Change-Id: Ie4b09235f923c8a40de18878b0727f166112140f
2021-08-09 14:12:45 -07:00
Joe Bolinger
c11e01f39d Fix extra password confirm prompts during managed setup.
Managed accounts may set the pin/pattern before enrollment begins.

Fix: 191608999
Test: atest BiometricEnrollActivityTest
Change-Id: I4065989ecc26ce72ffd0e06e7c6e68029a11908f
2021-08-05 11:08:48 -07:00
Joe Bolinger
d5ea0ffe67 Skip enrollment when unicorn account is launched by setup wizard.
Bug: 194244555
Test: manual
Change-Id: Id310c5e4dec1b1c5262c9703259223ce21b1da61
2021-07-30 12:51:02 -07:00
Joe Bolinger
91d7545826 Limit biometric enrollments when Unicorn account is present.
This prevents biometric enrollment from happening after consent
has been obtained and is being managed by family link.

Note that this requires a corresponding change the setup wizard app
to work in most cases.

Bug: 193577587
Test: manual (enroll then relaunch SuW and repeat)
Change-Id: If260e49f38a141931d7f3362c1faf80ee7790232
2021-07-29 15:43:04 -07:00
Joe Bolinger
61d998406d Use RestrictedPreference for all biometric settings.
Fix hardcoded preference key in settings controller.

Fix: 194708564
Bug: 194246380
Test: manual
Test: make RunSettingsRoboTests
Change-Id: I86bdd40fd848c5ba2d39acfde4771f5969e640d1
2021-07-26 18:36:32 -07:00
Curtis Belmonte
43f2be2059 Use correct user ID for face bypass pref controller
Ensures that the lockscreen bypass preference toggle shown on the face
unlock settings screen always uses the correct user ID. This fixes an
issue where the preference toggle for a guest user would use the
primary user's setting when multiple biometrics are supported.

Test: Manual:
1. Turn on Settings > System > Multiple users > Use multiple users
2. Add a guest account and switch to it
3. Enroll a face for Face Unlock on the guest account
4. From the Face Unlock settings screen, toggle "Skip lock screen"
5. Ensure that face bypasses lock screen iff this toggle is on
6. Switch back to the owner account and repeat steps 3-5

Fixes: 193488905
Change-Id: I2da4ce466fe0446cccc9119c90bd322daf627339
2021-07-24 09:20:08 -07:00
Curtis Belmonte
0a8916a808 Move multi-biometric logic to base fp intro activity
Ensures that the relevant multi-biometric logic--specifically, logic to
ensure that fingerprint enroll is shown exactly once after face
enroll--is present in both the SUW and non-SUW versions of the
fingerprint enroll introduction activity. This fixes an issue where
fingerprint enroll would occur multiple times when triggering the
multi-biometric enroll flow outside of SUW (e.g. via an enroll intent
action).

Test: CTS-Verifier: Biometric Tests > 2a: Strong Biometrics + Crypto

Bug: 193601823
Change-Id: I17c09e9a72ced2f23b0b279ea51a6aa209668485
2021-07-20 13:32:13 -07:00
Curtis Belmonte
6850b70226 Merge "Ensure fingerprint setup is shown once after face" into sc-dev 2021-07-19 19:44:40 +00:00
Curtis Belmonte
c6ced3fb21 Fail fingerprint enroll with error if HAT is null
Fingerprint enroll expects a non-null HAT. If we don't have one, rather
than crashing or stalling out enrollment, fail fast with an error.

Test: Manual

Bug: 193811614
Change-Id: Ifb791e19430e33cb82566e4916ab1a7b997b32ff
2021-07-16 14:35:25 -07:00
Curtis Belmonte
b61478c30c Ensure fingerprint setup is shown once after face
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
2021-07-15 17:00:43 -07:00
TreeHugger Robot
cf1f67e54f Merge "Limit searchability of combined biometric Settings" into sc-dev 2021-07-15 19:21:56 +00:00
Curtis Belmonte
effa67a8bb Limit searchability of combined biometric Settings
Ensures that the combined biometric settings pages shown in Settings are
not indexed for search on devices without multiple biometric sensors.

Test: Manually tested on devices with and without multiple biometrics

Fixes: 193704179
Change-Id: I007b5d2a0191cb61454e5ae0f411d4c594536fc5
2021-07-15 10:51:35 -07:00
Curtis Belmonte
1b69dece94 Don't also skip fingerprint in SUW when skipping face
Ensures that each biometric enroll intro activity handles an activity
result of RESULT_SKIP by calling the appropriate skip handler, rather
than just finishing. This fixes an issue where skipping face setup from
some Setup Wizard states would skip fingerprint setup as well.

Test: Manually skipped face setup from each screen during SUW

Bug: 193367620
Change-Id: If9ef9f19f8e967093f17dde98093a506400d7c09
2021-07-15 09:24:23 -07:00
Curtis Belmonte
68c12f2e04 Add "eyes open" setting message to face enroll intro
Adds an additional message about the "Require eyes to be open" setting
for Face Unlock to the intro/consent screen of enrollment, gated by a
config flag.

Test: Manual

Bug: 192272785
Change-Id: Idcd2395a290b74f4578898fdfebd05b81cd74075
2021-07-12 17:05:45 -07:00
TreeHugger Robot
493db88bf4 Merge "Fix landscape to reverse landscape issue" into sc-dev 2021-07-02 23:49:36 +00:00
Mill Chen
7f2496219f Fix landscape to reverse landscape issue
Fingerprint enrollment page needs to display different types of layout
for both landscape mode and reverse landscape mode. However
onConfigurationChanged doesn't get called when landscape mode rotates to
reverse landscape mode directly, that causes it displays a wrong layout
in the both landscape and reverse landscape modes.

Trying to monitor rotation event and checking if the case that directly
turns landscape mode to reverse landscape mode happens, if so, reCreate
method will get called to re-lay out the page. There will be a flicker
problem happening in re-laying out the page but this solution still
works for users to have the correct layout.

Fix: 186372522
Test: manual test
1) Navigate to fingerprint enrollment page
2) Rotate the screen from landscape mode to reverse landscape mode
3) Observe the page and see if it has a correct layout

Change-Id: Ie94f43a6546f453c10ae9f1c3ba83e1178784950
2021-07-03 06:40:25 +08:00
TreeHugger Robot
59b82fad2f Merge "Only launchHandoffToParent in SUW" into sc-dev 2021-07-02 20:14:33 +00:00
Kevin Chyn
c702e1bfba Only launchHandoffToParent in SUW
Settings flow does not need to show this screen

Fixes: 192586840
Test: adb shell am start -a android.settings.BIOMETRIC_ENROLL --ez require_consent true --ez skip_return_to_parent <true/false>
Test: adb shell am start -a android.settings.BIOMETRIC_ENROLL --ez require_consent true
Test: atest com.android.settings.biometrics.ParentalConsentHelperTest

Change-Id: Ic2edbb5ec9693d05c89206d49249f59fd968aa2f
2021-07-02 12:04:06 -07:00
Joshua Mccloskey
f68524f421 Merge "Refactored bad_calibration string" into sc-dev 2021-07-02 14:14:09 +00:00
TreeHugger Robot
65c9b03fb5 Merge "Fix multiple biometrics enrollment flow" into sc-dev 2021-07-02 05:26:18 +00:00
Mill Chen
e24255fe7e Fix multiple biometrics enrollment flow
Suppose both face auth and fingerprint auth exist in a device, the setup
flow will skip fingerprint enrollment when a user skips to register
face data on the face enrollment education page. Updated the skip button
method and make the flow move on to fingerprint enrollment if a use
doesn't want to register face data.

Fix: 186084024
Test: manual verified
1) Reset device and start from SUW
2) Press skip button on the face unlock education page
3) The next flow should be fingerprint enrollment intro page

Change-Id: I037ae68f39f5fdbf62ea95b998621c7f7df31b43
2021-07-01 14:45:33 +08:00
Joe Bolinger
47e8ddbdb9 Prevent finishing early on single sensor devices.
Fixes regression from commit c358adad56.

Fix: 192420564
Fix: 188847063

Test: manual enroll face & fingerprint via setup wizard (on fp, face, & fp+face device variants)
Change-Id: If7027e4d0ddf9d73daf91f174f237e4eb1621ea7
2021-06-30 14:21:04 -07:00
Joe Bolinger
c17876365a Revert "Revert "Return enrollment consent status to caller.""
This reverts commit c358adad56.

Reason for revert: Applying original change with additional change for single sensor devices.

Bug: 192420564
Bug: 188847063

Test: manual enroll face & fingerprint via setup wizard (on fp, face, & fp+face device variants)

Change-Id: Idfaaa2b6f4611056f9999325bac8401e28a7510b
2021-06-30 14:16:56 -07:00
Joe Bolinger
a86c8be5fa Merge "Revert "Return enrollment consent status to caller."" into sc-dev 2021-06-30 20:10:58 +00:00
Joshua Mccloskey
b182a4fb5c Refactored bad_calibration string
Test: Manual
Bug: 192105305
Change-Id: I82b0965459537c940b269636b8277af89b5ad284
2021-06-30 09:16:20 -07:00
bsears
c358adad56 Revert "Return enrollment consent status to caller."
This reverts commit eb1dac69f0.

Reason for revert: Based on bisection, this CL is the root cause for bug 192420564, which breaks Setup Wizard.

Bug: 192420564
Change-Id: I8d9aee7fe2415e134fcc981b0548bd9ce300db55
2021-06-30 14:53:13 +00:00
TreeHugger Robot
ca61c3919e Merge "Fix buttons and icons for fingerprint enroll intro" into sc-dev 2021-06-29 22:20:03 +00:00
Curtis Belmonte
218187bcce Fix buttons and icons for fingerprint enroll intro
Updates the labels of buttons and the colors of icons shown on the
fingerprint enroll intro screen to be consistent with the face enroll
intro screen and match the latest mocks.

Note that this commit removes some unused strings but does not add any
new ones requiring l10n.

Test: Manually tested face enroll from Setup Wizard and Settings

Fixes: 192381823
Change-Id: Id991d4f29d6de82acd538f1853bc8a5e50cd2637
2021-06-29 14:05:27 -07:00
Jan Tomljanovic
2b8678c5d4 Merge "Enable controllers to use a custom key." into sc-dev 2021-06-29 16:02:55 +00:00
Joe Bolinger
eb1dac69f0 Return enrollment consent status to caller.
Bug: 188847063
Test: adb shell am start -a android.settings.BIOMETRIC_ENROLL --ez require_consent true
Change-Id: I3285b379e175539c37355c67749c3d900e6ac62b
2021-06-28 17:51:46 -07:00
Jan Tomljanovic
c6667337ca Enable controllers to use a custom key.
Test: atest SettingsUnitTests
Test: m -j45 RunSettingsRoboTests
Bug: 191763369
Change-Id: I48eea95613600580c80c8850f0a3fd543a7e0a43
2021-06-25 15:35:53 +01:00
Curtis Belmonte
147fa2f159 Merge "Fix face education UX for both grid and traffic light" into sc-dev 2021-06-24 00:57:31 +00:00
Curtis Belmonte
d3a07c29bf Fix face education UX for both grid and traffic light
Makes the following adjustments to the UI of the Face Unlock education
screen for both the grid and traffic light enrollment flows:
- Fixes issues with text being overlapped by illustrations
- Prevents views from moving vertically due to state changes
- Ensures no scroll is required for default locale and scaling
- Adjusts the color and content of the a11y setup toggle

Test: Manual:
1. Start grid-based face enrollment (e.g. from Settings > Security)
2. Proceed to "How to set up Face Unlock" screen
3. Tap "Setup for limited vision or head motion"
4. Toggle "Setup for limited vision or head motion" switch off and on
5. Repeat steps 1-4 for traffic light face enrollment

Fixes: 191105436
Fixes: 191317385
Change-Id: Ie80f5b3130b5b0aeceb889f53cc2dec8c7423e47
2021-06-23 16:14:40 -07:00
Joshua Mccloskey
be845d1541 Merge "Added fp_bad_calibration to fp enrollment." into sc-dev 2021-06-21 20:41:01 +00:00
Joe Bolinger
daeda0525b Merge changes from topic "unicorn-hand" into sc-dev
* changes:
  Add new enum for parental consent UI.
  Add handoff activity to parental consent flow.
2021-06-21 17:06:29 +00:00
TreeHugger Robot
b5b519dd85 Merge "Remove the duplicated skip lock screen setting" into sc-dev 2021-06-21 07:54:30 +00:00
Joe Bolinger
2976b9bc14 Add new enum for parental consent UI.
Bug: 188847063
Test: manual
Change-Id: I7b101f0d7cda415695ecdb7963a0e514c875b95c
2021-06-18 13:30:23 -07:00
Joshua Mccloskey
3bd11c302a Added fp_bad_calibration to fp enrollment.
Test: Verified error message shows during enrollment.
Bug: 189133688
Change-Id: Ib1b47f5fff16d801b88247cc01a32de88c2ecd66
2021-06-18 11:49:55 -07:00
Joe Bolinger
fb515ed608 Add handoff activity to parental consent flow.
Bug: 188847063
Test: manual
Change-Id: Ib6f38aae487a536fb8e85d608a22378a17c1bc64
2021-06-18 10:35:35 -07:00
Joe Bolinger
0fcac8bf0d Merge changes from topic "unicorn-1" into sc-dev
* changes:
  Update strings for parental consent flow in setup wizard.
  Add plumbing and placeholder screens for parental consent flow.
2021-06-18 16:28:27 +00:00
Joe Bolinger
4af5a3644d Update strings for parental consent flow in setup wizard.
Bug: 188847063
Test: manual
Change-Id: I044be874818f6563a47c3f7c8c5011b3cab31ae9
2021-06-17 14:53:56 -07:00
Kevin Chyn
678a57b0df Merge changes from topic "kchyn-unicorn4a" into sc-dev
* changes:
  Show biometric-specific dialog when appropriate
  Add biometric strings to DeviceAdminStringProviderImpl
2021-06-17 01:27:00 +00:00
Joe Bolinger
a8808f7368 Add plumbing and placeholder screens for parental consent flow.
Bug: 188847063
Test: adb shell am start -a android.settings.BIOMETRIC_ENROLL --ez require_consent true
Test: atest com.android.settings.biometrics.ParentalConsentHelperTest
Change-Id: Ie136036d5f550775fd0b021979581a5d222f1b68
2021-06-16 09:58:19 -07:00
Kevin Chyn
826df7ae78 Merge "Move testAlwaysRequireConsent to frameworks/base" into sc-dev 2021-06-16 07:55:01 +00:00
Kevin Chyn
44a0ddaa4c Merge "Update to use ParentalControlsUtilsInternal for common logic" into sc-dev 2021-06-16 06:13:17 +00:00