summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
AgeCommit message (Collapse)Author
2022-03-15Merge SP2A.220305.013Haamed Gheibi
Bug: 220074017 Change-Id: Idfdd94e902f656ac65a2a75dfdd199f6f85ba472
2021-08-09Attempt to clear memory after keyguard PIN entryRubin Xu
Force object finalization and garbage collection to remove shards of user PIN from memory. Bug: 189315376 Test: Unlock keyguard; take ramdump; search for PIN in the dump Change-Id: I6d951babc225998d959669117c26f823f28fa706
2021-06-25Update co-ex error logicBeverly
KeyguardIndication (bottom text area on LS) - show transient messages for a minimum of 2000ms not including animation time - if dual auth is enrolled: only show face auth errors if the user explicitly requested face auth In general, don't request face auth on the global actions menu (likely left over from when the power menu had affordances for components requiring authentication) Test: atest SystemUITest Fixes: 186302245 Bug: 183698582 Change-Id: I0290c66addc9981bf3fe20de24110e2d35e1f8eb
2021-04-01Open bouncer on screen side of swipe in one-handed mode.Jamie Garside
This detects where the swipe to open the bouncer comes from when the device is in left-handed mode, and moves the bouncer to that side. Currently, this is just a simple case of opening it on the screen half where the first swipe was, rather than following the finger during the swipe or anything like that. Bug: 170858298 Test: atest SystemUITests Change-Id: I4b18cee7d56fedf792a1923e316778bda077e75f
2021-03-24Ensure bouncer in correct position on swipe. Remove orientationlistener.Jamie Garside
This adds a hook to onLayout to move the bouncer to the correct screen side on large format devices. KeyguardBouncer already calls updateLayoutForSecurityMode() when the security mode is created, but this can happen before the bouncer has actually been attached to the screen (hence width = 0, so the bouncer gets left-aligned). It's also done in onResume(), but this is only called when the bouncer is at the correct place after swipe (hence causing the "jump" when swiping up). Also, removes orientationlistener from KeyguardBouncer, and replaces it with a proxied "updateResources" call. I messed up; I thought that orientationlistener worked like deviceorientationlistener, which notifies on screen rotation. Instead, it notifies on _every_ angle change, which would have led to a lot of layout passes as it'd update the bouncer gravity whenever the device moved. Oops. Test: atest SystemUITests: com.android.keyguard.KeyguardSecurityContainerControllerTest Bug: 177303121 Change-Id: I6d68e553c3114e043bcc126ba7b6910f98ce6694
2021-03-15Rely on a falsing-belief event to reset lockscreenDave Mankoff
Individual components of the lock screen are now simply in charge of asking the FalsingManager to recognize certain types of gestures. If they don't ask, the FalsingManager will assume they were accidental. Once a certain number of accidental touches occur, an event is fired that signals that the lock screen should be reset. More tuning and adjustment to come, but this is now functional. This also fixes a bug in an earlier cl where the bouncer would no longer retract if touches outside of its region were detected. Bug: 172655679 Test: manual Change-Id: Iffd1c7e58365235b1b7dbdac0c74439ead1df9d3
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-26Update the bouncer to be able to move to either side of a wide screen.Jamie Garside
This reverts commit 0f53fd20d5f5a986f6140de89d7d5623466d847b. The previous version of this didn't account for padding in onMeasure (I'd taken this out when copying from FrameLayout, as I didn't think we used padding), which is applied based on window insets. Tests also added to check this case. Forwards we go again :) Bug: 170858298 Test: Included. Manually tested on phone, with feature enabled too; PIN/Pattern/Password all render correctly. Change-Id: I7b1f35a185214ffdd2187f1c059f77535197a215
2021-02-23Revert "Update the bouncer to be able to move to either side of a wide screen."Jamie Garside
This reverts commit 868e770b824b5d776d64fd9364f24a6aa1ed5ab5. Reason for revert: Breaks password entry - b/180993584 Change-Id: I9a1771b795c90b1cfe6c2457d390ac53235c6c94
2021-02-22Update the bouncer to be able to move to either side of a wide screen.Jamie Garside
I'd like to test other things (like tap makes the IME move), but to do that means replacing the mock with a proper fake. That can come later, but this at least tests that the flagging works correctly. The changes between this and commit cae34b8e22f8a7baa845bfd31f472ed728c67a89 is the bouncer height is now measured using wrap_content, so the placement can be controlled properly by the outer View (as the position of the bouncer changes depending on the size of the screen). This reverts commit cae34b8e22f8a7baa845bfd31f472ed728c67a89. Test: Included Bug: 170858298 Change-Id: I18428a6df9abf0e8e37c1c179be6843e4eee793c
2021-02-08Revert "Update the bouncer to be able to move to either side of a wide screen."Daniel Chapin
This reverts commit 6c5bfcb40fdcf2499098daad37577e7ead67699a. Reason for revert: Bug: 179493042 Test: Manually verified Change-Id: Iebcaa9e92a2f83419c07936aa5aa3c81970da34a
2021-02-03Update the bouncer to be able to move to either side of a wide screen.Jamie Garside
This is currently enabled by settings persist.sysui.keyguard.one_handed_keyguard_enabled to true. If enabled, this will cause "one-handed able" security modes to be measured with half of the width of the SecurityViewContainer. Tapping either side of the screen will then move the keyguard by changing the margins. There's some flaws here, but it's a start. There's a frame of the bouncer being on the wrong side of the screen if the keyguard is on the right, and it doesn't respond to opening/closing the device properly yet. Bug: b/170858298 Change-Id: Ib997b9b3cb4ca7a069c805c7a8f3a79434eebd4c Test: Incoming :)
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-10-23Change ViewController#initInternal to #onInitDave Mankoff
Bug: 171472009 Test: manual Change-Id: Iddc6c0240486b0d3005216bba0c40bfb481b94b3
2020-10-22Add initInternal to ViewController.Dave Mankoff
ViewController's init method was not ideal to override. On the one hand, if you put a call super.init() first your onViewAttach method is called before you're subclass's init. Further, if you put your own code befer super.init(), you are still left with the problem that your init is not automatically idempotent, and multiple calls to #init() could result in multiple executions of your code unless you handle it yourself. With this change, #initInternal() is introduced, giving ViewControllers a place to put their run-once code such that it runs before any view-attachment callbacks are fired. Fixes: 171472009 Test: manual Change-Id: I2e284024c82e3f7c7b6f29f22a1ffa3c8aae9fcb
2020-09-2410/N Ensure KeyguardSecurityContainer always has CallbackDave Mankoff
This passes the SecurityCallback directly into the KeyguardSecurityContainer's constructor, rather than setting it during on-attach. Fixes: 169231892 Test: atest SystemUITests && manual Change-Id: Ia9adf399e299768b3b8a70822cfda662a54d803b
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-24Revert^2 "6/N Add Controller for KeyguardPatternView"Dave Mankoff
87f6d21e679af9f783777d21f08c46f8bcaf04c0 Change-Id: Id01e3ba154a6fe1d73f720b9389920dad60332ac
2020-09-24Revert^2 "5/N Add KeyguardSecurityViewFlipperController."Dave Mankoff
612c5d78c418ff33b36a19a7911e4279a26bcf9b Change-Id: Ic51f3c2dd7d49832927393df9831d956bfa45763
2020-09-24Revert^2 "4/N Setup Controller fo KeyguardSecurityContainer."Dave Mankoff
0d6a9012a73a2d999d52aaefca0a6ad52322db31 Change-Id: I881bbcdc63fcbafa8966064cccb7ce1edc710062
2020-09-22Revert "4/N Setup Controller fo KeyguardSecurityContainer."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: I7683b2234b601032ee606fbaabd474c5e2f6e989 Fixes: 169081305 Fixes: 169020145
2020-09-22Revert "5/N Add KeyguardSecurityViewFlipperController."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: I5cbe04c0cfb1c081fbf2e9958cb22dca3e4d80ad Fixes: 169081305 Fixes: 169020145
2020-09-22Revert "6/N Add Controller for KeyguardPatternView"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: I11dff38ad9c36e0de5eec8f6e8662a173e1191cc Fixes: 169081305 Fixes: 169020145
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-09-166/N Add Controller for KeyguardPatternViewDave Mankoff
Test: manual && atest SystemUITests Bug: 166448040 Change-Id: I90ab99b2f241e21fdfcaeefb2e9443a1d3f2c9be
2020-09-165/N Add KeyguardSecurityViewFlipperController.Dave Mankoff
Adds a Controller for KeyguardSecurityViewFlipper. Test: atest SystemUITests && manual Change-Id: Iecf265744a385efb7a9ab32a29b90c22054a4c84
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-09-083/N Use KeyguardSecurityContainerController in KHVC.Dave Mankoff
Use the KeyguardSecurityContainerController in the KeyguardHostViewController instead of the view directly. This actually cleans up KeyguardHostView quite a bit, with all lot of its business logic moved over to its view. The KeyguardSecurityContainerController doesn't do much except to proxy through calls to its view for now. Bug: 166448040 Test: atest SystemUITests && manual Change-Id: I96a27b673c4579983bb07b7fb7ef321a022f0f65
2020-09-082/N Use KeyguardHostViewController in KeyguardBouncer.Dave Mankoff
This mostly proxies existing calls through to the view. A few exceptions were made where it was obvious what to change. Also, make ViewController take a View type to streamling initialization a bit more. Bug: 166448040 Test: atest SystemUITests && manual. Change-Id: If849ff57c4b8462e07cc9a4b0546fe7d2a6a0c0a
2020-09-081/N Add Controllers for most KeyguardBouncer related views.Dave Mankoff
This adds Controllers to most of the KeyguardBouncer related views, though it does not move much (or any) functionality into them. This is the first step of a few to get View Injection out of the KeyguardMessageArea. The CL was growing large, and I wanted to find a good check-in point before continuing. I also added a "ViewController" utility class in this CL that simplifies some of the repetetive work I've been finding myself writing when implementing other Controllers. It is intentionally left simple, existing only to hook into view lifecycle events. More work to follow. Bug: 166448040 Test: manual && atest SystemUITests Change-Id: Ie59f62e97d979fb753e4a103d37ceca02e327238