Commit Graph

592 Commits

Author SHA1 Message Date
Milton Wu
5a47cf56ef Retry fingerprint or face unlock
When IllegalStateException happens during user enters `Fingerprint
Unlock` or `Face Unlock` page through `Face and Fingerprint Unlock`
page, show ConfirmLock for user to re-enter credential again.
If user fails to pass credential page, finish activity and back to
`Security` page.
If user success to pass credential page, enter `Fingerprint Unlock` or
`Face Unlock` page.

Test: Manully test timeout case on `Face and Fingerprint Unlock` page
Test: robotest for CombinedBiometricProfileSettingsTest
      FaceSettingsLockscreenBypassPreferenceControllerTest
Bug: 248165760
Change-Id: I3361c38d09d14461db8ecf2d89a34ba9604dc7e8
2022-10-19 23:55:39 +08:00
TreeHugger Robot
4fd86cc096 Merge "Do not show 2nd FingerprintErrorDialog" into tm-qpr-dev 2022-10-08 06:54:15 +00:00
TreeHugger Robot
d776340d33 Merge "overridePendingTransition in FingerprintSettings" into tm-qpr-dev 2022-10-08 06:53:35 +00:00
Milton Wu
328be58b48 Do not show 2nd FingerprintErrorDialog
When fingerprint enrollment is stopped because of credential timeout, it
pops a FingerprintErrorDialog, and this error dialog triggers
onWindowFocusChanged(), and the 2nd FingerprintErrorDialog is shown. To
fix this case, checking mIsCanceled flag do nothing  in
onWindowFocusChanged() method.

On the first dialog, the 'Try again' button relaunch activity with new
Intent, and it causes that activity result fails to pass back to caller.
To fix this bug, add FLAG_ACTIVITY_FORWARD_RESULT on new Intent to pass
result back.

Bug: 248165760
Test: Manually test credential timeout behavior and dialog buttons
Test: Manually test enrollment process has been cancelled for scenarios,
      like "Swipe down Notification Shade" and "Recents"
Test: robo test for FingerprintEnrollEnrollingTest
Change-Id: I4441ba026db9b594f1d6184280668a374126a2fb
2022-10-06 15:40:51 +08:00
Bill Lin
e5a4e38c8c Merge "Do not override SUW Glif theme when onApplyThemeResource() callback" into tm-qpr-dev 2022-09-30 23:54:31 +00:00
Grace Cheng
c6d9164dd4 Merge "Show lottie on non-default display density on SFPS" into tm-qpr-dev 2022-09-30 17:05:30 +00:00
Milton Wu
9f070ee9c1 overridePendingTransition in FingerprintSettings
When FingerprintSettings got correct activity result from ConifrmLock or
ChooseLock, and ready to add first fingerprint automatically, it shall
set sud_slide_next_in and sud_slide_next_in in
overridePendingTransition.

Bug: 249981049
Test: Manually credential in FingerprintSettings
Change-Id: If63441cf1a72c30d558e9f50a0aada36a08b211d
2022-09-30 13:43:35 +00:00
lbill
39175b2f87 Do not override SUW Glif theme when onApplyThemeResource() callback
1. Accodring to settings & setupdesign lib theme architecture
Only force apply sytle SetupWizardPartnerResource for current
activity/contextThemeWrapper is sufficient, override GlifV3Theme
again will cause incorrect resource mapping of private attributes.

2. Set Theme_AlertDialog style for AlertDialog in for Material design
- FingerprintEnrollEnrolling
- FingerprintEnrollFindSensor

3. Add test for AlertDialog theme, and fix broken test cases

