Commit Graph

399 Commits

Author SHA1 Message Date
Michael Mikhail
ca9d7ae4cc Adding isFalseLongTap method
Adds isFalseLongTap method and makes an absract class for SingleTap and
LongTap as they only differ in touch slop.

Bug: 241487855
Test: atest BrightLineClassifierTest
Test: atest BrightLineFalsingManagerTest
Change-Id: Ia606afe2ebe5c454bcc74294210ced52f63e33ef
2022-11-03 23:04:41 +00:00
Beverly
9b7626dec6 Add historical logs to AnimatableClockView
adb shell dumpsys activity service com.android.systemui/.SystemUIService
dependency DumpController KeyguardClockLog

Test: see logs in sysui dumpsys
Bug: 222260948
Change-Id: Ie668c7d85ad4278500253d20567eccaf64b78d92
2022-10-24 13:46:44 +00:00
Jamie Garside
63322e05fb Merge "Add large screen clock motion - method 2." into tm-qpr-dev 2022-10-21 14:57:42 +00:00
Jamie Garside
9ac8c9a74d Add large screen clock motion - method 2.
When the clock moves on a large screen (e.g. when locking/unlocking the
device), this adds a subtle offset for each digit of the clock.

This hooks a new transition in to the existing clock move transition,
which just forwards progress through to the actual clock. This also adds
a feature flag (210) to enable/disable this, since it needs a little
more polish yet.

As above, this needs more polish (tweaking the time and/or easing), but
this at least gets something moving to start with :).

Bug: 199051139
Test: Manually verified.
Change-Id: Icec0bcfdb431d24b9405c5dfe8993016f687cac5
Merged-In: Icec0bcfdb431d24b9405c5dfe8993016f687cac5
2022-10-21 09:41:35 +00:00
Beverly
1666e7cdf8 Move LogBuffer to sysui/plugins
Consequently, RingBuffer is also moved to
SysUI/plugins

Test: builds, logs still work (see dumpsys)
Test: atest SystemUITests
Bug: 253490717
Change-Id: I91e3ef3ebdc6a2d929b2c1ae8ef158aeffa4c733
Merged-In: I91e3ef3ebdc6a2d929b2c1ae8ef158aeffa4c733
2022-10-19 13:42:03 +00:00
Hawkwood Glazier
883ecccdfc Merge "Seperate clockface specific callbacks" into tm-qpr-dev 2022-10-11 15:05:48 +00:00
Hawkwood Glazier
edd7822744 Seperate clockface specific callbacks
This change cleans up the Clock interfaces a bit by seperating some of
the interface methods and passing darkness data in to each clock face
seperately.

Test: Manually checked existing clock on device. Some unit tests.
Bug: 229771520
Change-Id: I8fee1c6c9bfff3a970f8333c5d5c3940f797dc28
2022-10-07 18:00:03 +00:00
YoungJoon Yang
124e9c81a9 Remove the default impl of setTriggerBack
Bug: 247883311
Test: build success
Change-Id: I9cd535e84dc1eea40617485a5deb2744c3451e9b
2022-10-07 08:39:01 +00:00
Shan Huang
28f630c97e Add setTriggerBack interface to BackCallback.
This allows the back arrow to report back trigger state to BackAnimation
as the gesture is going on. The trigger state might be included in the
future back progress API.

Bug: b/238475284
Test: Manual for now, because the current back arrow doesn't have tests
unfortunately, and will be deprecated soon. We should add tests when we productionize the
arrow prototype.

Change-Id: Idcbc2244d942788cd18a07ece252b0e7b6ef849a
2022-09-20 23:50:54 +00:00
Beverly
dcd012b202 Wakeup display on taps before entering true AoD
In this transition state, the device is not technically
pulsing, but it is Dozing. The primary difference
is that the display state is the display is still ON
(not DISPLAY_STATE_DOZE) and the DozeSensor wake gestures
aren't registered yet.

