Commit Graph

35 Commits

Author SHA1 Message Date
Joshua McCloskey
e5f62676c8 Adding biometric FRR Notification atom.
Test: statsd_testdrive 793
Test: statsd_testdrive 184
Test: m -j50 RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.biometrics
Test: atest FingerprintUpdaterTest FaceUpdaterTest
Bug: 302171089

Change-Id: I4c921b75321db79cc975b98b54b176a43379cd7c
2024-02-15 19:09:35 +00:00
Chaohui Wang
db45ed7370 Merge "Clean up @OptIn(ExperimentalCoroutinesApi::class)" into main 2023-08-10 05:39:03 +00:00
Chaohui Wang
b0b710f1b0 Clean up @OptIn(ExperimentalCoroutinesApi::class)
After runTest get stable.

Bug: 285231003
Test: unit test
Change-Id: I200ba979727b900380b107bd82e1d0e43ab1d994
2023-08-09 17:26:10 +08:00
Milton Wu
f8cdda45aa [BiometricsV2] Refactor AutoCredentialViewModel
Fix previous review comments on
I84bab0b46e023303c0046a6ae6886ab1cf9458b8

Bug: 286197659
Test: atest AutoCredentialViewModelTest
Test: atest biometrics-enrollment-test
Change-Id: I9b43a637439e941bdb884e3ae2f656d573364123
2023-08-09 06:39:48 +00:00
Treehugger Robot
317bfca133 Merge "[BiometricsV2] Refactor EnrollIntroViewModel" into main 2023-08-07 05:22:36 +00:00
Treehugger Robot
538eafcbf2 Merge "[BiometricsV2] Refactor AutoCredentialViewModel" into main 2023-08-07 05:22:13 +00:00
Milton Wu
804b76ebc3 [BiometricsV2] Refactor EnrollIntroViewModel
1. Refactor FingerprintEnrollIntroViewModel to kotlin and replace
   LiveData as Flow
2. Set importantForAccessibility to sud_scroll_view (porting solution of
   b/244595576 into fingerprint enrollment v2)

Bug: 286198097
Test: atest -m FingerprintEnrollIntroViewModelTest
Test: atest -m FingerprintEnrollmentActivityTest
Test: atest -m biometrics-enrollment-test
Change-Id: Idd4e9d77d040d7efd61342284d7b6a493a20a539
2023-08-02 04:42:36 +00:00
Milton Wu
acb8be5d25 [BiometricsV2] Refactor AutoCredentialViewModel
Refactor AutoCredentialViewModelTest and FingerprintEnrollmentViewModel
to kotlin and change LiveData to Flow

Bug: 286197659
Test: atest -m CredentialModelTest
Test: atest -m AutoCredentialViewModelTest
Test: atest -m FingerprintEnrollmentViewModelTest
Test: atest -m FingerprintEnrollmentActivityTest
Test: atest -m biometrics-enrollment-test
Change-Id: I84bab0b46e023303c0046a6ae6886ab1cf9458b8
2023-07-25 21:14:42 +08:00
Milton Wu
04b600d0d8 [BiometricsV2] Refine ErrorDialogViewModelTest
Some FingerprintEnrollErrorDialogViewModel APIs related coroutine don't
be well test in FingerprintEnrollErrorDialogViewModelTest

Bug: 293044262
Test: atest -m FingerprintEnrollErrorDialogViewModelTest
Change-Id: Iab3897d37c904184c1f58ab617e74cd563b3aa43
2023-07-25 13:02:02 +00:00
Milton Wu
9a7afc9216 [BiometricsV2] Refactor EnrollmentViewModel
Refactor FingerprintEnrollmentViewModel to kotlin

Bug: 286198096
Test: atest FingerprintEnrollmentViewModelTest
Test: atest FingerprintEnrollmentActivityTest
Test: atest biometrics-enrollment-test
Test: manually test enrollment
Change-Id: If1b87fa115db1c3fde853ac13fe6204879d34ca8
2023-07-11 17:30:57 +08:00
Milton Wu
f94932801a [BiometricsV2] Add retry button
Add retry button for FingerprintEnrollErrorDialog and make sure that
this button works well in the whole enrollment flow.

