Commit Graph

44 Commits

Author SHA1 Message Date
MiltonWu
f1bf44392a Scroll-down after click accessiblity button
On FaceEnrollEducation page, scroll-down when user click "Setup for
limited vision or head motion button"

Test: SettingsRoboTest FaceEnrollEducationTest
Bug: 309368020
Change-Id: Ifc07337dd8af6f67412de6e7503fc4bc221fb068
2023-11-06 17:40:03 +08:00
Chaohui Wang
2541381259 Fix references to resources for Settings
Bug: 293810334
Test: m Settings
Change-Id: Ie140278f492ef7e1c062ec1ecae2866c521a86aa
2023-08-08 01:56:05 +00:00
lbill
ee6366761b 3-1/ Impl FoldProvider.FoldCallback for Face enroll activities
Create a mechanism to allow OEM config posture guidance with
'config_face_enroll_guidance_page', and customize the config
'config_face_enroll_supported_posture' with standard postures
         0 : DEVICE_POSTURE_UNKNOWN
         1 : DEVICE_POSTURE_CLOSED
         2 : DEVICE_POSTURE_HALF_OPENED
         3 : DEVICE_POSTURE_OPENED
         4 : DEVICE_POSTURE_FLIPPED
For example, if we set 1 for the device, then device only
allow to enroll face in closed(folded) state, if device do
not in the allow state, we will prompt specific guidance
page activity defined in config_face_enroll_guidance_page.

At this stage , we only integrate 2 states OPENED/CLOSED through
ScreenSizeFoldProvider and register for onFoldUpdated() callback
- isFold(DEVICE_POSTURE_CLOSED): finish posture guidance
- !isFold(DEVICE_POSTURE_OPENED): launch posture guidance
- onActivityResult : reset mOnGuidanceShown false

1. Fix A11y lottie animation bug
2. Impl FoldProvider.FoldCallback
3. Register callback to ScreenSizeFoldProvider
4. Integrate back stack, skip, cancel events
   - Back key : RESULT_CANCELED
   - Skip btn : RESULT_SKIP
   - Posture changed : RESULT_FINISHED
5. Set single instance for relative activities
6. FaceEnrollFoldPage listen for onConfigurationChanged()
7. Add empty face_posture_guidance_lottie.json for overlay

Test: atest SettingsGoogleUnitTests
Test: m -j SettingsGoogleRoboTests RunSettingsGoogleRoboTests
Test: m RunSettingsRoboTests ROBOTEST_FILTER= \
      "com.android.settings.biometrics.face.FaceEnrollEducationTest"
Test: m RunSettingsRoboTests ROBOTEST_FILTER= \
      "com.android.settings.biometrics.face.FaceEnrollIntroductionTest"
Test: Manual launch security settings face enroll, unfold device
and observe posture guidance showing fullscreen on top
Test: Fold device ensure the posture guidance activity finish
Bug: 261141826
Fixes: 231908496

Change-Id: Ib9f43f82f7d19f3f187c2f6f8984e76cd843afbc
2023-01-06 19:54:03 +00:00
Milton Wu
da7f6fca7a Revert "Refactor BiometricEnrollBase::onStop()"
This reverts commit 6b6d8c0d6d.

Reason for revert: Should use shouldFinishWhenBackgrounded() to
control the behavior during onStop()

Bug: 197717071
Change-Id: I6aeacd5fb0d4400911a2e3d1567db660a0f1798a
2022-08-04 09:29:26 +00:00
Milton Wu
6b6d8c0d6d Refactor BiometricEnrollBase::onStop()
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
2022-07-28 10:29:08 +00:00
Joshua McCloskey
10d0cd52d6 Modified Fp -> Face setup flow
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
2022-04-21 03:59:39 +00: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
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
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
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
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
Curtis Belmonte
adf0cabe0a Fix crash due to traffic light face Lottie animation
Load the animation asset only if enabled in the resource config, to
avoid crashing on unsupported device configurations.

Test: Manual

Fixes: 189290180
Change-Id: Iae46c735277777705c1d6f4595b557e4b0b1aef7
2021-05-26 16:11:56 -07:00
Curtis Belmonte
a543067ed9 Use Lottie animation for traffic light face education
Test: Manual