Because isPulsing=false during this transition, instead of checking
isPulsing, check isDozing instead. Only touches when the display
is ON get sent through the NotificationShadeWindowViewController =>
PulsingGestureListener, so the DozeSensors will still handle the
wakeups that aren't fake AoD2 (including both pulsing + transition
period).

This CL:
 -  updates the PulsingGestureListener to only check
    the falsing manager on the ACTION_UP event of the single tap
    and double tap gesture. The FalsingManager only works if checked
    right after the action occurred. Previously, we'd check double
    taps on the double tap's ACTION_DOWN.
  - allows the FalsingManager to analyze taps from the NotificationPanel
    while Dozing, as to include the taps when the device is
    transitioning to AoD. When the device enters the display state DOZE,
    taps will no longer be sent to the NotificationPanel.
  - removes the vibration when DOZING that goes along with the falsing manager's
    feedback when an additional tap is required. if the device is
    dozing, its likely the device may be in the pocket so there's no
    reason to buzz.
Test: manual
  1. Enable AoD
  2. Power off display
  3. Tap display right after power off
  4. Observe: device wakes up to LS
Test: manual
  1. Disable AoD
  2. Send a delayed (5000ms) high-priority notification
  3. Screen off
  4. When the notification shows, tap the screen
  5. Observe: device wakes up to LS
Test: atest PulsingGestureListenerTest NotificationPanelViewControllerTest
Fixes: 246722709
Bug: 244659326
Bug: 242125976

Change-Id: I1330f2c87482d8bc743a61d652d245fd9b4c69a0
2022-09-15 19:33:11 +00:00
Alex Florescu
d9ef4d8ed7 Merge "[Large screens][Motion] Improve expansion timing on lockscreen" into tm-qpr-dev 2022-09-14 12:22:01 +00:00
Christian Göllner
80ab360628 [Large screens][Motion] Improve expansion timing on lockscreen
- Adds more xml resource configs to be able to more precisely control
  the expansion transition:
  - QS transition start delay
  - QS squish transition distance
  - QS squish transition start fraction
- On split shade:
  - Fades in notifications scrim later
  - Fades in QS earlier
  - QS squshiness starts at 0.5 instead of 0
- On large screen portrait:
  - Fades in QS and notifications only after the behind scrim finished
    fading in
  - QS squshiness starts at 0.5 instead of 0

Change-Id: Id0941d11fe194c8be74f6101cf6f9f7d22888fc9
Test: QSFragmentTest.java
Test: NotificationPanelViewControllerTest.java
Test: ScrimControllerTest.java
Test: LockscreenShadeQsTransitionControllerTest.kt
Test: LockscreenShadeTransitionControllerTest.kt
Test: Manually
Bug: 239904136
(cherry picked from commit ae32ffdaed)
2022-09-13 14:33:42 +00:00
Fabian Kozynski
c30c4e1412 Fade out/in header with customizer in/out
As the QSPanel doesn't reach the top of the screen, the
LargeScreenShadeHeader peeks out from behind the Edit screen
in certain configurations. In order to hide it, we fade it out/in
together with the circular reveal.

Test: manual
Test: atest NotificationQSContainerControllerTest
Test: atest LargeScreenShadeHeaderControllerTest
Test: atest LargeScreenShadeHeaderControllerCombinedTest
Fixes: 244455245
Change-Id: Ie8b8fb07b28e18b9620a948fbb6589394c4224d6
2022-09-13 10:19:59 -04:00
Grace
a724e0b753 [DO NOT MERGE] Update DefaultClockProvider colors
This is largely a cherry-pick of change
I6b32776dac1853eeab87c2a65da69478e4da5b75 but with
some notable changes to accomadate existing code
differences in tm-qpr-dev.

 - We use a boolean instead of an enum for clock region
   darkness as the enum is in a different place in tm-qpr-dev.
 - We clean up some of the initialization code in
   ClockEventController to prevent testing issues and provide
   a dependency injection point to the screenshot test.
 - Pull the clock color setting from the theme when region
   sampling is disabled instead of defaulting to always dark.

Test: Manually validated colors matched reference images on
light and dark backgrounds with the region sampling feature
both enabled and disabled.