Fixes: 245684949
Bug: 249789759
Bug: 248994476
Test: manual in SUW `adb shell cmd uimode night yes` and check visual
Test: manual in SUW enrolling check timeout dialog apply theme
Test: manual in SUW enroll UDFPS tips lottie view showing expectedly
Test: manual in SUW enroll UDFPS landscape showing correct layout
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      SetupFingerprintEnrollFindSensorTest
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      FingerprintEnrollEnrollingTest
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      FingerprintEnrollFindSensorTest
Change-Id: I17cbf26e38318e6681ba124d23bf86317a0f1e1d
2022-09-30 04:58:28 +00:00
Grace Cheng
6c72ef89b2 Show lottie on non-default display density on SFPS
Continue showing lottie when text size/display size is changed on SFPS, because unlike C10/P10, lottie will not overlap text on SFPS

Test: (manual) Change display size and text size to max, verify lottie is visible and does not overlap text
Fixes: 245029066
Change-Id: I041415abc21722052a9adbdc927847c42cd7619f
2022-09-29 19:42:59 +00:00
Grace Cheng
990af9ea7a Fixes DT enrollment asset showing in light mode
Moves DT->LT dynamic color mapping call to after animation asset is set

Test: (manual) In light mode, advance past fingerprint enrollment edu screen and hit back button, observe correct LT asset
Fixes: 246233066
Change-Id: I5425f57b151a6f586338497ee0e5bf247af55f6e
2022-09-29 17:47:33 +00:00
Grace Cheng
afa2bb1ea5 Merge "Adds null-check on finger animation in enrollment" into tm-qpr-dev 2022-09-22 20:28:33 +00:00
Grace Cheng
a738eba09f Adds null-check on finger animation in enrollment
Adds a null-check before setting the finger animation during SFPS
enrollment

Test: Change display size to highest setting (sets mShouldShowLottie to
false), and verify that user can enroll finger successfully
Fixes: 247044864

Change-Id: I3d7f0bd3078e3a4516f656a8ee897387b0ca15c6
2022-09-22 17:54:27 +00:00
Grace Cheng
108b73d972 Merge "Fix alignment of finger animation with progress bar" into tm-qpr-dev 2022-09-22 17:37:13 +00:00
Grace Cheng
76902f4b7c Fix alignment of finger animation with progress bar
Makes progress bar opaque and fixes color codes accordingly, and adjusts
values to shift finger animation and progress bar for proper alignment

Test: Enroll finger in light and dark theme and observe alignment of
finger with progress bar
Fixes: 245819077
Change-Id: I26bea8e1870f08b413a4ec2a9e6e83015facd004
Merged-In: I26bea8e1870f08b413a4ec2a9e6e83015facd004
2022-09-20 16:53:09 +00:00
lbill
fd269d08ec Apply dark light theme for enrollment activities
Override onApplyThemeResource() and apply SetupWizardPartnerResource
to make the dark light theme activate.

Theme change scope:
1) FingerprintEnrollEnrolling
2) FingerprintEnrollFindSensor
3) SetupFingerprintEnrollEnrolling
4) SetupFingerprintEnrollFindSensor

Bug: 245684949
Test: manual in SUW `adb shell cmd uimode night yes` and check visual
Test: manual in SUW enrolling check timeout dialog apply theme
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      SetupFingerprintEnrollFindSensorTest
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      FingerprintEnrollEnrollingTest
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      FingerprintEnrollFindSensorTest
Change-Id: I16f1070612e3e27546e6aa004fc4cdd3d7947191
2022-09-20 01:30:28 +00:00
Grace Cheng
f9886847e8 Merge "Fixes Talkback autoscroll for SFPS enrollment ScrollView" into tm-qpr-dev 2022-09-16 01:42:06 +00:00
Grace Cheng
b798c03f50 Fixes Talkback autoscroll for SFPS enrollment ScrollView
Adds importantForAccessibility attribute to ScrollView in setup wizard layout. This enables Talkback to autoscroll when focusing on items at the edge of a container.