Bug: 182716681
Change-Id: Ia4c9dea5c900c71ec7eca7946cf090fd02b436e2
2021-05-24 14:47:19 -07:00
Curtis Belmonte
47d74ccfd7 Update Face Unlock strings to the latest versions
Makes the following changes to strings related to Face Unlock:
- Standardize capitalization of "Face Unlock"
- Use latest versions of traffic light face enroll strings
- Use latest versions of combined biometrics settings strings
- Set SUW description strings programmatically instead of in XML

Test: Manually tested Face Unlock traffic light and grid UIs

Bug: 183649070
Change-Id: Ie67978ae2630493a5b03b00c3f8a639066ab8f3a
2021-05-21 13:11:52 -07:00
Kevin Chyn
e91e39b604 Update revokeChallenge together with frameworks/base
Bug: 181977689
Test: Inspect logs
Change-Id: I588ec46896d57d89489f78505a6f2c932462b2d2
2021-03-09 16:25:28 -08: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
243aa8e2e0 Add face enroll accessibility dialog
When accessibility services such as talkback are enabled, and the
user tries to start the non-accessibility enrollment flow, present
a confirmation dialog.

Fixes: 152633740
Test: Enable talkback, start enrollment
      1) Accessibility flow --> no dialog, as expected
      2) Non-accessibility flow --> new dialog shown
Test: No talkback, start enrollment. No dialog shown in either case
Change-Id: I0cd07a9d0012f6c9bea36e74365a6707755d3ab7
2020-07-16 16:33:16 -07: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
1ae8beab06 Remove delay from enroll start button
Fixes: 139554930

Test: manual, button no longer delayed
Change-Id: I365308c2a00c122b80f70c904d11bb4a5d6cf404
2019-08-17 04:51:23 +00:00
joshmccloskey
fae3193539 Add extra check for accessibility flow.
Bug: 138197084
Test: Verified other accessibility features like Live Transcribe does
not bring the user to the accessibility flow.
Test: Verified that the Sound Amplifier does not bring the user to
the accessibility flow.

Change-Id: I5131d74926c0b01c565da280c55afe0080855688
2019-07-23 19:13:08 +00:00
joshmccloskey
97a95798ac Diversity extra no longer gets overwritten.
Test: Manual.
Fixes: 136963876
Change-Id: Ia62e7ac1ff942fa078a2fd5f1d7efc339132aaa3
2019-07-09 18:59:20 +00:00
Kevin Chyn
92d2aae337 Do not allow toggle to be clickable/focusable
The entire preference is already clickable/focusable. Also, changed it so that
the entire preferenceview is clickable/focusable in non-accessibility mode as well
to better match Settings UX.

Also, no need to setClickable, since it is already by default

Fixes: 130398575

Test: With and without accessibility turned on, toggle works
Test: With accessibility turned on, toggle no longer takes a separate
      focus in addition to the preference

Change-Id: Iaff05cdf350f8d4f4c0f53b539770a7ad1f7d8ad
2019-06-17 13:15:21 -07:00
Kevin Chyn
e9d50cd91b Call finish() when enrollment loses focus
Bug: 134971919

Test: Entering keyguard on any enrollment screen finishes enrollment now
Test: Going back/forward works

Change-Id: I2c80a5586c10fa3feb780a5eadfe203abed52dea
2019-06-12 11:05:47 -07:00
TreeHugger Robot
a854373bee Merge "Increased toggling area" into qt-r1-dev 2019-06-12 05:40:53 +00:00
joshmccloskey
c2cb46782c Increased toggling area
Test: Tapping the whole area will now toggle the switch. Note that
it is no longer possible to individually select the title and subtitle during
talkback, but you can select them as a group.
Test: Verified that without talkback the user must actually press
switch.
Fixes: 130398575

Change-Id: I369637f23e41ac6dc4333293b95a5ccae259ee1f
2019-06-12 02:57:17 +00:00
Kevin Chyn
c976efa3e6 Do not stay on education page if user has enrolled max templates
Fixes: 134769754