Bug: 229771520
Change-Id: I7906850b5de7f512f55e47e1122dfaacbc9c9406
2022-08-31 22:27:05 +00:00
Grace
417feefd5f [DO NOT MERGE] Moving Text Protection to Clock Event Controller
This change moves text protection from the Animatable Clock Controller
to the Clock Event Controller.

Bug: 202758428
Fixes: 241260493
Test: atest ClockEventControllerTest
Change-Id: I33b8f69c1a5b7b915bb020be16593ef68c46281d
Merged-In: I33b8f69c1a5b7b915bb020be16593ef68c46281d
2022-08-31 22:27:05 +00:00
Hawkwood Glazier
843cd5ea89 [DO NOT MERGE] Revert "[DO NOT MERGE]Revert "Migrate KeyguardClockSwitch to new..."
Revert "[DO NOT MERGE]Revert "Expose the clock version of google..."

Revert "[DO NOT MERGE]Revert "Changes to SystemUIGoogle to suppo..."

Revert submission 19508951-revert-19451291-cherrypick-clock_migration-tvip0m638i-BKWSUCNJAV

Reason for revert: Double Revert w/ fixes
Reverted Changes:
Iccd8d2e19:[DO NOT MERGE]Revert "Add clock version of google-...
I432d3d814:[DO NOT MERGE]Revert "Migrate KeyguardClockSwitch ...
Ifd0aa59df:[DO NOT MERGE]Revert "Expose the clock version of ...
I9a6ca6349:[DO NOT MERGE]Revert "Changes to SystemUIGoogle to...

To minimize merge issues, this topic consists of just cherry-picks from
master. Fixes for bugs are provided as downstream commits and will be
merged back to master as those bugs exist there as well. The commits
in this topic weren't tested in isolation beyond automated testing.

Additionally, I've updated the ktfmt exclude list to include new files
from this cherry-pick instead of reformatting those files.

Test: Screenshot test and manually validated each downstream fix mostly by
comparing reference images from known good builds to test builds.

Change-Id: Iff1d0ee8c6d09c77185be1ca5bbbe1aa5870e0c7
2022-08-31 22:26:07 +00:00
Beverly
0ad8657ad7 Add falsing protection to the pulsing state
Prox-gate the tap and double tap to wake gestures
from pulsing/AoD2.

Enable FalsingCollector logs:
  adb shell setprop log.tag.FalsingCollector DEBUG

Test: manually trigger quickpickup (or receive a notification on AoD),
  cover the prox sensor, and then tap the screen - see device won't wake up
Test: atest NotificationShadeWindowViewControllerTest BrightLineFalsingManagerTest PulsingGestureListenerTest
Fixes: 242125976
Change-Id: I520df509b7804d765807477968257c94f55ef634
2022-08-26 12:33:22 +00:00
Hawkwood Glazier
23535e29d1 [DO NOT MERGE]Revert "Migrate KeyguardClockSwitch to new shared Clock library"
Revert "Expose the clock version of google-sans"

Revert "Changes to SystemUIGoogle to support clock migration"

Revert submission 19451291-cherrypick-clock_migration-tvip0m638i

Reason for revert: b/241084042
Reverted Changes:
Ia053aaec6:Migrate KeyguardClockSwitch to new shared Clock li...
Ia3e067b93:Changes to SystemUIGoogle to support clock migrati...
I5dbf01a83:Add clock version of google-sans
Ia654d4f41:Expose the clock version of google-sans

Change-Id: I432d3d814c85b9ba20bbb7a88d2e52bd2337c10c
2022-08-03 15:22:58 +02:00
Hawkwood Glazier
a19e59d717 Migrate KeyguardClockSwitch to new shared Clock library
This change modifies the KeyguardClockSwitch and Controller
to get clocks from the ClockRegistry. Since the only clock
available from the registry is the default one, this should
have no user-facing changes, and is intended only to update
the relevant codepaths.