Test: (manual) Turn on talkback, navigate to SFPS enrollment edu screen. Swipe through ScrollView elements and observe autoscroll when focus is on elements at the edge of the View.
Fixes: 244595576
Change-Id: Iccc6125ac8f0993a7d8908f6c54e7307905b7cd7
2022-09-15 23:24:03 +00:00
TreeHugger Robot
094d7badba Merge "Fix incorrect choose screen lock during unicorn" into tm-qpr-dev 2022-09-13 06:23:40 +00:00
TreeHugger Robot
311d818b10 Merge "Refine checkMaxEnrolled() for fingerprint" into tm-qpr-dev 2022-09-12 23:57:04 +00:00
Grace Cheng
19ee730df2 Merge "Update SFPS enrollment education assets and add light/dark theme colors" into tm-qpr-dev 2022-09-09 16:24:06 +00:00
Grace Cheng
f15c726127 Update SFPS enrollment education assets and add light/dark theme colors
Updates SFPS enrollment education layout and adds new assets indicating
sensor location in each orientation. Also defines color codes and adds
LottieColorUtils to dynamically map LottieAnimationView colors from light/dark theme

Test: Observe correct assets during enrollment in all orientations
Fixes: 242074146
Fixes: 238596925
Change-Id: If3b7502350057cc9b04f12aa9a5b36be06958630
2022-09-09 07:09:27 +00:00
Milton Wu
4f93ef7790 Fix incorrect choose screen lock during unicorn
ChooseLockGeneneric uses intent extra key to determine correct strings
on "Choose screen lock" screen.

Bug: 219419005
Test: atest BiometricEnrollActivityTest
Test: Manully test SUW as following combinations
      1. W/ unicorn flow or W/O unicorn flow
      2. Fingerprint only devices or Fingerpirnt+Face devices
Change-Id: I2abf9555676f3fb3b92dd6ddcc091ea8158bfe9f
2022-09-08 07:54:53 +00:00
Milton Wu
9b998b7dac Refine checkMaxEnrolled() for fingerprint
FingerprintEnrollIntroduction shall allow setting 2nd fingerprint if
this intent is coming from "Anything else" page in SUW.

Bug: 228418807
Test: Manually test fingerprint in SUW
Test: ROBOTEST FingerprintEnrollIntroduction and
      SetupFingerprintEnrollIntroduction
Change-Id: I62edeb91f90b32f62b3ca2b2ea04ec427b31d483
2022-09-07 07:49:42 +00:00
lbill
82a42834b1 Fix regression of pressing power key cancel sfps enrollment
Previous ag/19699461 used to fix UdfpsControllerOverlay bug.
However, we didn't consider a feature click power button to
notify user with a Toast on sfps project.

Bug: 245383975
Bug: 228261883
Bug: 242478941
Bug: 227905887
Test: make RunSettingsRoboTests ROBOTEST_FILTER=FingerprintEnrollEnrollingTest
Test: manual verify sfps enrollment, press/long press power key would
not cancel enrollment.
Test: manual verify udfps enrollment, UdfpsControllerOverlay lose focus
cancel enrollment.

Change-Id: I44394bdb91660b27a704064a7f7cdc5d0ad95d30
2022-09-07 04:01:40 +00:00
TreeHugger Robot
048bc692a4 Merge "Updated fingerprint dialog deletion strings." into tm-qpr-dev 2022-09-02 20:09:01 +00:00
Joshua McCloskey
c76f988475 Updated fingerprint dialog deletion strings.
Test: Manual
Fixes: 234183857
Change-Id: Ieb500d52f705eb269937cd0fcd6b14081f9662ee
2022-09-01 17:27:51 +00:00
Grace Cheng
2c9dab6f0a Merge "Implement SFPS guided enrollment for T6" into tm-qpr-dev 2022-09-01 00:47:41 +00:00
Grace Cheng
4a187e15d6 Implement SFPS guided enrollment for T6
Reduces perception of long enrollment process by introducing new enrollment layout and stages for SFPS. Also adds user feedback via new animated assets with dynamic colors, and all associated strings and a11y labels.