Test: Enroll max templates, go back, intro screen is seen instead
Change-Id: I4a5f8d71abff88688f7c77860bb44caa95d17d61
2019-06-07 12:41:05 -07:00
Joshua Mccloskey
d9db8cb608 Merge "Added different button for non SUW enrollment" into qt-r1-dev 2019-05-24 02:36:54 +00:00
joshmccloskey
cf8e9af588 Added different button for non SUW enrollment
Bug: 133416320
Test: Manual.
Change-Id: I7087d5d4aa8f41e8d357f6fb41774d1bc62c17d9
2019-05-23 13:19:00 -07:00
joshmccloskey
f98f6bacf8 Reduced time to 3 seconds.
Test: Manual.
Fixes: 133364918
Change-Id: I1ce38f49a64d7066117cf3f0008a4558983033f2
2019-05-22 19:35:48 -07:00
Kevin Chyn
ceb5aa4514 Update enroll to match mocks
Test: manual
Fixes: 132803438
Change-Id: I99a10e60833a31b71abf8fdbf7e426e9867a1cf5
2019-05-15 12:51:13 -07:00
Joshua Mccloskey
b2f19c55b5 Merge "Fixed talkback issue" into qt-dev 2019-05-14 19:09:37 +00:00
Kevin Chyn
9a252aa6b5 Merge "Update button string to "Start"" into qt-dev 2019-05-14 05:49:05 +00:00
joshmccloskey
a336a7c9f1 Fixed talkback issue
Test: It builds
Fixes: 132635400
Change-Id: I6b3d42561d848a2fdc0f366a96bf3284e5a757fe
2019-05-13 18:24:51 -07:00
Kevin Chyn
200dd1b8b3 Update button string to "Start"
Fixes: 132648319

Test: Builds
Change-Id: I05fa1a8d4d24d5ebef95588df64442718bf42c99
2019-05-13 18:23:22 -07:00
Kevin Chyn
cb38ac25a6 Merge "Revert "Corrected flow for accessibility."" into qt-dev 2019-05-14 00:48:49 +00:00
Kevin Chyn
0c37f27355 Revert "Corrected flow for accessibility."
This reverts commit b9cb83e4c6.

Reason for revert: broke build

Bug: 132635400

Change-Id: I15d4db26e3dd9172894354a39be13acc69642090
2019-05-14 00:47:08 +00:00
TreeHugger Robot
987c97c5e1 Merge "Reduced next button enabled delay to 8 seconds" into qt-dev 2019-05-14 00:46:25 +00:00
TreeHugger Robot
872dc6b4bd Merge "Corrected flow for accessibility." into qt-dev 2019-05-13 23:39:45 +00:00
Joshua Mccloskey
ff5fb3f2d4 Merge "Re-enable continue button for accessibility flow" into qt-dev 2019-05-13 22:05:36 +00:00
joshmccloskey
b9cb83e4c6 Corrected flow for accessibility.
Fixes: 132635400
Test: Manual.
Change-Id: Ied01b76d273b35e01f83a0a744ca2768d02380c5
2019-05-13 14:49:19 -07:00
joshmccloskey
51243e30b0 Reduced next button enabled delay to 8 seconds
Test: It builds.
Bug: 132636805
Change-Id: I6250f842e86c2ab809be803b599a994af6f25af3
2019-05-13 14:42:37 -07:00
Kevin Chyn
acb113b06a Propagate intent extras and finish activity properly
Bug: 131861430

Test: Builds
Change-Id: I7e831f74f1e55026b9343a4c4f47c9f5adc316e6
2019-05-10 18:58:13 -07:00
joshmccloskey
2e70232caf Re-enable continue button for accessibility flow
Test: Removed userdata, went to education flow, enabled accessibility
and confirmed the next button was re-enabled
Fixes: 132463368

Change-Id: I7cd78d606fa4c191b44199a0d143b56b33be4fa4
2019-05-10 17:59:25 -07:00
joshmccloskey
0458262fb3 Added Face Enroll Education Screen
Test: Builds
Bug: 131774352
Fixes: 131857742

Change-Id: Ib384b9efaf053b405ce3f55e449dd6abb9e75296
2019-05-08 19:15:50 +00:00