On FaceEnrollEducation page, scroll-down when user click "Setup for
limited vision or head motion button"
Test: SettingsRoboTest FaceEnrollEducationTest
Bug: 309368020
Change-Id: Ifc07337dd8af6f67412de6e7503fc4bc221fb068
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
This reverts commit 6b6d8c0d6d.
Reason for revert: Should use shouldFinishWhenBackgrounded() to
control the behavior during onStop()
Bug: 197717071
Change-Id: I6aeacd5fb0d4400911a2e3d1567db660a0f1798a
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
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
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
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
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
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
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
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
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
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
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
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
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
Bug: 134971919
Test: Entering keyguard on any enrollment screen finishes enrollment now
Test: Going back/forward works
Change-Id: I2c80a5586c10fa3feb780a5eadfe203abed52dea
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
Test: Removed userdata, went to education flow, enabled accessibility
and confirmed the next button was re-enabled
Fixes: 132463368
Change-Id: I7cd78d606fa4c191b44199a0d143b56b33be4fa4