Test: Observe new guided enrollment process on T6
Test: make RunSettingsRoboTests ROBOTEST_FILTER=FingerprintEnrollEnrollingTest
Fixes: 232024488
Fixes: 233091341
Fixes: 241165082
Fixes: 242218240
Fixes: 243813773
Change-Id: I1fa0b9349545586919eceeb9d05f365c2f2ec491
Merged-In: I1fa0b9349545586919eceeb9d05f365c2f2ec491
2022-09-01 00:47:22 +00:00
Diya Bera
73e4742941 Merge "SecuritySettings test" into tm-qpr-dev 2022-08-31 18:25:45 +00:00
Austin Delgado
bbcdc91967 Merge "Made learn more links clickable in biometric intros" into tm-qpr-dev 2022-08-30 17:15:49 +00:00
Bill Lin
7d15cb501f Merge "Cancel UDFPS enrollment on overlay focus loss" into tm-qpr-dev 2022-08-30 12:06:47 +00:00
Milton Wu
af5a7d8dc0 Bypass cancel error code during "Add another"
1. When user chooses "Add another" on latest fingerprint enroll page, we
   shall bypass RESULT_CANCELED from FingerprintEnrollEnrolling. This is
   because user has successfully enrolled a fingerprint before enter
   FingerprintEnrollFinish page.

2. In FingerprintEnrollFindSensor
   A. Do not call startLookingForFingerprint() if mNextClick is true
      because it is wating the result back from
      FingerprintEnrollEnrolling, and let onActivityResult() mehtod to
      handle correct behavior.
   B. Add tests for following cases
      a. Sidecar existence
      b. Activity recycled and recreate in order to get activity result.

Bug: 243701933
Bug: 243762418

Test: ROBOTEST for SetupFingerprintEnrollFindSensorTest,
   FingerprintEnrollFindSensorTest, SetupFingerprintEnrollFinishTest

Test: Test scenarios w/ and w/o always_finish_activities
  1. Enroll a fingerprint but cancel it during enrolling in SuW
  2. Enroll a fingerprint in SuW
  3. Add another fingerprint in SuW
  4. Run "Add another" but cancel it during enrolling in SuW
  5. W/o enrolled fingerprint, add first fingerprint in settings
  6. W/o enrolled fingerprint, add first fingerprint but cancel it
     during enrolling in settings
  7. W/o enrolled fingerprint, add first fingerprint and choose "Add
     another" in settings
  8. W/o enrolled fingerprint, add first fingerprint and choose "Add
     another" then cancel it during enrolling in settings
  9. W/ 1 enrolled fingerprint, add fingerprint in settings
  10. W/ 1 enrolled fingerprint, add fingerprint but cancel it during
      enrolling in settings
  11. W/ 1 enrolled fingerprint, add fingerprint and choose "Add
      another" in settings
  12. W/ 1 enrolled fingerprint, add fingerprint and choose "Add
      another" then canel it during enrolling in settings

Change-Id: I03d8d8ebc39eb34f8fc28acb5cd267e37c7a0311
2022-08-29 07:22:45 +00:00
Milton Wu
d3a1f700ee Fix udfps fingerprint setting flow
1. on udfps + faceunlock devices, fingerprint settings shall not be
   launched if no fingerprint enrolled.
2. on udfps device, after first fingerprint enrollment successfully,
   fingerprint settings shall be shown.
3. Update FingerprintEnrollFindSensorTest to support udfps cases.

Bug: 243701933
Bug: 243003012
Test: manully adding first fingerprint on udfps + faceunlock device
Test: manully suw on udfps + faceunlock device
Test: run robotest for FingerprintEnrollFindSensorTest
      and SetupFingerprintEnrollFindSensorTest