Bug: 229771520
Test: Manual and Automated
Change-Id: Ia053aaec6987e00de980388a6c024d8bcf5203a2
(cherry picked from commit c8b33ca43f)
Merged-In: Ia053aaec6987e00de980388a6c024d8bcf5203a2
2022-07-28 14:53:21 +00:00
Hawkwood Glazier
44fa7428e7 Move plugin definition to plugin library
Bug: 229771520
Test: No new tests, just a package change
Change-Id: I591c337f8f6062befdb2a08f61a1456c5af04be3
(cherry picked from commit 14f67f4d74)
Merged-In: I591c337f8f6062befdb2a08f61a1456c5af04be3
2022-07-27 22:24:31 +00:00
Hawkwood Glazier
b2f7ee84cf Move ClockRegistry to SystemUISharedLib
Bug: 229771520
Test: Automated
Change-Id: I7e921038a803188eee4cc437b7076db97ecdd853
(cherry picked from commit 1323984dac)
Merged-In: I7e921038a803188eee4cc437b7076db97ecdd853
2022-07-19 15:25:53 +00:00
Hawkwood Glazier
d4e790272d Initial ClockPlugin interfaces and ClockRegistry functions
Bug: 229771520
Test: Automated
Change-Id: I2bc8be56f9fb91734aa7d430270c3e9ad7328ed0
(cherry picked from commit c225417205)
Merged-In: I2bc8be56f9fb91734aa7d430270c3e9ad7328ed0
2022-07-19 15:20:44 +00:00
Michał Brzeziński
3a98dbf919 Merge "1/2 Making bouncer shift on double tap when user chooser is visible" into tm-qpr-dev 2022-06-22 16:56:06 +00:00
Michal Brzezinski
fd8aa55ee3 1/2 Making bouncer shift on double tap when user chooser is visible
This change makes bouncer/security swap sides with multi user view without proper animation. Adding animation will come in follow up CL.
The main change is extracting double tap and shift logic to SidedSecurityMode superclass so both "one handed mode" and "multi user mode" can inherit from it and behave in a similar way.

Bug: 220872694
Test: KeyguardSecurityContainerTest
Test: open bouncer with user chooser on the side, double tap on the other side of the bouncer, see views swap positions
Change-Id: Ic7e32412edd4c25dde709db0544e60ec9ab951e5
2022-06-21 14:49:54 -04:00
Chandru
3871031822 Update smart space views whenever the keyguard bypass state changes.
This is used for showing the media info in the smart space on the lockscreen, when face unlock lockscreen bypass is enabled.

Current behavior: if media is playing and user taps to wake up screen while not looking at the screen, the media controls (through notification) are not visible. There is no indication that there is media currently playing.

New behavior: if media is playing and user taps to wake up screen while not looking at the screen, the smart space shows the media info. (media controls are still hidden and not affected by this change).

Fixes: 230669390
Test: atest com.android.systemui.statusbar.lockscreen
Change-Id: I91e705261cb6e48107103666a29a1b2ec61beeca
2022-06-14 13:32:18 +00:00
Josh Tsuji
2274df1efb Merge "Offset bounds by card top padding to align lockscreen/launcher smartspaces." into tm-dev 2022-05-23 15:02:17 +00:00
Fabian Kozynski
5834bd57e7 Merge "Do not use mStaleListener if tile is listening" into tm-dev 2022-05-18 14:09:44 +00:00
Fabian Kozynski
cedca59a19 Do not use mStaleListener if tile is listening
In that case, just refresh the tile directly. This will schedule a new
stale state.

Additionally, make sure that QQS/QS are only listening when QS is
actually visible.

Test: atest SystemUITestsi
Test: QSLog
Fixes: 232427992

Change-Id: I44d8f23f1ceea37bcd479ee23c7cdd4b0c1c14e0
2022-05-16 11:53:22 -04:00
Justin Weir
f738e2463d Move Volume control Binder calls to worker thread
Pushed the binder calls down the call stack to where it's on the worker
thread instead of the main thread.