Bug: 287168522
Test: manually test this dialog with error and rotate devices
Test: atest FingerprintEnrollEnrollingViewModelTest
Test: atest FingerprintEnrollErrorDialogViewModelTest
Test: atest FingerprintEnrollProgressViewModelTest
Test: atest FingerprintEnrollmentActivityTest
Test: atest biometrics-enrollment-test

Change-Id: Ica1d91d077ca322caca5551068f2a3c23b544361
2023-07-11 17:25:26 +08:00
Milton Wu
570b23e0a0 [BiometricsV2] Fix intro overlap enrolling page
Fix fragment overlapped if user rotates device on findSensor page, then
enter enrolling page and back again.

It is because the flag isFirstFragmentAdded is not saved and restored
after activity recreated

Bug: 288212767
Test: atest FingerprintEnrollmentActivityTest
Test: atest FingerprintEnrollmentViewModelTest
Test: atest biometrics-enrollment-test
Test: Manually test this scenario
Change-Id: I5b582582d97caac2488b787f551c50abec9f810c
2023-06-28 13:28:44 +08:00
Hao Dong
9e1435a0dc Merge "Wait for systemui udfps overlay ready to show settings udfps enroll view." into udc-qpr-dev am: 61659799de am: a9f1ed3501
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23595181

Change-Id: I88d843e5c1164e054d4cb48e3f953618e63e2e64
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-15 01:46:36 +00:00
Milton Wu
aadecbaf34 [BiometricsV2] Refactor model code to kotlin
Bug: 286196884
Test: atest FingerprintEnrollmentActivityTest CredentialModelTest
      EnrollmentRequestTest FingerprintEnrollIntroViewModelTest
      FingerprintEnrollmentViewModelTest
Test: atest biometrics-enrollment-test
Change-Id: I2bdae4d2dd052d3664a790cd982edf51fcebec09
2023-06-13 10:29:16 +00:00
Hao Dong
c24e305fbf Wait for systemui udfps overlay ready to show settings udfps enroll view.
Previously, we show settings's udfps enroll animation view (the fingerprint icon and progress view) once the FingerprintEnrollEnrolling is shown.
However, touch events have to wait for systemui's udfps overlay to be valid. This CL lets settings's udfps enroll view wait for systemui's overlay.
1. Sets udfps enroll animation view's default visibility Gone.
2. Propagates FingerprintManager#onUdfpsOverlayShown to
   FingerprintEnrollEnrolling and when it's called, set the enroll view
   visible.

Besides, this CL renames onPointerDown() and onPointerUp() with Udfps.

Bug: 280718879
Test: atest FingerprintEnrollEnrollingTest
Change-Id: Ieed3e74c182828918785edcacb021f19a3665f2a
2023-06-07 17:59:11 +00:00
Milton Wu
bc2dbee762 [BiometricsV2] Refine fingerprint activities
Seperate FingerprintEnrollmentActivity to another InternalActivity and
SetupActivity. InternalActivity is used for FingerprintSettings.
SetupActivity is used for setupwizard flow.

Bug: 284248001
Test: atest FingerprintEnrollmentActivityTest
Test: atest for biometrics/biometrics2 in unit tests
Test: settingRoboTest for biometrics
Change-Id: I9fb5dc34300060b9ccf857a3335b81a5d4bf5c7b
2023-05-25 06:25:58 +00:00
Milton Wu
3e8a37f2c7 [BiometricsV2] Remove "Try again" button from errorDialog
Remove "Try again" button from fingerprint enrolling error dialog for
biometrics v2.

Test: Manual (Enable biometrics v2, Start enrollment and don't
      complete it for 10 minutes; observe the dialog)
Test: atest FingerprintEnrollEnrollingViewModelTest
      FingerprintEnrollmentActivityTest
