summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
AgeCommit message (Collapse)Author
2022-03-15Merge SP2A.220305.013Haamed Gheibi
Bug: 220074017 Change-Id: Idfdd94e902f656ac65a2a75dfdd199f6f85ba472
2021-09-27Update clock burn-in so it doesn't clash with udpfsBeverly
* update the UDFPS icon burn-in parameters to be in pixels because we don't want display density to increase the position movement * when the clock is centered aligned, we want to make sure it doesn't overlap with the udfps icon Test: atest SystemUITests, manually update clock times with with DozeUi.BURN_IN_TESTING_ENABLED enabled and see clock doesn't interfere with the UDFPS icon. Fixes: 192423460 Change-Id: I6f95fe3ad763971b804129b517f4c98192ab3674 Merged-In: I6f95fe3ad763971b804129b517f4c98192ab3674
2021-07-13Remove keyguard state callback onViewDetached.Josh Tsuji
Fixes: 193411237 Test: atest SystemUITests Change-Id: I5ead61776e0cfaa80288ba9d0ea6385cbb77c966
2021-06-21Lockscreen spacing to UX specsMatt Pietal
Reduce spacing between smartspace and notification area. Remove concept of 'expanded clock position' from KeyguardClockPositionAlgorithm, as it was only used when content was vertically centered. Similarly, remove difference between bypass/non-bypass height as the two layouts now match. Fixes: 183008450 Fixes: 190831603 Test: atest KeyguardClockPositionAlgorithmTest Change-Id: Ie274e34eb61a876166c11e4f4fa3b9d95ef49888
2021-06-12Merge "Fix positioning bug in user switcher" into sc-devRajeev Kumar
2021-06-11KeyguardClockPositionAlgorithm Test updatesMatt Pietal
Remove the concept of a 'preferred clock y'... not in use anymore. Existing algo tests were designed around everything being centered on the screen and isn't relevant. Update to reflect everything being top-aligned. Fixes: 190849712 Test: atest KeyguardClockPositionAlgorithmTest Change-Id: I0a5fafb5ec36ffe6f98fdc6a44e46a65c821cc0c
2021-06-09Fix positioning bug in user switcherPeter Kalauskas
Introduces a new parameter to KeyguardVisibilityHelper to change whether or not it will attempt to adjust the Y coordinates of its view. Previously on the keyguard, if a PIN was set, the user switcher icon would move upwards each time the phone was unlocked until it was completely off the screen. Test: With config_keyguardUserSwitcher=true, and config_keyguard_user_switch_opens_qs_details=false, set a screen PIN, repeatedly unlock and lock device, ensure that user switcher icon remains in the same place Bug: 190351752 Change-Id: I4fec01dcc0ab39529ba2c7e74e4a5a13ac2d2cd8
2021-06-08Remove owner and logout views from KeyguardStatusViewBeverly
information is moved to the keyguard indication area Test: manual Fixes: 183708476 Change-Id: I95b229c71006c43aabf5147d1cc6f6c838b8cc85
2021-06-04Update time formatMatt Pietal
When notified of a change in format or a change in user, issue a call to update the time for both large/small clock. Fixes: 189900109 Test: atest KeyguardStatusViewControllerTest Change-Id: I5ccb55e74d26715fc5358bf9dcd95ff9257395bd
2021-06-01Merge "AOD/LS Clock fixes" into sc-devTreeHugger Robot
2021-06-01AOD/LS Clock fixesMatt Pietal
Smartspace shared element transitions are interferring with normal clock operation. Remove the offending lines until a proper fix can be put in Fixes: 189534613 Test: manual Change-Id: Ib4678c1405dff722e57048885d8c3c5fb878c954
2021-05-27Adds the ScreenOffAnimationController, which fixes multiple issues with ↵Josh Tsuji
unlocked screen off. This changes the screen off animation so that the controller directly animates the LightRevealScrim and the shade keyguard UI, rather then tying these to the dozeAmount. This makes it easier for us to manage/cancel these animations, such as during the camera launch gesture, since the various doze components update their state asynchronously. This approach also means that instead of actually changing everything to KEYGUARD as soon as the power button is pressed, we actually just show the LightRevealScrim and the shade's AOD UI. This results in far less jank. We then actually show the keyguard once the animation finishes or is cancelled. Bug: 169693662 Bug: 169739682 Bug: 181020504 Fixes: 185567665 Fixes: 189342687 Fixes: 185567665 Fixes: 183195436 Test: atest SystemUITests Test: trigger screen off and cancel it Test: trigger screen off and don't cancel it, make sure it wakes up fine Test: disable 'power button locks instantly' and make sure it doesn't lock the device, both when the animation finishes or when it's cancelled Test: press the power button twice in rapid succession Test: press the power button twice in slower succession about 200ms apart (which triggers the camera onWakingUp vs onFinishedGoingToSleep) Test: press the power button 5 times, make sure emergency gesture comes up Test: disable AOD, observe no screen off animation and lock functionality works Change-Id: I1c44304becdadfd37bab7fd81286a9702e5d6141
2021-05-17Adds the initial SmartSpace shared element transition!Josh Tsuji
To see this in action, enable the remote animation (adb shell setprop persist.wm.enable_remote_keyguard_animation 1) and enhanced SmartSpace (adb shell device_config put launcher ENABLE_SMARTSPACE_ENHANCED true). Also, set your lock mode to swipe or some sort of non-bypass biometrics, so you can swipe to unlock. KIs: - It looks pretty janky on a fast swipe - this is the same root cause as b/186847064 so will have the same fix - Launcher animates in with window-level animations (Launcher team is looking into helping) - Screen off animation is not yet implemented (this is for unlock only) Bug: 187025480 Test: unlock with every possible permutation of lock settings Change-Id: I8c186fe57132ebc9a0bc5e3d8785e753e72c3bf2
2021-05-14Implemented Lockscreen to shade transitionSelim Cinek
When dragging down on the lockscreen, we now pull down the quick settings while dragging instead of wating for the release Bug: 184946919 Test: atest SystemUITests Change-Id: Ib233282dd7ce4ba63ceab3e1b788aa164e88c8c0
2021-05-13Keyguard - Fix clock in occluded stateMatt Pietal
The status area (clock, smartspace) was not being shown after exiting an activity on the lockscreen. The y translation value was incorrect for the branch it was taking. Add a new check for occlusion, and use the correct transition when leaving this state. Fixes: 184188027 Test: manual (use emergency call button) Change-Id: I6fa34e55252ac8435031915a7e929711e7976fe2
2021-04-24A new shade pull down animationLucas Dupin
Test: manual Test: atest ScrimViewTest Test: atest ScrimControllerTest Bug: 185683835 Fixes: 184891403 Change-Id: I1c51f3dc0d8afe97457aea8712c4322ebbda6ae4
2021-04-12Update to latest UX margins for clock... and much moreMatt Pietal
Remove old style clocks and all related code. Begin unraveling code supporting multiple layouts. Migrate plugin small/big clock support to the new clock areas. Fixes: 184073275 Test: atest KeyguardClockSwitchTest KeyguardClockSwitchControllerTest Change-Id: I38dc2a6df6a710c6da23cbb17fac8d28f3b84764
2021-03-23Revert^2 "Remove Dependency.get from KeyguardStatusView."Dave Mankoff
3f652cb990b991552dfc7057e3b3552655f236c7 Change-Id: Idcd16ba8f1260dead0c0c2a1e60f13eceb57c1aa
2021-02-19AOD/LS - Move clock to startMatt Pietal
Move clock to the start, and move smartspace content below it. Recalibrate burn-in and fully support RTL layouts. Remove extra top margins. Bug: 172360102 Test: manual Change-Id: I2dc4300106c63095ae41f9407b2fe4c053017573
2021-02-18Revert "Remove Dependency.get from KeyguardStatusView."Alec Mouri
Revert submission 13536242-b179775696-depenency-get-keyguard Reason for revert: Candidate reversion for broken tests: b/180440298 Reverted Changes: I6d0271692:Add ViewController to CarrierText. I4d9a4a21f:Add Controller for Emergency Button. I4c76d99f9:Remove Dependency.get from KeyguardSliceTextView. I730593fcf:Add injection to ClockProvider. Ifbb93e624:Remove Dependency.get from KeyguardStatusView. I237215456:Remove final calls to Dependency.get from keyguard... Change-Id: Ic6d3e290592a146af71e728cef469faed5177b9a
2021-02-16Remove Dependency.get from KeyguardStatusView.Dave Mankoff
Bug: 179775696 Test: atest SystemUITests && manual Change-Id: Ifbb93e624d839d7506b45da2cabb4fcf8b0b75ff
2021-02-10New keyguard user switcherPeter Kalauskas
- Use ViewController for KeyguardUserSwitcher, name this KeyguardUserSwitcherController - Create KeyguardUserSwitcherListView. Separate view container and controller code. - Daggerize KeyguardUserSwitcherController - Move KeyguardUserSwitcher from NotificationsQuickSettingsContainer to NotificationPanelView - Hide clock and notification when keyguard user switcher is open - Show "End guest session" button when switcher is open and user is guest - Introduce listener for user switcher state - Change icon of guest when current so that it does not show exit icon - Disallow guest exit via user switcher list item - Propagate dark amount to keyguard user switcher - Updated styles Known issues: - If repeatedly pressing KEYCODE_POWER while switching between users, the clock will sometimes get stuck in INVISIBLE state: b/179930842 - Multiple StrictMode violations are still present: b/179913579 Test: atest com.android.keyguard Test: Build with config_keyguardUserSwitcher=false, enable multi-user, check that user icon is in the status bar but not on the keyguard above the clock Test: Build with config_keyguardUserSwitcher=true, check that user icon is visible on keyguard above the clock Test: When config_keyguardUserSwitcher=true, tap user icon to open keyguard user switcher, then open and close QS to verify that the keyguard user switcher closes Test: Check that user switcher is always open and visible on the lock screen when simple user switcher is enabled: adb shell settings put global lockscreenSimpleUserSwitcher 1 && adb shell stop && adb shell start Bug: 169783558 Change-Id: Iaea4eae358873ae80748ca3eb9329f22bb2bb2ef
2021-02-09Rotate keyguard indication messagesBeverly
In the new LS layout, we show the following messages in the keyguard bottom area instead of in the KeyguardStatusView: - Logout button - Owner information We also now show now playing as part of the rotating text on the lock screen. Bug: 178794517 Test: atest SystemUITest, manual Change-Id: I1a0a47e300d1f9e5fe11c17d143e5a8f0ad8af60
2021-01-21Adds the screen off animation!Josh Tsuji
The way this works is essentially: - We tell PowerManager we want to handle the screen off animation, like we do for the Lockscreen -> AOD transition - KeyguardViewMediator holds off on showing the activity lock screen, so that the underlying activity remains visible during the animation - The scrim animation plays normally, which results in the 'reveal' effect in reverse - We force the AOD views to full dozing, so that we can simply translate them in after a delay once the scrim has un-revealed the screen contents (demo video: https://drive.google.com/file/d/1cRjg22wpQuvn9FPugJSkIF-cEOfM2qXi/view?usp=sharing) Test: unlock/lock with no security Test: unlock/lock with PIN/password lock set Test: same, with face auth Test: use all security methods with/without notifications showing on lock screen Bug: 169693662 Change-Id: Ied66f11fc9820f2810cf931b1960041218d60b63
2020-12-03Update AOD/LS clockBeverly
- Update clock sizes (large clock = 200dp, small clock = 100dp) - Update clock weights (large = 100-400, small = 200-300) - Update clocks on time zone and time format changes (Settings > System > Date & Time) Test: manual, atest SystemUITests Bug: 170228350 Change-Id: I446a2625fdd776c15e744f1601b3ea0e2a873cf1
2020-12-01AOD - Scale large clock for burn-in protectionMatt Pietal
Scale the AOD large clock between [0.8, 1.0] in both x,y directions, in order to keep the clock centered. The large clock will still be shifted on the y-axis as well. Bug: 13129102 Test: manual, burn in tests Change-Id: I86235d39b199a1a10cfb40e474f1e1e58b9c11d8
2020-11-20Use logout button + owner for max # notifs calcBeverly
In the calculation for the max # notifications to show on the lock screen, take into consideration the height of the logout button and owner information. Test: atest SystemUITests, manual Bug: 170228350 Change-Id: Ia12c85df27b16d432608fef8a52eb0d4c9ff79ff
2020-11-17Update spacing/layout of LS clockBeverly
- Only use the burn-in offsets on AOD. This means the clock will be in a different position on LS compared to AOD. - Align the top of the KeyguardSliceView (smart space) with the top of the text of the clock (as opposed dto the top of the clock's view) - Decrease bottom padding on KeyguardSliceTextView so that the DND icon doesn't get cutoff when there's a large smart space info Test: atest SystemUITests, manual Bug: 170228350 Change-Id: I332300616e4218b6fcd24f837127a7eee487d4e7
2020-11-04AOD - Burn in adjustmentsMatt Pietal
Move both the clock and keyguard slice area towards the middle for x adjustments, and retain the current Y adjustments. Bug: 172360102 Test: follow burn in instructions here: /frameworks/base/packages/SystemUI/docs/clock-plugins.md Change-Id: Id22d777724bf9be58758b1a2b260a7933af8e999
2020-10-23Merge "Uncenter aod icons for new lockscreen"TreeHugger Robot
2020-10-23Uncenter aod icons for new lockscreenBeverly
Also moves setup of aod icons to KeyguardStatusViewController instead of through Status Bar => NotificationPanelViewController. To enable the new lockscreen (value = 0 is disabled, value = 1 is enabled): adb shell settings put global show_new_lockscreen <value> Test: atest NotificationIconControllerTest Test: atest SystemUITests Bug: 170228350 Change-Id: I93d19823620051e969e8790c8946bdc15a5ab379
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-10-19Add gradient clock to AOD/LS behind LS flagBeverly
Also updates "new lockscreen" smart space layout. Currently TimeBasedColorsClockController will change the TextClock's colors based on hardcoded times. To toggle on the new lockscreen: adb shell settings put global show_new_lockscreen 1 Test: atest KeyguardSliceViewTest Test: manual Bug: 170228350 Change-Id: Ib72b45aad34fe4483538a9094154d6c473910612
2020-10-16Add KeyguardStatusViewControllerBeverly
Refactor KeyguardStatusView so that it has a controller that NotificationPanelViewController can use to manipulate the view. This CL untangles some of the logic in KeyguardStatusView that should be in KeyguardClockSwitchController. No functionality changes. Test: atest KeyguardClockSwitchControllerTest Test: atest NotificationPanelViewTest Test: atest KeyguardStatusViewControllerTest Test: atest SystemUITests Change-Id: I52d0d887cb4ce734ec265b6357644ba1d1368460 Bug: 170228350