summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java
AgeCommit message (Collapse)Author
2020-10-09Merge SP1A.200921.001Scott Lobdell
Change-Id: I6a8d7215f874fed05e9fec71b17c8a3d1e2c94e0
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-09-164/N Setup Controller fo KeyguardSecurityContainer.Dave Mankoff
Move the guts of KeyguardSecurityContainer into KeyguardSecurityContainerController. This removes a lot of Dependency#get calls, and is another step towards simplifying our view inflation process. CustomViews that previously implemented KeyguardSecurityView now all extend KeyguardInputView, allowing them to be simultaneously treated as one while also being recognized as a View (the interface required a lot of casting back and forth to a View). LockscreenUtil is made a Singleton in this CL. Bug: 166448040 Test: atest SystemUITests && manual Change-Id: I6fa05012c55f5e003ab551d2f8360891a62fa2a7
2020-04-10Merge RP1A.200409.001Steven Laver
Change-Id: Ia41f836dfddc0f83472127b82463be1ab9ec89a5
2020-04-06Update bouncer fingerprint lockout logicKevin Chyn
Do not request fingerprint auth if the user is locked out and they have attempted credential on bouncer. This fixes an issue where the incorrect PIN/Pattern/Password message would be overwritten by the fingerprint lockout message. KeyguardUpdateMonitor controlls biometric requests for lockscreen/bouncer, so poke in credential attempts so it can be used for determining if biometric should be requested. Fixes: 141960543 Test: 1) set up PIN/Pattern/Password and fingerprint 2) reject fingerprint 5 times, then swipe up to bouncer 3) note that "too many attempts" message is shown 4) enter wrong PIN/Pattern/Password 5) note that from now on, this current bouncer session will only show credential-related errors Change-Id: Ifb837b29f93caa5b8762bd5609ca09601b6e4784
2019-11-09Merge RP1A.191024.001Steven Laver
Change-Id: I5cda3bba276e99d948b752be87d4599e9f882e0f
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-14Merge RP1A.190923.001Steven Laver
Change-Id: I293059a06fd09d0377ea06c58cf62eeb31d4668e
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-27Merge RP1A.190822.001Scott Lobdell
Change-Id: I515dc97a1060fccf4c2fd8f678f8f90753aa1289
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-08-13Merge RP1A.190528.001Steven Laver
Change-Id: Iee6f817cf5e0e4b39829e153c473f55c5b5f4a19
2019-08-07Stop face auth requests when users are typingLucas Dupin
We don't want the bouncer to be dismissed right under the user's finger when typing. Let's abort face auth after we start typing. Test: solve challenge when face auth is running Test: repeat for pin/pattern/password Fixes: 136525169 Change-Id: I8f1ccbca4be9c84f5cb108618b84aefe03b74cc4
2019-05-16Face auth messaging cleanupLucas Dupin
Do not show timeout message, and ask user to swipe up to retry when auth fails. Fixes: 132465944 Test: biometric error on bouncer and LS Test: wait for face timeout Change-Id: Iec757f25d5f09b05ac02811e2eeef6ac98f63f16
2019-05-08Merge QP1A.190501.001Steven Laver
Change-Id: I0f9f887d6a33702a6988709d8296731cfdb8f73d
2019-04-18Move padlock to the top of the lock screenLucas Dupin
Test: tap on notification on lock screen Test: tap on notification on shade locked Test: swipe down from the top expanding QS Test: swipe up from LS Test: switch between pin, pattern and password Test: add and remove locked sim card Test: atest KeyguardBottomAreaTest Test: atest KeyguardClockPositionAlgorithmTest Test: atest KeyguardMessageAreaTest Test: atest KeyguardIndicationControllerTest Test: atest StatusBarKeyguardViewManagerTest Test: atest KeyguardBouncerTest Test: atest KeyguardPatternViewTest Fixes: 130398499 Fixes: 130298363 Fixes: 129784068 Fixes: 130223966 Change-Id: Ib1706de259fa4b1f4ef13f654cbd931457733d82
2019-03-08Merge QP1A.190228.005Diego Wilson
Change-Id: I6a7b2220ab2af44ab6d03a164dfb2cfaf387dabb
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
2019-02-01Merge QP1A.190122.001Scott Lobdell
Conflicts: api/system-current.txt core/java/android/bluetooth/BluetoothAdapter.java core/jni/android_util_Process.cpp core/jni/com_android_internal_os_Zygote.cpp core/res/res/values/config.xml core/res/res/values/symbols.xml media/java/android/media/MediaCodecInfo.java packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java services/core/java/com/android/server/ConnectivityService.java services/core/java/com/android/server/LocationManagerService.java services/core/java/com/android/server/am/ActivityManagerService.java services/core/java/com/android/server/connectivity/NetworkAgentInfo.java services/core/java/com/android/server/location/GnssLocationProvider.java services/core/java/com/android/server/wm/ActivityStack.java services/net/java/android/net/ip/IpClient.java telecomm/java/android/telecom/Connection.java telephony/java/android/telephony/ims/ImsCallSession.java telephony/java/android/telephony/ims/ImsCallSessionListener.java telephony/java/android/telephony/ims/aidl/IImsCallSessionListener.aidl telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl wifi/java/android/net/wifi/WifiConfiguration.java Change-Id: I367301986f2ae80a528050c3d78776b5a4c6b5ee
2019-01-11Fix IME window pops up when unlock keyguard with fingerprintlumark
When in KeyguardPasswordView, hide IME window manually with pressing back key to back Keyguard view, and then unlock screen with fingerprint will find IME window pop up suddently. The reason is when KeyguardBouncer#hide will have a call path to pause KeyguardPasswordView & reset the state, but in resetState() will call IMM#showSoftInput even the password entry is invisible. Make sure to not call IMM#showSoftInput when KeyguardPasswordView is in pausing stage or password entry is invisible case to prevent IME pops up in unexpected way. Bug: 112811602 Test: manual as the issue description Change-Id: I3c43d09d4206c48f1afcd8dad79e7978337f1b7d
2018-08-02Merge QPR1.180718.001Jiyong Park
Conflicts: core/java/android/provider/Settings.java core/jni/android_view_InputEventReceiver.cpp core/res/res/values/config.xml core/res/res/values/symbols.xml media/jni/Android.bp packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java packages/SystemUI/res/layout/status_bar_mobile_signal_group.xml packages/SystemUI/res/values/config.xml packages/SystemUI/src/com/android/keyguard/KeyguardConstants.java packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java services/core/java/com/android/server/ConnectivityService.java services/core/java/com/android/server/NetworkTimeUpdateService.java services/core/java/com/android/server/StorageManagerService.java services/core/java/com/android/server/Watchdog.java services/core/java/com/android/server/am/ActiveServices.java services/core/java/com/android/server/am/ActivityManagerService.java services/core/java/com/android/server/am/ActivityStack.java services/core/java/com/android/server/am/AppTaskImpl.java services/core/java/com/android/server/audio/AudioService.java services/core/java/com/android/server/wm/DisplayContent.java services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordTest.java telephony/java/android/telephony/CarrierConfigManager.java telephony/java/android/telephony/ims/ImsReasonInfo.java telephony/java/android/telephony/ims/feature/MmTelFeature.java telephony/java/com/android/internal/telephony/ISmsBaseImpl.java Change-Id: I3f98340699f9e31be03eaf23fdea70803c4cef42
2018-06-29Merge "frameworks: base: Port password retention feature" into p-keystone-qcomTreehugger Robot
2018-05-29frameworks: base: Port password retention featureAnilKumar Chimata
Port password retention feature for HW FDE. This patch also include these changes: - Fix clearing of retained password - keyguard: Fix password doesnot sanitize after verification - LockSettings: fix the get password issue during boot up - frameworks/base: Fix pattern update issue CRs-Fixed: 2210986 Change-Id: I2def56b14c10229b72feccd1c97b281cad65f282
2018-05-22[SystemUI] To plumb down ColorStateList all the way down instead of int ↵Jason Chang
colors in KeyguardHostView.java and its collaborative files. To plumb down ColorStateList all the way down instead of int colors in KeyguardHostView.java and its collaborative files. Bug: 79721803 Test: manually test for UI Change-Id: I69df1a13db5153ca36cf39f7b818d6c3d27ee107
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-04-10Bouncer animation and messageLucas Dupin
- Do not run security container animation if the device was unlocked - Do not erase message field after swiping up Test: go/sysui-bouncer-tests Change-Id: I7e0ccca0877e0cd29f7b2b65e8bff11f279c4b39 Fixes: 77810996 Bug: 76453411
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-12-06Add latency logging for rotationJason Monk
Move LatencyTracker and sysui_latency to make this possible Fixes: 67862696 Test: atest platform_testing/tests/perf/PerfTransitionTest/src/com/android/apptransition/tests/LatencyTests.java#testRotationLatency Change-Id: I42e3218355c162d4ba04b0f2c49e031156b5a357
2017-08-30Fix "too many attempts" pluralization on bouncerKevin Chyn
Bug: 35027821 Test: manual test of pin/pattern/pass authentication Change-Id: I67fcd0977554dbd1b0394e4210d9ee7e668b77d9
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