Bug: 280546173
Change-Id: I844786719a41b1a3d0e86ab32b74ab9b5aeaa0a1
2023-05-08 13:50:03 +00:00
Milton Wu
8b0fc14f94 [BiometricsV2] Refine fingerprint ui and flow
1. Fix "No thanks" become 2 lines, and fix the status when new
   fingerprint enrolled.
2. Fix Finish page shows again after pressing back from a new Finish
   page
3. Fix FindSensor page shows again after max number of fingerprint
   has reached.
4. Add missing tests, and remove some bypass-only tests

Bug: 279134177
Bug: 279380583
Bug: 279386539
Bug: 279394069
Test: atest FingerprintEnrollIntroViewModelTest
    FingerprintEnrollFindSensorViewModelTest
    FingerprintEnrollEnrollingViewModelTest
    FingerprintEnrollmentViewModelTest FingerprintEnrollmentActivityTest
Test: manually test 1, 2, and 3
Change-Id: I3797ceed8e7d6c10a4b4711f8bff8d7f222f0923
2023-05-08 14:00:22 +08:00
Milton Wu
562bbc8193 [BiometricsV2] fix enrolling rotate failed
Clean help message during progress changed, and reload help message from
ViewModel in onStart of enrolling page.

Bug: 275513362
Test: atest FingerprintEnrollProgressViewModelTest
Test: enable biometrics v2, and manully rotate screen when help msg
      is shown, and check help msg is kept after screen rotation.
Change-Id: I44220050806038ee62750f8945b8ba8f8bb9c282
2023-04-17 08:06:53 +00:00
Milton Wu
15267aab1f [BiometricsV2] IconTouchDialog continue enroll
When user clicks "OK" in FingerprintEnrollEnrollingIconTouchDialog,
continue enrolling.

Bug: 276416053
Test: atest FingerprintEnrollEnrollingViewModelTest
      FingerprintEnrollmentActivityTest
Test: Manually check enrolling status as clicking "OK" button on
      FingerprintEnrollEnrollingIconTouchDialog after enabling
      biometrics v2 v2 through feature flag.
Change-Id: I028723acfe35e5119e43b6860022c7432fc2ae0e
2023-04-11 14:39:59 +08:00
Milton Wu
4140b84881 [BiometricsV2] Fix 2nd touch not work for enroll
Use MessageDisplayController only when enroll reason is ENROLL_ENROLL
and R.bool.enrollment_message_display_controller_flag is true.
And always allocate a new MessageDisplayController for each new enroll
to avoid the possibility of events being ignored by
MessageDisplayController.

Bug: 275510856
Test: atest FingerprintEnrollProgressViewModelTest
Test: manually test sfps/udfps enrollment for biometricsV2
Change-Id: Ifc8b91916a3d76bed68dc523a90dc6ba422e3923
2023-04-06 13:18:41 +08:00
Milton Wu
ab488b3c5b Add biometrics v2 test
Add tests into FingerprintEnrollFinishViewModelTest and
FingerprintEnrollProgressViewModelTest. and also remove mDoneLiveData
from FingerprintEnrollProgressViewModel because no one uses it.

Bug: 271220339
Test: atest FingerprintEnrollFinishViewModelTest
      FingerprintEnrollProgressViewModelTest
Change-Id: Id74da29b7730a3e7feb8d0b263c28c8192adad9c
2023-03-14 04:33:12 +00:00
Milton Wu
7b817dd0a0 Fix icon touch dialog in Enrolling page
1. Fix icon touch dialog not shown in Enrolling page for SFPS and RFPS
   devices
2. Remove AccessibilityRepository and VibratorRepository because they
   only bypass info w/o actual effect.
3. Add/Refine missing test cases for FingerprintRepositoryTest,
   CredentailModelTest, AutoCredentialViewModelTest,
   FingerprintEnrollEnrollingViewModelTest,
   FingerprintEnrollFindSensorViewModelTest,
   FingerprintEnrollIntroViewModelTest

