Introduce NotificationRowContentBinder interface which adds a layer of
abstraction for the underlying binding implementation. Any implementing
class is basically responsible for taking in certain bind parameters and
binding the appropriate content views. This allows us to more easily
shift out the underlying implementation (i.e. whether its asynchronous
or not, whether we use remote views or not).
Currently, NotificationContentInflater concretely implements this by
creating and using the remote views provided in the notification and
asynchronously inflating/applying it.
Bug: 145749521
Test: atest SystemUITests
Change-Id: Ib03aafe9b4322f0625a4a2d5403423a93ea0d9dc
NotificationContentInflater's sole responsibility should be to provide
an API to inflate views based off the inflation parameters set on it.
Currently, this is violated by several setters that automatically
trigger inflations and its secondary role as the inflation flag source
of truth. This blurs the class's responsibility and makes it harder to
use, so we move it out.
Right now, most of this control logic simply went one level up to
ExpandableNotificationRow which realistically also isn't where it should
be ultimately. However, this is the most reasonable place for it to live
in the interim while we slowly migrate inflation/bind logic out of
ExpandableNotificaitonRow piece by piece.
Bug: 145749521
Test: atest SystemUITests
Test: smoke test
Change-Id: Ia51a6db667f0aca5b410ab7f769d061f8e9a617e
This actually begins the process of deprecation and removing
UiOffloadThread in favor of using Executors directly.
This CL hits the easiest spots in the code. There are a few
more remaining calls that should be in their own independent CLs.
Bug: 146567476
Test: atest SystemUITests
Change-Id: I2542cc61653f330a1931b15a57e3b7c77d18e2e6
- Remove hidden methods from SystemClock (we shouldn't be using them
anyway).
- Change FakeSystemClock to keep all of its members consistent with one
another.
- Change FakeSystemClock to only be able to move forward in time
- Simplify listener interface for FakeSystemClock
Test: atest
Change-Id: Idd42c03a3f7b992a4c1b4a626f3ad66f457e2d89
If there are displays marked private that belong to other
processes, it doesn't make sense for systemui to be aware of
them.
Bug: 146566787
Test: Multi-display CTS tests pass
Change-Id: I8f6c3e3159bb008ba451cd280ee379f313e0629a
Set the cutout mode of the magnified window to
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES,
then this window is allowed to extend into the
cutout areas on the short edges of the screen.
Bug: 145252526
Test: manual test
Change-Id: I7952bd8e0069994d90d3ea207095c827c33c06be
- Remove the remote animation definition when the associated process dies
- Also expose method to unregister any registered animation defs
Bug: 139137636
Test: Kill launcher, ensure the remote animation ref is removed
Change-Id: Ia38d037397703221c17c8258ec1a245055d5896d
Also included in this CL
- Cleanup all bounds calculation in PinnedStackController
- Move PipSnapAlgorithm to SysUI
Bug: 139016833
Bug: 139016576
Bug: 145133340
Test: atest PinnedStackTests
Test: atest MultiDisplayActivityLaunchTest
Test: atest MultiDisplaySystemDecorationTests
Change-Id: Ifa0621a1cb69e76498e020aef7d8fa815df4ce48
Pulls screenshot notification management into its own class rather
than having notifications handled in SaveImageInBackgroundTask.
(Most of) the notifications code is no longer relevant for the new
corner flow.
Bug: 137153302
Test: manual -- no user-visible changes; tested that flow remains
the same in both old and new versions
Change-Id: I9cdf900f867776d97a339ea65f21e893efc4645e
It was only called in StatusBar so that StatusBar could pass itself in.
Instead, inject StatusBar directly (as an Optional).
If we ever want a different implementation, we can handle that in the
future, but right now, StatusBar was the only one ever set.
Bug: 141882822
Test: atest SystemUITests
Change-Id: Ia23b8f678ea2ac0eb4e8114f700bf703f48740e7
This CL also renames to have android.telephony prefix for
one of the intents used internally. Also suppresses the lint
errors for keeping android.intent.* which is needed for app
compatiblily as 3rd party may have hardcoded in their manifest.
Bug: 146240041
Test: Build
Change-Id: Ib3e786b73af614d5ef0d8cf3e5a6642273060f68
Use a controller to monitor KEY_SETUP_WIZARD_IN_PROGRESS and USER_SETUP_COMPLETE
flags to know when to set CarSysUI bars in an unprovisioned state and prevent
interactions with notification shade.
Bug: 145616123
Test: Manual
Change-Id: Ie035f049e3e9e7cb411fc9553a20e4c09078c121