summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputView.java
AgeCommit message (Collapse)Author
2021-05-07Cleanup support for multiple PIN viewsMatt Pietal
Had to support both old/new UX for PIN for a while. Cleanup the unneeded code and simply the ripple. Fixes: 187340770 Test: atest KeyguardPinBasedInputViewControllerTest and visual check Change-Id: Ie12cd93c7aaba5a3ef172792a5dd2a41f2196447
2021-03-10Add continuous falsing to keyguard.Dave Mankoff
With this change, taps outside of the bouncer inputs increase the FalsingManager's belief that erroneous taps are happening. If the belief becomes strong enough, the bouncer will be retracted. Special attention is given to ensure that actual password inputs are not recorded by the falsing manager. Valid button and pattern inputs do not have their motion events recorded, but do _decrease_ the FalsingManager's belief in pocket dialing. Thus, a few bad taps mixed with good taps will not retract the bouncer. Test: atest SystemUITests && manual Bug: 172655679 Change-Id: Iac8d2a2f41764f3c1cccb66b9d332c489cabca77
2021-02-17PIN bouncer - Update animationsMatt Pietal
Use ripple plus dynamic shape on touch, and constrain the ripple to this dynamic shape. Slightly adjust margins. Update back color to match specs. Bug: 172360102 Test: manual Change-Id: Ie8552f2cbbc26d110534427e013da12d58ce6bb4
2021-02-16PIN View - Control layout based on feature flagMatt Pietal
Support both the old-style PIN views and the new ones behind the keyguard layout flag. Fixes: 179121004 Test: adb shell cmd overlay disable com.google.android.systemui.gxoverlay Change-Id: If588df2503d9337fe63b300fb24da09ef0a6d1e9
2021-01-20Bouncer - New PIN animationsMatt Pietal
Align all PIN views (PIN, SIM, PUK) to latest UX guidance, including new heights and animations for color and corner radius. Mark all alpha chars as GONE for now, and potentially remove in the near future, pending feedback. Bug: 172360102 Test: manual Change-Id: I53cefb950daad29acb70c00b71b44e073ab6dac5
2020-12-011/N The road to Material NEXT (bouncer and shade)Lucas Dupin
Styling bouncer and shade so they have solid backgrounds and read colors from themes instead of named resources. Scrim now fetches colorBackgroundFloating, and views get their background from colorBackground. Switching from light to dark theme will make bouncer colors update without re-inflating any views. Bug: 173561906 Bug: 173561901 Test: atest ScrimControllerTest Test: atest KeyguardSecurityContainerControllerTest Test: manual, switching to dark theme annd showing notif guts Change-Id: I372e8b688d7bbddd698381accd074b7655788cd0
2020-09-24Revert^2 "9/N Clean Up Keyguard Class Structure"Dave Mankoff
b00c929394cb6bce158265af9606a8eb5a79e47a Change-Id: I42d17262a789d2eb106a924b442a9d3debcc35e4
2020-09-24Revert^2 "7/N controllers for remaining Keyguard Password ..."Dave Mankoff
Revert submission 12656261-revert-12585643-b166448040-keyguard-message-area-NUUJOVRYJS This also fixes the original issue introduced in this CL. KeyguardAbsKeyInputViewController#reset would call mView#resetState instead of its own internal resetState method. However, all the logic from the various resetState methods had been moved from the views to their controllers. Simply calling resetState direclty resolves the issue (line 105 of KeyguardAbsKeyInputViewController). Reason for revert: Fixing http://b/169231892 and http://b/169145796 Reverted Changes: I7683b2234:Revert "4/N Setup Controller fo KeyguardSecurityCo... I5cbe04c0c:Revert "5/N Add KeyguardSecurityViewFlipperControl... I11dff38ad:Revert "6/N Add Controller for KeyguardPatternView... I55c250121:Revert "7/N controllers for remaining Keyguard Pas... Ie84234cb8:Revert "8/N Remove View Injection from KeyguardMes... Ic62f199a5:Revert "9/N Clean Up Keyguard Class Structure" Change-Id: Ie3669e0c9a23ffd4443ced0fb08ec754f1df55db Fixes: 169145796
2020-09-22Revert "7/N controllers for remaining Keyguard Password Views."Dave Mankoff
Revert submission 12585643-b166448040-keyguard-message-area Reason for revert: http://b/169081305 & http://b/169020145 Reverted Changes: I6fa05012c:4/N Setup Controller fo KeyguardSecurityContainer.... Iecf265744:5/N Add KeyguardSecurityViewFlipperController. I90ab99b2f:6/N Add Controller for KeyguardPatternView I4b74eddd1:7/N controllers for remaining Keyguard Password Vi... I805286374:8/N Remove View Injection from KeyguardMessageArea... I362755980:9/N Clean Up Keyguard Class Structure Change-Id: I55c250121c2e234a41b30f2d647c44f6cb631028 Fixes: 169081305 Fixes: 169020145
2020-09-22Revert "9/N Clean Up Keyguard Class Structure"Dave Mankoff
Revert submission 12585643-b166448040-keyguard-message-area Reason for revert: http://b/169081305 & http://b/169020145 Reverted Changes: I6fa05012c:4/N Setup Controller fo KeyguardSecurityContainer.... Iecf265744:5/N Add KeyguardSecurityViewFlipperController. I90ab99b2f:6/N Add Controller for KeyguardPatternView I4b74eddd1:7/N controllers for remaining Keyguard Password Vi... I805286374:8/N Remove View Injection from KeyguardMessageArea... I362755980:9/N Clean Up Keyguard Class Structure Change-Id: Ic62f199a51a15d8384450b8f181f3c5a0b988d7f Fixes: 169081305 Fixes: 169020145
2020-09-169/N Clean Up Keyguard Class StructureDave Mankoff
KeyguardInputView no longer implements KeyguardSecurityView. This cl seeks to clean up some of the lingering vestiges from this large chain of refactors. I have manually tested none, swipe, pattern, pin, and password views for successfully unlocking, as well as multiple failed attempts resulting in temporary lock outs. Fixes: 166448040 Test: atest SystemUITests && manual Change-Id: I36275598001184e774677cf2dbb16dec8dc7ab5b
2020-09-167/N controllers for remaining Keyguard Password Views.Dave Mankoff
No real functionality changes (hopefully). Just moving objects into controllers. Test: manual Bug: 166448040 Change-Id: I4b74eddd18d29dd8966caa32c5960ff8be2e6f43
2020-07-17Resume-on-Reboot: remove special stringKenny Root
User feedback shows that this string causes confusion that the update is going to start immediately. Bug: 161179448 Test: Fake OTA test Change-Id: I9590ebf76c81ef104f490ba31ada7c482cd70d56
2020-01-07Support Resume on RebootKenny Root
When an OTA is downloaded, the RecoverySystem can be triggered to store the user's lock screen knowledge factor in a secure way using the IRebootEscrow HAL. This will allow the credential encrypted (CE) storage, keymaster credentials, and possibly others to be unlocked when the device reboots after an OTA. Bug: 63928581 Test: atest FrameworksServicesTests:RebootEscrowDataTest \ FrameworksServicesTests:LockSettingsServiceTests \ FrameworksServicesTests:RecoverySystemServiceTest \ FrameworksServicesTests:RebootEscrowManagerTests Test: use fake OTA console app to apply update Change-Id: I59df6942b27ea2bdd11b757922f5169085a325f0
2019-10-21Introduce Lockscreen PIN credential as first-class citizenRubin Xu
* Add CREDENTIAL_TYPE_PIN as the fourth credential type. * Rename existing CREDENTIAL_TYPE_PASSWORD to CREDENTIAL_TYPE_PASSWORD_OR_PIN which is still referenced by password data persisted on disk. * No longer store quality for new credentials (PASSWORD_TYPE_KEY). Credential type stored in synthetic password blob is now the single source of truth on what credential (None/Pin/Pattern/Password) the device currently has. * Adapt lockscreen FRP to work on a similar fashion (no more quality being passed around and stored) * Adapt RecoverableKeystore to use the new PIN credential type. * Fix existing unit tests * Add new unit tests for lockscreen FRP. Upgrade path: * Existing credentials will have CREDENTIAL_TYPE_PASSWORD_OR_PIN, and when LSS sees this, it will further consult PASSWORD_TYPE_KEY to distinguish between PIN and Pattern. The credential will stay this way until the next password change i.e. no automatic credential upgrade. * Existing FRP credential will have CREDENTIAL_TYPE_PASSWORD_OR_PIN, and when LSS sees this, it will further consult the saved quality PersistentData.qualityForUi to make that distinction. * Normal and FRP credential enrolled after this CL will store CREDENTIAL_TYPE_PIN to indicate this is a numeric PIN. Bug: 65239740 Test: atest com.android.server.locksettings Test: atest com.android.internal.widget.LockscreenCredentialTest Test: atest com.android.internal.util.LockPatternUtilsTest Test: atest LockSettingsShellCommandTest Test: atest com.android.server.devicepolicy.DevicePolicyManagerTest Test: atest FrameworksCoreTests:PasswordMetricsTest Test: atest FrameworksCoreTests:PasswordPolicyTest Test: atest MixedManagedProfileOwnerTest#testResetPasswordWithToken Test: atest com.android.cts.devicepolicy.PasswordComplexityTest Test: atest com.android.cts.devicepolicy.ManagedProfilePasswordTest Test: flash an old build, enroll password and flash to new build. Verify everything still works. Test: manually set an PIN/Pattern/Password; then change to PIN/Pattern/Password; finally remove password Test: manually create a work profile; try unify and ununify work challenge. Test: manually test lockscreen FRP flow (change password via Settings / DPC) Change-Id: I781cea4c32d567aac4af692697c4569161580102
2019-10-08Introduce LockscreenCredentialRubin Xu
* Wrap credential bytes and type into one single object. * Update all external APIs dealing with lockscreen passoword to use the LockscreenCredential class. Remove existing variants that handles pin/password/pattern separately. * Coerce password quality passed to LockSettingsService into one of UNSPECIFIED, PATTERN, NUMERIC or ALPHABETIC (explained below). * Update all clients & tests to interface with LockscreenCredential. Note: LockscreenCredential distinguishes between PIN and password in its public interfaces, this is to pave the way for the next patch of formally introducing a CREDENTIAL_TYPE_PIN type and getting rid of the requestedQuality being passed along (whose sole purpose nowadays is to distinguish between PIN and password) For now LockscreenCredential still uses the quality value internally to make that distinction. This does result in a change to what quality values LockSettingsService receives as part of credential change: after this CL LSS will only see the quality being one of UNSPECIFIED, PATTERN, NUMERIC or ALPHABETIC, while it used to receive other qualities (NUMERIC_COMPLEX, ALPHANUMERIC etc) if device admin sets a password policy. This shouldn't make any behaviour changes though, because the new range of values is still sufficient to distinguish between PIN/Pattern/Password, which is what the consumers of the stored quality care about. Bug: 65239740 Test: atest com.android.server.locksettings Test: atest com.android.server.devicepolicy.DevicePolicyManagerTest Test: atest com.android.internal.widget.LockPatternUtilsTest Test: atest com.android.internal.widget.LockscreenCredentialTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.password Test: atest MixedManagedProfileOwnerTest#testResetPasswordWithToken Test: atest MixedDeviceOwnerTest#testResetPasswordWithToken Test: manually set an PIN/Pattern/Password; then change to PIN/Pattern/Password; finally remove password Test: manually create a work profile; try unify and ununify work challenge. Test: manually test lockscreen FRP flow (change password via Settings / DPC) Change-Id: I04cc04057c96292a7b1b672bff2a09d594ea9b3c
2019-09-01[DO NOT MERGE] qt-qpr1-sysui-dev @ build 5814791Hyunyoung Song
Test: presubmit setup on source branch Bug: 130289146 Create a Gradle build for SystemUI Bug: 136279712 Daggerize FalsingManager Bug: 137324767 "Unable to instantiate service com.android.systemui.doze.DozeService" exception breaks launcher tests Bug: 137563419 Remove Bouncer reveal delay from bypass flow Bug: 138787339 Allow Services and Activities to be injected into directly. Bug: 139128921 [AS 3.5 RC2, SDK API 29 rev 2] Overload resolution ambiguity: while removing element from HashMap Bug: 64712476 Import translations for dev branches Change-Id: Ib7fd4706c070907fd556c3532957f3b1b046de6d
2019-02-21Refactor passwords/pins/patterns to byte[]Rich Cannings
Relating to frameworks/base Bug: 120484642 Test: manual - test setting and unlocking passwords/pins/patterns. automated - about 20 failing due to an issue in the test code. Change-Id: I57aa530ca2db1a026c56b66f5b4c91172f2667f6
2018-11-14Fixes import ordering.Gus Prevas
Test: n/a Change-Id: I432e11b52deb7974e50f62076af3b7aa07e364b6
2018-11-09Unable to input PIN with hardware keyboardWang, ArvinX
After typing a wrong PIN, the EditText view will be disabled and lose the focus, as a result, inputs from hardware keyboard won't be sent to PIN EditText. Test: 1. Enable PIN lock Test: 2. Lock the device with Power key Test: 3. Enter wrong PIN from a physical keyboard Test: 4. Try to enter PIN again with physical keyboard Bug: 119287260 Change-Id: I04df523c19c99bef75ea481b44154f7ba2270689 Signed-off-by: Wang, ArvinX <arvinx.wang@intel.com> Signed-off-by: Guobin Zhang <guobin.zhang@intel.com>
2018-05-11Do not hide keyguard message when fpLucas Dupin
Test: atest packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewTest.java Change-Id: I5d76b688b0eb7c1df6a36c1cb910f2b0ec98bc46 Fixes: 78235570
2018-05-01Request focus when pin is visibleLucas Dupin
Change-Id: Idfa7f0ea7f989de95030ed9dbd0ac4b45abc8155 Fixes: 77963692 Fixes: 78187153 Fixes: 78235570 Fixes: 78887466 Test: atest tests/src/com/android/keyguard/KeyguardPinBasedInputViewTest.java Test: atest tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java Test: atest android.server.am.ActivityManagerDisplayLockedKeyguardTests#testDismissKeyguard_whileOccluded_secondaryDisplay Test: atest -dt android.server.am.KeyguardLockedTests#testEnterPipOverKeyguard Test: go/sysui-bouncer-tests
2018-02-22Use accessibility pane API in keyguardPhil Weaver
Using the new accessibility pane title API to identify the pattern, pin, and password unlock screens. Bug: 73131182 Test: Verified that accessibility events are properly sent when unlocking the phone with each of the lock methods. Change-Id: I32594f4736b503e7f9e3be96e9f77a84ffcadc54
2018-01-11Allow custom keyguard "prompt reason"Lucas Dupin
Adds the possibility of presenting a custom message on the keyboard if you're trying to dismiss the keyguard. This is particularly useful when you're showing the bouncer because custom authentication (SmarLock) failed. Test: launch FLAG_SHOW_WHEN_LOCKED activity and call KeyguardManager#requestDismissKeyguard Fixes: 63940122 Change-Id: I0d88c0e59521887efa56d74874062b2b14970e4e
2017-04-14Remove unnecessary casts on calls to findViewByIdAlan Viverette
Just frameworks/ this time. More paths to come. Bug: 24137209 Test: make -j32 Change-Id: Iff27abd26fa43296ac2fff8f534fc6742d2ae80c
2017-02-10Move Keyguard to SystemUIJason Monk
Test: make Change-Id: I3abb67e2b022737d2aa0226bb07f3966ad68fff7