Bug: 226354720
Test: Ran all the tests and verified that Binder calls are on worker threads
Change-Id: I05c89b5057529a492b0e33a9198d1207609245da
2022-05-16 13:15:30 +00:00
Josh Tsuji
209f3c92b8 Offset bounds by card top padding to align lockscreen/launcher smartspaces.
This fixes the issue where the smartspace jumps
around when an alarm is set, and the lockscreen
smartspace has three text lines while launcher's
has two.

Bug: 232413750
Test: unlock with/without alarm set
Change-Id: Iaca7d62779f9f45b94833272d853bbfc2cbc42ae
2022-05-12 16:50:24 +00:00
Xiaowen Lei
13cb74291f Add logging for Smart Space on Dream surface.
Bug: 227613246
Fix: 227613246
Test: manually on device - SS events logged same as for lockscreen.
Note: clicks are logged for reminder card but not for weather card,
which is the same behavior as for lockscreen.
Test: atest DreamSmartspaceControllerTest

Change-Id: If4931fc9da0688cfe63e7519713f4107d8d001c5
2022-04-22 00:20:12 +00:00
Dave Mankoff
22149274f9 Merge "Remove FileDescriptor from systemui.Dumpable." into tm-dev 2022-04-07 20:19:05 +00:00
Dave Mankoff
96985e5212 Remove FileDescriptor from systemui.Dumpable.
This is the first step in moving over to the new public
android.util.Dumpable api.

Bug: 217567642
Test: m SystemUI
Merged-In: Ibaebcfb2c6c5326d0c45b8c72d868c76655d89a0
Change-Id: Ibaebcfb2c6c5326d0c45b8c72d868c76655d89a0
2022-04-05 20:48:27 +00:00
Beverly Tai
0340a16437 Merge "Hide manage & clear affordances on transition to KG" into tm-dev 2022-04-04 18:15:24 +00:00
Beverly
b76c8250da Hide manage & clear affordances on transition to KG
We don't want to show the footer view that contains the
"Manage" and "Clear all" affordances in the notification shade
when the device is transitioning to the keyguard.

Test: manual
Fixes: 219680200
Change-Id: I1611589759e67d134ab957eee57ae865cfb64856
2022-04-01 20:21:23 +00:00
Fabian Kozynski
b4b1692357 Add better a11y support in QS
* Add ACTION_PAGE_LEFT/RIGHT to PagedTileLayout and proper focus after
  changing pages.
* Add CollectionInfo to TileLayout and CollectionItemInfo to
  QSTileViewImpl to indicate the position of the currently focused tile.
* Properly use ACTION_COLLAPSE/EXPAND in QSPanel/QuickQSPanel so the
  proper announcement is made, as well as the proper action is provided
  in the contextual menu.

Test: manual
Test: atest com.android.systemui.qs
Bug: 204726862
Change-Id: I9bb085002c99e75ab0bb91f287ded62793b932bb
2022-03-31 10:42:36 -04:00
Fabian Kozynski
d1496fc15c Merge "Fix refresh tile when tile is already listening" into tm-dev 2022-03-25 19:18:52 +00:00
Fabian Kozynski
0ca203c23c Fix refresh tile when tile is already listening
Calling refreshTile externally on a tile that is already listening can
have unexpected side effects, for example if the tile is tracking a user
interaction (e.g. turning on bt).

In particular, QSPanelController should not call it for tiles that are already
listening. This is the case for tiles that are also in QQS.

Test: manual, toggle bt ON in QQS and expand quickly.
Test: atest com.android.systemui.qs
Fixes: 225404999
Change-Id: Id0559ad95ecf6a28475abbdd8b989c745badd0b8
2022-03-24 10:44:09 -04:00
Christian Göllner
752f82ea9d [Motion] Split-shade transition on LS: add an overshoot/overscroll effect
- Applies over scroll to QS, Notifications Scrim, and NSSL instead of only NSSL
- Extracts the over scroll logic out of NSSL and into its own class adds tests

Fixes: 222034650
Test: Unit tests + Manually
Change-Id: I7e9363c3003c92bfe850b86cc9b0465b0d33cdc3
2022-03-24 10:05:42 +00:00
Matt Pietal
9fbefebbc9 Launch user switcher as SYSTEM
This switching activity should always be run as the system
user. Support specifying a UserHandle on activity transitions.

