This change moves the calls in NotificationEntryManager to
NotificationData.Entry.createIcons() and .removeIcons() to
NotificationRowBinder.inflateViews() to encapsulate all the view
handling in the latter class (and so that we can eventually not create
those icon views right away).
Test: atest SystemUITests, manually
Change-Id: Ie515c85b81ce6ad5de607b83e8f242d7ae03326e
This change modifies the swipe handling logic in NotificationSwipeHelper
such that it doesn't attempt to snap to the "menu open" state when the
menu is zero width (i.e. it's snapping on a left-to-right gesture and
the menu is only enabled for right-to-left swipes). This prevents us
from getting in to a state where the menu was considered "open" when it
wasn't, which caused the next gesture to be handled incorrectly.
Change-Id: I3b78e95de7266e5a469637007ca78f7af2caab49
Fixes: 121077588
Test: manually
This change introduces the ForegroundServiceNotificationListener
component, which contains the logic formerly in
ForegroundServiceController for updating its state in response to
notification events. ForegroundServiceNotificationListener adds a
standard NotificationEntryListener to the NotificationEntryManager,
allowing us to remove the explicit calls from NotificationEntryManager;
splitting this out to its own class prevents us from introducing a
circular dependency since NotificationEntryManager still needs to use
the query methods on ForegroundServiceController.
Test: atest SystemUITests, manual
Change-Id: Iec72aa3a9fd90e3f0079db3b2a3c4f1882e59731
ShadeController is implemented by StatusBar, which is possible to be
swapped by OEMs via using config_statusBarComponent.
Bug: 122277074
Test: Compiles
Change-Id: Ia714405803a37deca9a694d07772e005902ab6bc
ForegroundServiceControllerImpl was the only implementation of
ForegroundServiceController; this change eliminates the interface so
that the class can be broken up into more granular components in a
future CL to help break circular dependencies. No functional changes.
Test: atest SystemUITests, manual
Change-Id: Iabe8ae1dbc42769d5b3e93ebe2249cdc5c3e4e77
This method always returned NotificationGutsManager::openGuts, and only
existed so that CarSystemUI could override it to disable long presses.
In this change we accomplish this by making
NotificationStackScrollLayout injectable and providing a named flag for
whether to enable long presses or not as a dependency. This means that
NotificationEntryManager is no longer involved in handling long presses,
and CarNotificationEntryManager no longer needs to exist.
Test: atest SystemUITests, manual
Change-Id: Iae78601fea498a37ed47ef9a114e50de1652b6a8
The docking will request a long time pulse. Allows the clock to
update time in real time.
Bug: 120464108
Test: atest SystemUITests
Change-Id: Iac251aa3e366020a61ba88ab374f0a5a0369177e
Fixing the use of the deprecated methods is already tracked by the
bug, there is no need to have additional build noise.
Bug: 121388507
Test: make -j SystemUI
Change-Id: I1c02e9244e34e29f7257c01e02444e021be69a82
Bug: 111461540
Fixes: 120157910
Test: Icons looks good
Test: Taps in gray area after authenticated/confirmed don't send errors
Test: Negative button isn't shown after state == AUTHENTICATED
Change-Id: I24f48aefbabb53ffbb1864679c50afb110efb71b
Previous nullcheck just caused another NPE. Actually checking the
null value and adding a test this time.
Bug: 122169343
Test: atest
Change-Id: I4acc055b8d5039ea65fded43526780be883eaf74
AutoHideController is a per-display controller and has following tasks:
1. Control all auto-hide logic in SystemUi
2. Update hide/unhide status to WMS
Bug: 117478341
Test: atest SystemUITests
Change-Id: I5066030c750f72e6e0b0d70cd377109458989c7d
By this CL, we could dispatch Callback to fragments on the specified
display. I also add some annotations for documenting.
TODO: 1. add tests for multi-display.
2. make registerStatusBar be an IStatusBar API to propagate the
information when a display is added or in the initial step.
3. Introduce AutoHideController
Test: atest SystemUiTests
Bug: 117478341
Change-Id: I864600f929c1d0c8aa39274f30c17b213b754d86
Since we don't have status bar on external displays, we need to saparate
the logic to make some animations or transitions just work on external
navigation bars. When we set System UI visibility on an external display,
we could make the flag only effect navigation bar. Also, it can simplify
StatusBar code by moving navigation bar related fields into
NavigationBarController.
Test: atest SystemUITests
Bug: 117478341
Change-Id: I1cdf61f6eeb2c377e04a073401efa0cdb45b65cd
We should eventually modify logic so entry can never be null.
Bug: 122169343
Test: Manual, SystemUITests
Change-Id: Ib4312b7ddff4c6b7bf35e2ea3d5462cfc12b1e11