Merged-In: I62d945f2c2e980edf2a885234e54acae109e7672
Change-Id: I62d945f2c2e980edf2a885234e54acae109e7672
(cherry picked from commit 936dd31312)
2022-08-29 07:22:40 +00:00
Milton Wu
561a68db20 Use setting as base activity for fingerprint
Change to use FingerprintSetting as base activity when use launch
"Fingerprint Unlock" from Settings -> Security. And then we can prevent
that necesssary pop-up activites become full-screen.

Bug: 243701933
Bug: 232874879

Test: manual test following cases on fp-only devices, and enable don't
      keep activity and test them again.
      1. fp enrollment on SUW
      2. fp add another on SUW
      3. add first fp on Security Settings
      4. add another fp on Security Settings
Test: atest FingerprintStatusUtilsTest BiometricsSafetySourceTest
Test: robo test for SetupFingerprintEnrollFindSensorTest
      SetupFingerprintEnrollFinishTest
      FingerprintEnrollFindSensorTest FingerprintEnrollEnrollingTest

Merged-In: Ib1c2ef9f93fb910eed2930f871c0c69bdb94bcbd
Change-Id: Ib1c2ef9f93fb910eed2930f871c0c69bdb94bcbd
(cherry picked from commit 84b39c3ed0)
2022-08-29 07:21:42 +00:00
lbill
e944661955 Cancel UDFPS enrollment on overlay focus loss
Integrate onWindowFocusChanged() to FingerprintEnrollEnrolling
When the activity window lost focus, we just cancel this enroll
session, and create a dialog to notify user.

* Keep legacy rotation behavior, do not cancel enrollment if user
  rotate device.
* This change will cancel enrollment when user interrupted by
  1) Swipe down Notification Shade
  2) Heads up notification expand
  3) Bubble Expanded
  4) Google Assist
  5) PIP expand
  6) Recents
  7) Launch Power Menu(Global Action)

Test: manual test above scenario
Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER=FingerprintEnrollEnrollingTest
Bug: 228261883
Bug: 242478941
Bug: 227905887
Change-Id: Id097e6b15928646cd5ab91c2a1f6eb1bb9bf190b
2022-08-26 01:30:33 +00:00
Bill Lin
fd8e54e391 Merge "Set appropriate theme for SkipFingerprintDialog" into tm-qpr-dev 2022-08-25 04:36:14 +00:00
Diya Bera
58facec91e SecuritySettings test
Test: atest
Fixes: 234309000
Change-Id: I3c5772bd33fe7280d35ca0d78a647a5dd7e0a00c
2022-08-24 21:08:04 +00:00
lbill
7a4ddb8337 Set appropriate theme for SkipFingerprintDialog
The SkipFingerprintDialog is instantiation in
SetupFingerprintEnrollFindSensor#onSkipButtonClick()

Due to the call flow did not set appropriate theme
defined in setuplib for skip alertDialog instance
we set GlifV2ThemeAlertDialog AlertDialog.Builder.

Test: m RunSettingsRoboTests -j30 ROBOTEST_FILTER= \
      SetupFingerprintEnrollFindSensorTest
Test: manual factory reset, go through SUW, and check
      skip AlertDialog Bottom Bar Buttons visual.
Bug: 233243999
Change-Id: Ic198a23eb3e76d70e287b24f2ab1ef249b30b2fc
2022-08-24 13:45:21 +00:00
Diya Bera
02ca9bd23e Merge "Removed redundant face unlock option." into tm-qpr-dev 2022-08-22 21:57:44 +00:00
Joe Bolinger
e167f9ed0a Cache context for generateChallenge response.
Fix: 232678514
Test: manual
Change-Id: I7deac5f296260bf667b15300e600195c42c0cbc1
2022-08-18 00:49:38 +00:00
Diya Bera
347cd8bca3 Removed redundant face unlock option.
Test: To be updated.
Fixes: 234309000
Change-Id: I5fcf682860de9b76d61878df04182bc382292f56
2022-08-16 22:48:25 +00:00
Austin Delgado
756bc29e70 Made learn more links clickable in biometric intros
Test: Clicked on links
Change-Id: I376db30c848fafa0680277943c83ec97690ef62d
Bug: 233543002
2022-08-10 23:50:16 +00:00
Jason Chang
88c49e3257 Fix RTL issue on fingerprint setup screens in landscape mode
1. Add an RTL layout dimension for enrolling page.
2. Handling device rotation landscape 270/90 degrees with
layout dimension in LTR or RTL language.