Bug: 271535048
Bug: 271220339
Test: atest FingerprintEnrollmentActivityTest CredentialModelTest
      FingerprintRepositoryTest AutoCredentialViewModelTest
      FingerprintEnrollEnrollingViewModelTest
      FingerprintEnrollFindSensorViewModelTest
      FingerprintEnrollIntroViewModelTest
Test: Manually test enrollment
Change-Id: I7d1ed935e156bbd41d5da63902683e430fd3fc1f
2023-03-03 17:49:17 +08:00
Milton Wu
211313b52d Attach FingerprintEnrollFinishFragment to activity
Start FingerprintEnrollFinishFragment when enrolling page is done.

Bug: 260960831
Test: atest FingerprintEnrollmentActivityTest
      FingerprintEnrollmentViewModelTest
Change-Id: Ia751c20330dfdcac91e961acc70aa033b05de03f
2023-02-14 19:18:56 +08:00
Milton Wu
fa496047a4 Refine RFPS enrolling v2
1. Fix skip button doesn't work case
2. Support rotation during enrollment
3. Show error dialog page
4. Show icon touched dialog page

Bug: 260957939
Test: atest FingerprintEnrollFindSensorViewModelTest
      FingerprintEnrollProgressViewModelTest
      FingerprintEnrollmentViewModelTest
      FingerprintEnrollmentActivityTest
Change-Id: I617e3e64a130682002b07551d11aff2864fd4538
2023-02-09 13:26:44 +08:00
Milton Wu
df8d2d9da9 Refine FingerprintEnrollmentActivity
1. Add missing test cases for DeviceFoldedViewModel,
   DeviceRotationViewModel, and FingerprintEnrollFindSensorViewModel
2. Move most of init value of ViewModels into
   getDefaultViewModelCreationExtras
3. Fix FindSfpsFragment lottie because of incorrect rotation value.
4. Feed configuration change into DeviceFoldedViewModel

Bug: 260957195
Test: atest CredentialModelTest AutoCredentialViewModelTest
      DeviceFoldedViewModelTest DeviceRotationViewModelTest
      FingerprintEnrollFindSensorViewModelTest
      FingerprintEnrollIntroViewModelTest
      FingerprintEnrollProgressViewModelTest
      FingerprintEnrollmentViewModelTest
      FingerprintEnrollmentActivityTest
Change-Id: Ied55a895bc1774af5bdd256eccd806aaaa1680ef
2023-01-20 14:42:48 +08:00
Milton Wu
546c507aec Move bimetrics v2 tests to unit/
Move biometrics enrollment v2 tests from robotests/ back to unit/

Bug: 265723532
Test: atest FingerprintRepositoryTest CredentialModelTest
      AutoCredentialViewModelTest FingerprintEnrollIntroViewModelTest
      FingerprintEnrollProgressViewModelTest
      FingerprintEnrollmentViewModelTest
Change-Id: Id35e52a97df757f8c4473c5bf7f46ba051816d42
2023-01-17 18:13:21 +08:00
Milton Wu
c132008623 Relocate biometrics enrollment v2 tests
Put biometrics enrollment v2 tests into tests/robotests/

Bug: 265723532
Test: RunSettingsRoboTests2 FingerprintRepositoryTest
      CredentialModelTest AutoCredentialViewModelTest
      FingerprintEnrollIntroViewModelTest
      FingerprintEnrollmentViewModelTest

Change-Id: I94804c07e0278713fcfb6e9889edc5092cfd9d13
2023-01-17 10:15:05 +08:00
Milton Wu
5d7bab1c2a Refine get props inside FingerprintRepository
FingerprintManager::getSensorPropertiesInternal() might return an
incorrect value if it's done too soon. Change to use
FingerprintManager::addAuthenticatorsRegisteredCallback() in
FingerprintRepository.

Bug: 264827022
Test: atest FingerprintRepositoryTest
      FingerprintEnrollIntroViewModelTest
      FingerprintEnrollmentViewModelTest