Fixes: 219638055
Test: manual, check user switching from multiple profiles
Change-Id: I4098481daeed2423ffac5023d101171e0b4cc84a
2022-03-16 18:19:33 +00:00
Nadav Bar
904975fd69 Integrate captions volume button with new CaptioningManager API
The code that checks for the captions service component will be removed
once the integration in the system captions side will happen.

Also cleans up the unused stream opt-out property.

Change-Id: I606f0d7a5319bbdc54b2e853fb70ea44ff9645a0
Bug: 221021539.
Bug: 136282740.
Test: Manually.
2022-02-23 18:04:18 +00:00
Winson Chung
352b68bfc6 Merge "Fix regression in handling of empty dark regions" 2022-02-15 04:48:24 +00:00
Winson Chung
a2078ca3d0 Fix regression in handling of empty dark regions
- Previously LightBarController calls setIconsDarkArea(null) to indicate
  to DarkIconDispatcherImpl to set mTintArea to null and dispatch
  accordingly, but DarkIconDispatcher.isInArea(<empty rect>) would return
  true, while the updated call to send an empty list would try to iterate
  the list and check isInArea() for each rect and return false otherwise.
  To mirror the old behavior, also return true by default if there is an
  empty list.

Bug: 219387839
Bug: 208717544
Test: Open an app with light bars and verify colors change
Test: atest SystemUITests


Change-Id: I265dddafb3ee7200837f8e013f92682344c080ef
2022-02-14 18:55:02 +00:00
TreeHugger Robot
4b665b9872 Merge "Modify the documentations for the UI template APIs" 2022-02-14 18:27:35 +00:00
TreeHugger Robot
444b42ef59 Merge "Remove QSDetail" 2022-02-11 14:28:00 +00:00
Fabian Kozynski
c292eff31f Remove QSDetail
Also remove related classes, calls, and resources that were used by QSDetail
and are no longer needed.

Test: atest SystemUITests
Test: TileService cts tests
Test: adb shell cmd statusbar expand-settings
Fixes: 198796184

Change-Id: Ib5c54f197d03794aca35d0305e3e62c7daedb23a
2022-02-10 16:17:00 -05:00
Cecilia
663abefa00 Modify the documentations for the UI template APIs
- Rename the classes to be less verbose;
- Add the template layout descriptions to its corresponding data
  classes;
- Documents for all getter/setter methods.

Fixes: 217554855
Test: atest CtsSmartspaceServiceTestCases
Change-Id: Id5abcea0210b19b40c96cc8183e439c8af95bf85
2022-02-10 20:24:57 +00:00
Winson Chung
6c5ebb36d8 Support multiple dark tint areas in status bar
- With ag/16678942 the system will now compute multiple appearance
  regions for all windows under the status bar, so we need to handle
  scenarios where multiple apps can create multiple dark tint areas

Bug: 208717544
Test: atest SystemUITests:LightBarControllerTest
Test: Install MultiAppeareanceRegionTest apk from b/208717544 and
      verify that that the multiple dark areas work in multiwindow
Change-Id: I0d8696f6b2fb7793ccbdcbfe7e2520fceb24e5ec
2022-02-10 17:36:47 +00:00
TreeHugger Robot
0891d4b390 Merge "Add all the Smartspace UI templates' corresponding data classes." 2022-01-28 05:43:15 +00:00
Cecilia
6927948dff Add all the Smartspace UI templates' corresponding data classes.
- SmartspaceDefaultUiTemplateData represents the data of a Smartspace
card with the default UI template;
- Other templates' data classes are all subclasses of
SmartspaceDefaultUiTemplateData;
- SmartspaceIcon and SmartspaceTapAction are the newly-added primitives.

More details in go/ss-launcher-templated-ui.

Test: tested locally
Bug:213926964,212650337
CTS-Coverage-Bug:214471292

Change-Id: I056c49e3db7060697be4a3a8f51358802f2610b0
2022-01-27 21:00:47 +00:00