Bug: 237104754

Test: manually verified on Settings > Security > Face & Fingerprint
Unlock > Fingerprint Unlock > Touch & Hold fingerprint sensor page

Test: make RunSettingsRoboTests ROBOTEST_FILTER=
"com.android.settings.biometrics.fingerprint
.FingerprintEnrollEnrollingTest"

Change-Id: If4770d885d97c6bf4cfebefdf9cfa0b4ee0b995b
2022-08-01 19:02:50 +08:00
TreeHugger Robot
587da7dfc3 Merge "Send metric intent back to SUW" into tm-qpr-dev 2022-07-25 22:18:04 +00:00
Milton Wu
68247caafc Send metric intent back to SUW
Add metric intent if ChooseLockGeneric is triggered in SUW.
1. Save the result bundle data from ChooseLockGeneric to cache inside
   BiometricEnrollActivity and pass back to SUW after all finished.
2. Since fingerprint enrollment trigger points in SUW for
   fingerprint-only or fingerprint + faceAuth devices are all moved
   from SetupFingerprintEnrollIntroduction to BiometricEnrollActivity,
   remove deprecated code from SetupFingerprintEnrollIntroduction.

Bug: 235458700
Test: Manually test fingerprint enroll with SUW or w/o SUW
Test: Manually test fingerprint enroll with unicorn SUW
Test: atest BiometricEnrollActivityTest
Test: robo tests FingerprintEnrollIntroductionTest
Change-Id: I34b2884ab4c2c65d464d91eaef0f58c72dad438b
2022-07-22 08:53:48 +00:00
TreeHugger Robot
3028e52501 Merge "Save isCanceled state and restore when rotation" into tm-qpr-dev 2022-07-15 05:03:40 +00:00
TreeHugger Robot
e49a84480b Merge "Run lock before fingerprint enroll" into tm-qpr-dev 2022-07-15 00:37:04 +00:00
lbill
d7f53d4180 Save isCanceled state and restore when rotation
- Create mIsCanceled field in FingerprintEnrollEnrolling
- Override onSaveInstanceState and save mIsCanceled state
- onCreate restore mIsCanceled
- shouldStartAutomatically() return mRestoring && !mIsCanceled
- Integrate FingerprintErrorDialog with "try again"-> Clear mIsCanceled

Bug: 237103873
Test: manual enroll UDFPS, and wait for timeout, seeing timeout error
dialog showing above fingerprint enrollment pad.

Change-Id: I3a3010ca12aa0b23fd122a8afc9b82adf5656fb8
2022-07-15 08:14:53 +08:00
TreeHugger Robot
9fcf073bab Merge "Check portal on fingerprint intro page" into tm-qpr-dev 2022-07-15 00:08:59 +00:00
Milton Wu
504a659ba5 Run lock before fingerprint enroll
Run setOrConfirmCredentialsNow() before enrolling fingerprint for
fingerprint-only device.

Bug: 237433373
Test: atest BiometricEnrollActivityTest
Test: Manually test SUW flows for fingerprint-only device
      1. check confirm pin case
      2. check choose pin case
      3. enable always_finish_activities, check confirm pin case
      4. enable always_finish_activities, check choose pin case
Change-Id: I68da429145835fc79f83f3292749088dc25fdeee
2022-07-14 08:40:45 +00:00