Change-Id: I68dd3ec1182662cc55aaa8be77a62245ab29cd54
2023-01-10 16:04:00 +08:00
Milton Wu
3be7385d90 Refactor FingerprintEnrollFindSensor
Refactor FingerprintEnrollFindSensor to 3 pages for different sensor
types, and apply MVVM for them.

Bug: 259664912
Bug: 260957195
Bug: 260957816
Test: atest FingerprintRepositoryTest FingerprintEnrollmentActivityTest
      AutoCredentialViewModelTest FingerprintEnrollIntroViewModelTest

Change-Id: Iace790952567cac13e61e5175e90555d4da7dfe2
2023-01-10 07:52:37 +08:00
Milton Wu
160661dc6d Launch settings for clicking fingerprint unlock
Launch FingerprintSettings directly when user clicks "Fingerprint
Unlock". Let Fingerprint settings peform confirmLock() or chooseLock().
And to have smoothly animation, instead of generating challenge in
FingerprintSettings::onActivityResult(), challenge is generated in next
visible activity, and pass it back through next activity result.

Bug: 197717071
Test: atest GatekeeperPasswordProviderTest CredentialModelTest
Test: atest AutoCredentialViewModelTest FingerprintStatusUtilsTest
Test: RunSettingsRoboTests2 FingerprintEnrollIntroductionTest
Test: Manually test fingerprint enroll in settings or suw
Change-Id: Ie27c3c493ea475f6b53cb6bb3f2d45d555f47cb3
2022-12-30 10:01:06 +08:00
Milton Wu
505be79cc5 Fix FingerprintEnrollIntroFragment buttons
1. Fix FingerprintEnrollIntroFragment button status not sync after
   rotation.
2. Finetune code orders in FingerprintEnrollmentActivity.onCreate(),
3. Refine some API names and java doc

Bug: 260205364
Test: atest AutoCredentialViewModelTest
            FingerprintEnrollIntroViewModelTest
Test: Manually test rotation with different display size
Change-Id: Ib992e10a1c90e3bbac6cf73114df4e96b5ab0a03
2022-11-23 20:15:04 +08:00
Milton Wu
5174310392 Fix FingerprintEnrollmentActivity rotaiton crash
1. When FragmentActivity rotated, FragmentManager will call default
   fragment constructor w/o parameters. Remove parameters of
   FingerprintEnrollIntroFragment constructor. And also remove
   BiometricsFragmentFactory because of useless now.
2. Remove some LiveData inside AutoCredentialViewModel because it causes
   jitter on activity transition.
3. Save and restore data inside AutoCredentialViewModel for handling
   activity recreation during rotation.
4. clear FingerprintEnrollIntroViewModel.mActionLiveData to prevent
   that activity gets previous action after recreate
5. Fix launching wrong activity during setupwizard

Bug: 259626932
Test: atest AutoCredentialViewModelTest CredentialModelTest
            FingerprintEnrollIntroViewModelTest
Change-Id: Ia26c86dc99ad91dbddef90538d9f5e5583585063
2022-11-22 18:18:44 +08:00
Milton Wu
f5e631dd77 Add biometric2 unit test owner
Bug: 236072782
Test: Build pass
Change-Id: Iea90eb418eb61087c44c037356a4171197f9f6c7
2022-11-22 03:20:52 +00:00
Milton Wu
b9b8b8a512 Fingerprint Introduction FragmentActivity
Introducing MVVM architecture & fragments to biometric settings.
Here, we modify the first page of FingerprintEnrollIntroduction to use
new MVVM with Fragment architecture.

And with this new architecture, unit test and screen order will be
easier to be written or changed.

Bug: 236072782
Test: atest FingerprintEnrollmentViewModelTest AutoCredentialViewModelTest
	    FingerprintEnrollIntroViewModelTest FingerprintRepositoryTest
Change-Id: Icf12c91625db86c2c99081a0108203e607e77f74
2022-11-14 15:36:03 +08:00