Active Unlock was guarded behind a feature flag for two main purposes.
1) To select the unlock intent or biometric failure layout. We've
settled on unlock intent, so we no longer need the biometric failure
codepath.
2) To guard the feature rollout. However, the additional platform guard
is not necessary, since this feature availability is still guarded
based on whether the secure settings are flipped to valid targets.
In order to keep the scope of this CL small, useBiometricFailureLayout
always returns false. Another CL will clean up all areas where it and
useUnlockIntentLayout are referenced.
Test: make RunSettingsRoboTests
Bug: b/280306741
Change-Id: I331afe9654b72249d461007c087e7f81783d7625
Bug: 280530120
Test: atest BiometricEnrollActivityTest
Test: tested manually by swiping back after enrollments
Change-Id: I305dd0904f86e2fc77f02047de8f3fc2c54621cb
landscape direction
Set Gliflayout content padding top to 0 to make it more space.
Bug: 279792554
Test: manually test with reproduciable steps:
1. Start setup until Fingerprint Unlock
2. Scroll down
3. Accept the introduction
4. Do as instructed
5. Flip the phone 180 degrees
Change-Id: I1875691cccfc75062c6d8c9517240569ae0a4261
Change the title of the preference to reflect that Active Unlock can
also be used to unlock the device.
Test: make RunSettingsRoboTests
Bug: b/271782800
Change-Id: Ie227e6dddfc024235fc3568899ef151f14f17696
Test: Manual (Start enrollment and don't complete it for 10 minutes;
observe the dialog; screenshot in bug)
Bug: 279648300
Change-Id: I88280e3a5d47735285d89174ad8bcb0da8d39282
Fix the view overlap on R4 device when setting up fingerprint in
device registration or the font size set to largest. Please see
ag/21478828 for reference.
Test: Manual -
Set up fingerprint in device registration and observe the views
don't overlap.
Set up fingerprint in Settings with font size set to largest and observe the views don't overlap.
Bug: 275119187
Change-Id: I82d2a3941211801e2c4615ba9ba5a917f3cd9ea1
Gate all Settings FingerprintUnlockCategory logic on isSfps() check to prevent NPE
Fixes: 279866500
Test: Enroll 2+ fingerprints on a non-sfps device, delete fingerprint,
observe no crash
Change-Id: I040d498426e0f8efb789875eedeb7bcf44436149
Fixes flicker of toggle by setting not visible when launching confirm
pin/pattern/password or enrollment prior to displaying
FingerprintSettings. Also cleans up FingerprintSettings and
security_settings_fingerprint.xml to better separate SFPS and non-SFPS
logic and rename methods for clarity
Test: (manual) navigate to sfps fp settings and observe toggle doesn’t flicker
Test: make RunSettingsRoboTests ROBOTEST_FILTER=FingerprintSettingsRequireScreenOnToAuthPreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=FingerprintSettingsUnlockCategoryControllerTest
Fixes: 263843645
Change-Id: Ide3a666fc31b926ac14645dc22d090f77d81f901
When fingerprint finish enrollment, user click Done
The flow would be:
-> wm_finish_activity
-> relaunch_resume_activity
-> wm_on_destroy_called
-> wm_on_create_called
-> wm_on_start_called
-> wm_on_activity_result_called
In U, we need to add NPE check when updateAddPreference()
earlier then addFingerprintItemPreferences()
-> wm_on_resume_called
Bug: 275519315
Test: manual enroll SFPS, in FingerprintEnrollEnrolling,
rotate device, then complete the enrollment
verify the flow never crash and user can see enrolled
fingerprint in FingerprintSettings
Change-Id: Ia262741aeceeb36eefd159ad2ca1c9fa0e061d54
When calling biometric enroll intent with biometric_strong, don't include
weak enrollments as options.
Bug: 265898482
Test: Tested manually by calling enrollment and verifying correct
options are shown
Test: atest BiometricEnrollActivityTest
Change-Id: I5fa650a593aee536955ae806f5963ffbdc135a2e
According to Activity#isInMultiWindowMode() API design,
When the Task is in fullscreen windowing mode, and the app is in
ActivityEmbedding split (two activities split left and right),
Activity.isInMultiWindowMode() == true.
With the reason, we should consider additional condidion for
foldable device in unfolded mode, while settings activities
config to embedded activity, we can't only count on
isInMultiWindowMode() for split-screen mode
Bug: 278176550
Bug: 276938441
Test: atest CombinedBiometricProfileSettingsTest
Test: atest FingerprintSettingsFragmentTest
Test: manaul go to split screen mode and try to enroll face
Test: manual unfold device and enroll finger or face
Change-Id: I02bd223f27889e74e67b73051531a5b4554f3de1
Context:
The legacy architecture UdfpsEnrollView was shown by SysUI
which has higher z-order that encounter lots of overlap issue.
Besides, IPC impact the latency of show/hide enroll view in
legacy architecture.
We used to upload ag/19699461 to cancel enrollment due to
above limitation.
With the new architecture ag/20582186 the UdfpsEnrollView
migrate to Settings and controlled by Settings process.
And ag/21149538 config SETTINGS_SHOW_UDFPS_ENROLL_IN_SETTINGS flag
to ture by default.
It's the time to improve the enroll UX by removing cancel
signle when onWindowFocusChanged() invoked.
Bug: 262680438
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER=FingerprintEnrollEnrollingTest
Test: manual Security Settings > Enroll fingerprint > enroll
Swipe Notify Shade , Heads-up, Power menu interrupt should
not stop the enroll flow.
Change-Id: I60d88d5edd80e6eed70e2fbf288357e949abcae3
When FaceSettings or FingerprintSettings are closed because of onStop(),
this information can't been passed back to previous Preference screen,
CombinedBiometricSettings, because handlePreferenceTreeClick() from
AbstractPreferenceController class only can launchActivity() throguh
preference's Context.
In order to recevice the activity result code from FaceSettings or
FingerprintSettings, add handleBiometricPreferenceTreeClick() method in
BiometricStatusPreferenceController. Then CombinedBiometricSettings uses
this method to show FaceSettings or FingerprintSettings through
launchActivityForResult().
Bug: 263057093
Test: atest BiometricNavigationUtilsTest
Test: Manually open camera through double-click power key on different
pages inside "Face & Fingerprint Unlock"
Change-Id: I99167739766ad5ea5f204b0f0543ba6ad18fac31
Update mIsFaceEnrollable and mIsFingerprintEnrollable in
BiometricEnrollActivity, and use them to determine the activity flow.
Bug: 270102158
Test: Manually test following cases
1. Complete fp and face in suw, then back to "Google Service" page
to make sure
a. Fingeprint introduction page isn't shown
b. Face introduction page isn't shown
c. ConfirmCredential page is shown
2. Complete fp in suw, then press back to previous page in Face
introduction page. And check Fingerpirnt isn't shown.
Change-Id: Ibc74128f6776128d8a0f4cab014b58057ac0f844
Test: atest CombinedBiometricProfileSettingsTest
Test: atest FingerprintSettingsFragmentTest
Test: manaul test- go to split screen mode and try to enroll
face
Bug: 276938441
Change-Id: I45e859b453700aa79f7774fb5deda81b1f30e5a5
Apply suw transition for fingerprint
1. Fix incorrect animation between Lock and Fingeprint in Suw
2. Fix incorrect animation between Fingeprint and FaceLock in Suw
3. Remove unnecessary overridePendingAnimation during Enorlling
4. Fix no animation in biometrics v2 because of incorrect calling order
in FragmentTransaction
Bug: 269063515
Test: Manually test transition animation for fingerprint enrollments
Change-Id: I12475dae5cb2905c81b24d3b57438b898afa1e27
In legacy flow FaceEnrollIntroduction check maxFacesEnrolled()
then update introduction description and prevent user go to next
enroll step, the CUJ was not good to user, instead bring user
to Face Settings and let user decide the next action(Delete face or
change config) is more make sense.
As any applications could broadcast intent(android.settings.FACE_ENROLL)
to bring FaceEnrollIntroduction up, we add a check in onCreate() and check
if device has been enrolled max face, launch FaceSettingsInternalActivity.
In addition, skip to register any posture change callback when
maxFacesEnrolled() during activity onStart().
Test: atest SettingsGoogleUnitTests
Test: m -j SettingsGoogleRoboTests RunSettingsGoogleRoboTests
Test: m RunSettingsRoboTests ROBOTEST_FILTER= \
"FaceEnrollIntroductionTest"
Test: m RunSettingsRoboTests ROBOTEST_FILTER= \
"FingerprintEnrollIntroductionTest"
Test: Manual enrolled face, unfold device, launch Tips Security page
and click "Set up Face Unlock", device launch Face Settings insteand of
posture guidance page.
Bug: 263830403
Change-Id: Ied8b92259810f954ce6b2daaa9b87fc996ad752a
Handle is returned when LSKF is set after successful verification.
It is used by SUW to add biometrics without asking for LSKF.
Bug: 272807192
Test: manual
Change-Id: I3fe6ed7fd6401421090ccd684509dfede9106076