History log of /frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6ea063eb5f1d4d7c6242915f378e68048ea51d70 19-Apr-2018 Beverly <beverlyt@google.com> Translate SystemUi NotifChannels on locale change

Register receiver outside of the on boot receiver

Test: manual
Change-Id: Id286647ffe68704f928ca55dcae14dadc4fa998d
Fixes: 64887866
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
70dcd00d4a8dd3fa52983121a8052c99e66368bf 29-Mar-2018 Beverly <beverlyt@google.com> System notif channels updated on locale change

- both System and SystemUi notification channels' names
change on locale update

Change-Id: I0d23fe9b008c608c54ac178a97c2f682aa46d954
Fixes: 64887866
Test: manual
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
dc2ddd7e3e1b6a4f3ecc24a0a05d17a4e89cef28 24-Jan-2018 Dan Sandler <dsandler@android.com> Add BinderProxy tracking code to SysUI.

Bug: 71353150
Test: runtest systemui
Change-Id: I48fbee833fb1c9e70c6efa8c0b232abbc340dce3
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
000cf5e06de6ac266467071b638d0b7039bf81db 10-Nov-2017 Adrian Roos <roosa@google.com> Display Cutout: Add emulation

Adds an overlay to SystemUI that draws an emulated
cutout in the bounding polygon that the window manager
supplies.

Bug: 65689439
Test: adb shell settings put global emulate_display_cutout 2
Change-Id: I91e6832d7e4594e995241d29d6f1ed0d918d59a0
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
61b37088337753a7e631579829040c5cae9d72c4 29-Nov-2017 yoshiki iguchi <yoshiki@google.com> Move list of SystemUI services to xml

Previously the services of SystemUI were defined in SystemUIApplication.

This patch moves the service list to res/values/config.xml. So that it
gets easier to customize services of SystemUI.

Bug: 63874929
Bug: 62602530
Test: Ran and confirmed SystemUI started without error

Change-Id: I7f0321c46e562288b2cad5201ae120c37e853908
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
f6e33b1b3330784ba7386d0c889d68f7f45bb1ae 15-Aug-2017 Dan Sandler <dsandler@android.com> Revert "Add plugin to swap out recents"

This reverts commit 0ea67d82e39ef4a2a1dfecd4796ab3e901cbc9e1.

Bug: 64345190
Change-Id: I353c064db7bfaf91e98b5fd0d3e7180381a1b2b8
Test: n/a
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
6e3461b67cae27a42a4d77fa277ba2d844ea0cde 11-Aug-2017 Fyodor Kupolov <fkupolov@google.com> Log timings for shutdown stages

Renamed BootTimingsTraceLog to TimingsTraceLog. It is now used for
boot and shutdown logging.

Added measurements for main stages of shutdown in the system server:
ShutdownTiming: SendShutdownBroadcast took to complete: 734ms
ShutdownTiming: ShutdownActivityManager took to complete: 203ms
ShutdownTiming: ShutdownPackageManager took to complete: 17ms
ShutdownTiming: ShutdownBt took to complete: 533ms
ShutdownTiming: ShutdownRadio took to complete: 534ms
ShutdownTiming: ShutdownNfc took to complete: 1536ms
ShutdownTiming: ShutdownRadios took to complete: 1538ms
ShutdownTiming: ShutdownStorageManager took to complete: 906ms
ShutdownTiming: SystemServerShutdown took to complete: 3918ms

Bug: 64569080
Test: shutdown/reboot and check logs
Change-Id: I636c045852cd1ed6be1c58af6608f70e95756389
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
ef15776aaf850777dfa7f640bcd3889855a01314 25-Jul-2017 Lucas Dupin <dupin@google.com> resolve merge conflicts of a1f64b0a9188 to oc-mr1-dev

Test: I solemnly swear I tested this conflict resolution.
Change-Id: Ic2395d055e1f27b186c3b87be5440dc410ee16a3
e17ce5286f2c25c2ce440b30f476e9e88a6d1e8e 18-Jul-2017 Lucas Dupin <dupin@google.com> Fix jank when switching themes

Turning overlays on and off takes time,
it also doesn't allow us to have fine control
over which view is using which theme.
Lock screen colors are now driven by themes.

Change-Id: Ie8860d00dbb0705ed76edf60a9d3030618dd21ca
Fixes: 63751714
Test: Visual. Set wallpapers, unlock.
Test: runtest -x packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java
Test: runtest -x tests/Internal/src/com/android/internal/colorextraction/ColorExtractorTest.java
Test: systrace
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
7f58322d51ad63a1282ec8ced0675ca25a4b400e 24-Jul-2017 Jorim Jaggi <jjaggi@google.com> Revert "Fix jank when switching themes"
am: 6498f96283

Change-Id: Ie5813f1c04a6db9d5ee291df764873900add5064
6498f962836ff75d55510fbe0d8ddfd3c5f5dc34 24-Jul-2017 Jorim Jaggi <jjaggi@google.com> Revert "Fix jank when switching themes"

This reverts commit e5d0b9dddbcd8e6be7725a89b82fb990db2dade7.

Fixes crashloop with lock pattern

Change-Id: I3721444c91e2be625c59ec3e6ba14f1080badc07
Fixes: 63980375
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
902ba7bab54bdf238eba516e5d65b78664a298a4 22-Jul-2017 Lucas Dupin <dupin@google.com> Merge "Fix jank when switching themes" into oc-dr1-dev
am: a74f575ff9

Change-Id: Ibc8fa59cfa6139b03aa7fb08361eb43331484be5
e5d0b9dddbcd8e6be7725a89b82fb990db2dade7 18-Jul-2017 Lucas Dupin <dupin@google.com> Fix jank when switching themes

Turning overlays on and off takes time,
it also doesn't allow us to have fine control
over which view is using which theme.
Lock screen colors are now driven by themes.

Change-Id: I4b5db6234cafebbe8eaa952781c038370a11488b
Fixes: 63751714
Test: Visual. Set wallpapers, unlock.
Test: runtest -x tests/Internal/src/com/android/internal/colorextraction/ColorExtractorTest.java
Test: systrace
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
daece35dc3c4192f62b7fe2eae2474fc57ea2591 28-Jun-2017 Jason Monk <jmonk@google.com> Merge "Add plugin to swap out recents" into oc-dr1-dev am: a69c03b6b1
am: 84510887b0

Change-Id: I5483d77315ae0db8c35e8535ea8e754908e3d235
0ea67d82e39ef4a2a1dfecd4796ab3e901cbc9e1 07-Jun-2017 Jason Monk <jmonk@google.com> Add plugin to swap out recents

Adds new mechanism for activities in sysui to be replaced by plugins
and allows that to happen for recents.

Test: runtest systemui
Change-Id: I8b570ce7c57484c58a52afe5e247d24ebfa0c57f
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
f3591359b9841a1571545a39b038802ce7ed77bb 24-Jun-2017 Fyodor Kupolov <fkupolov@google.com> Added boot time metrics for systemui

Logs will be used for boottime performance dashboard.

Test: device boots, SystemUIBootTiming records are logged
Bug: 38429582
Change-Id: I2e7b2fe3a38839880243a36b07fdb407a8f8c9d8
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7f 01-May-2017 Jason Monk <jmonk@google.com> Rounded corners support, off by default.

Test: runtest systemui
Bug: 33208650
Change-Id: I63e11e36268e277cc1c5e70651fa5248aa8b3fc0
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
be3235abcddbcab63e60184de416c6243697abb7 05-Apr-2017 Jason Monk <jmonk@google.com> Updates for QS DND tile

- Make detail panels not close when turned off
- Add auto-rule state for DND tile

Test: manual
Change-Id: I533cf0a27c54e84cd74ede72dcf10e2e5f9a070f
Fixes: 34765805
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
790e091bca1fe4dc2b4d71b35551378e7c303a0d 24-Mar-2017 Geoffrey Pitsch <gpitsch@google.com> Create NotificationChannels in SystemUI per-user

Fixes Screenshot notification when guest plus others.

Bug: 36516812
Test: runtest systemui
Change-Id: I0d851a28ba9b134afc02c72fc3684c1d0be25c41
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
2423c135076db6a5ecdfdc007031559f7e9261bb 22-Mar-2017 Winson Chung <winsonc@google.com> Merge "Removing per-user PiP component."
853c99a083dc6a96694373c48f427e4d3466d4a9 22-Mar-2017 Winson Chung <winsonc@google.com> Removing per-user PiP component.

- This was added in ag/923778 for TV, where the TV recents activity, which
is started per-user, needed to reference the PiP bounds to coordinate the
layout of the PiP UI in recents. As a result of that change, the PiP
manager for both phones and TV was being instantiated multiple times,
once for the primary user, and another for secondary/managed users. With
each instantiation of the PipManager, we were re-registering the input
consumer, and once the process was killed, the input consumer was not
being cleaned up correctly and it not longer was registered with the
primary SystemUI which drives the PiP.

As of ag/1964066, the TV recents code is removed, so we can now safely
remove the PipUI component for secondary users as well, ensuring only a
single PipManager/InputConsumerController instance.

This does not prevent PiP from working in secondary users, but only
leaves the input consumer and menu controller in the primary user's
SystemUI.
- Fix some crashes when interacting with the PiP in a secondary user,
all communication between the menu controller and the menu activity
should be done in a parcelable way as the menu activity runs per-user
- Adding exception when the PipUI component is not created for the primary
user
- Initial changes to dump input consumers in WM to be able to correlate
them with SysUI's state

Bug: 35792308
Test: Ensure PiP component is not started for secondary user, verify that
it still works on secondary users

Change-Id: I3df10860227498bc37799ad296f0a4b71b87d30e
Signed-off-by: Winson Chung <winsonc@google.com>
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
361915c727fc2ad137bfeed7ff74b3eadde96597 22-Mar-2017 Jason Monk <jmonk@google.com> Move global actions to sysui and add plugin interface

- Move default global actions ui to sysui
- Add fallback legacy interface in case sysui breaks
- Switch to fallback if sysui dies or isn't responding

Test: Long-press power
Change-Id: I943522611de5dbbee61e66c67cf3a56379091e97
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
d7937b348864d60472c5c8f700e748c97f596dff 15-Feb-2017 Jason Monk <jmonk@google.com> Merge "New system for versioning sysui plugins"
790442e4cd8106cf2c69d23ff185953b620b087a 13-Feb-2017 Jason Monk <jmonk@google.com> Tuner updates

Some UX updates to the tuner to feel better and align with settings
UX patterns.

Test: visual
Change-Id: I9c57194b9649c61e0d6d3f9e21a51d9c4a5c1286
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
9125068a991b24d27810b6392a562b32457b3f5d 06-Feb-2017 Adrian Roos <roosa@google.com> SysUiLeaks: Add GarbageMonitor

Adds a service for monitoring the amount of tracked garbage.
If it exceeds reasonable levels, a notification with a leak
report is posted.

Test: runtest systemui
Change-Id: Ib55281f2aac557743b97c46bc616688261c72e9c
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
5bec68fbea1a02d7debc2eeeaf01b9478de216e5 09-Feb-2017 Jason Monk <jmonk@google.com> New system for versioning sysui plugins

Use annotations to handle the multi-dimensionalness of interface
versions, but still maintain compile time inclusion of current
versions.

Test: runtest systemui
Change-Id: I0789a72112cf6630a6406f76020071c8a6d9e24c
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
421a9410b462770544c6ae9a554542fa2fe1acb1 06-Feb-2017 Jason Monk <jmonk@google.com> SysUI: Add method for plugins to keep status bar full screen

Lots of things detect overlays these days (installing apps) and the
only way to avoid the problems associated with this is to live in
the status bar window. So allow plugins to hold the window open
when they want to so they can have overlays be in that.

Move StatusBarWindowManager to Dependency to make things easier
as well.

Test: Install the example plugin, test can access QS and interact
with apps

Change-Id: Ib2288bf56704960847217bad01a480ab407e0ffe
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
0c7592ffacd21c52f2fb30313b56dd9b5e9bf6f4 06-Feb-2017 Winson Chung <winsonc@google.com> Fixing crash when fetching SysUI components for secondary user.

Bug: 35028456
Test: Manual, launch the secondary user and try to enter recents.
Change-Id: I16c21b0f8222f885070550c25615be6b5dfa5b4c
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
de850bbcaa61c1874b803f2086443febbafd81a4 02-Feb-2017 Jason Monk <jmonk@google.com> Fix leaks in sysui

Add support for testing for PluginManager and TunerService leaks
and add tests for the known leaks and fix them. Also port PluginManager
and TunerService to Dependency to make them easier to handle in
tests.

Test: runtest systemui
Change-Id: I5642539ee24dd72f802905106decd0c87b41b4eb
Fixes: 34846972
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
2a6ea9c2a1b52b0386270ec73e1e6d6a9b614a34 26-Jan-2017 Jason Monk <jmonk@google.com> Delete BaseStatusBar

It is a relic of a more complex time, but has passed out of all
knowledge for too long.

Test: manual testing on phones and TV
Change-Id: I62a15d9413ea4bda3ac82bf6f7d22c096e2c1cdc
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
8e032e15e6b1b6a2f44fd3d5063ee83f45d71189 25-Jan-2017 Dan Sandler <dsandler@android.com> Notification Channels come to SystemUI's own notifications.

There are five channels at present:
ALERTS - low battery etc.
SCREENSHOTS - progress & result
SECURITY - notifications hidden due to policy
STORAGE - disk low
STATUS - basically everything else

The importance for each channel should match the legacy
priority of the notifications it carries.

Bug: 34250937
Test: runtest systemui
Change-Id: I5915ca453258caea63b0d9bd756893db05e8d600
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
20ff3f9255c86a3747aa55746788d4bde1d12753 09-Jan-2017 Jason Monk <jmonk@google.com> SysUI fragments: Integrate new support for constructing

Use a new system for constructing fragments so they can be swapped
out in place maintaining state. This will allow easier integration
with plugin lifecycle as parents who have child plugin fragments
can depend on the class existing and won't have to listen to
the lifecycle.

Test: runtest systemui
Change-Id: I517f4ce3d114abd49b1b5baca388d19e929b8f90
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
9c7844cb91b43929d0a86b1c90aa1efb37f5463a 18-Jan-2017 Jason Monk <jmonk@google.com> Work on sysui dependencies

One of the many problems with PhoneStatusBar is that it holds
dependencies for many other parts of SysUI. Fix this by creating
a static method of grabbing dependencies that are global to sysui
this cleans up a lot of chains of interdependence.

Also add easy way to inject mocks of these dependencies for the
purpose of testing.

Test: runtest systemui
Change-Id: Ia0e947faea62d15b665facada47ac9916c99f895
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
49fa016a98cef9940c883b3f620a0e90537a204e 11-Jan-2017 Jason Monk <jmonk@google.com> Move navigation bar logic to its own class

Start hacking away at PhoneStatusBar by trying to pull out
as much NavigationBar logic as possible.

Test: runtest systemui
Change-Id: I23b904428be31b91f0747fd60c9f6e0dd323eb44
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
59d86ed2a80364aa27541d8117ccf80551b45e20 04-Jan-2017 Jason Monk <jmonk@google.com> Add one-shot plugin support

Should have happened a while ago.

Test: runtest systemui
Change-Id: I0da4deb5c297e8030213810815a408364ec97e14
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
b5b0920170916e92b49f693df6e8580a785f81ba 05-Jan-2017 Jason Monk <jmonk@google.com> Allow CommandQueue to have multiple callbacks

Allow for multiple callbacks to be added to CommandQueue.
This will allow PhoneStatusBar to be broken up into pieces
that make more sense.

Test: runtest systemui
Change-Id: I73a7da1c23c8e45a291e5957e7341f3930abc334
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
f9d13f6d7a6fda22620cd4eab74ec98cafdbd147 09-Nov-2016 Adrian Roos <roosa@google.com> Doze: Add plugin hook

Test: mmm vendor/google_experimental/users/roosa/DozePlugin/
Change-Id: I7ea55954f0c07be932e8ee7037e03b7c01cc1108
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
371315142579ae11625ef975427a7621bfa7b873 11-Nov-2016 Jason Monk <jmonk@google.com> Merge changes I52007c69,I6503947e,Icf677f4a,I2ae7ed61

* changes:
Unit testing for fragments.
Plugin fragment support
Move QS to a fragment
Fragments in SysUI!
bbac121e44a2bc6dc3ef9d779685fc29907b245b 31-Oct-2016 Jason Monk <jmonk@google.com> Fragments in SysUI!

Add system to add fragments to sysui windows for better code
modularity and testability.

Bug: 32609190
Test: Manual
Change-Id: I2ae7ed6133aff3fc5cdbdb3ec89d55183b7ac797
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
97a06a12ed29fb72eb40d49b83333a9a6327222c 09-Nov-2016 Jason Monk <jmonk@google.com> Add switchable theme to tuner

Allows option in tuner to switch between system theme overlays
if multiple exist. Requires a restart to take effect.

Test: Settings -> Tuner -> Other -> Theme
Change-Id: Iea43b9cbb67fd91c6008be594ad4cfd19c3f57ec
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
73bc159dcc3e3d32cd6e68f8e72b0e9f9de6a1e9 19-Oct-2016 Winson <winsonc@google.com> Adding PIP logic for phones.

- Adding basic behavior to move PIP window and launch back into
fullscreen, as well as drag it to dismiss.

Test: Deferring CTS tests as this interaction is only temporary and not
final

Change-Id: I5272a045090c20c45b345813d10dc385c3f83221
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
c3fe204780fb99b1d2563a9e4bb6c082b7517aed 07-Oct-2016 Jorim Jaggi <jjaggi@google.com> More latency tests (1/2)

- Move latency fake actions into a central location, LatencyTester
- Add latency test for screen turning on

Change-Id: I8aa3f475d56a4ee7a36b97bd6ece32e60c5851cd
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
fcdcf7f636ada244a635328e25fdc03959468c8e 19-Sep-2016 Jason Monk <jmonk@google.com> Merge "Plugins for sysui"
279c334633ead0de080b55bb020513371617eceb 10-Sep-2016 dooyoung.hwang <dooyoung.hwang@lge.com> Merge "Fix issue that Overview key doesn't work at secondary user" am: 5379f47d85 am: da9a9da520
am: 983f30a5a4

Change-Id: Ide8c2612c6cbf276eb72a2fc3957965656d6e1d5
b647984f04a8cff6f98ee9654336854ddf872278 31-Aug-2016 dooyoung.hwang <dooyoung.hwang@lge.com> Fix issue that Overview key doesn't work at secondary user

If user captures screenshot, screenshot process is started. Screenshot
process also starts services that is defined SERVICES_PER_USER.
As a result Recents class's object is unexpectedly constucted from
screenshot process, and cause to connect with system-user's SystemUI
with mUserToSystemServiceConnection. So, binder proxy from system-user's
SystemUI to secondary-user's SystemUI is replaced with proxy to
screenshot process. In this case Overview key doesn't work at all
until reboot.

Bug:30340532
Change-Id: I84b8b4a02ac3ff781e06d57be19cff56efa76521
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
86bc33188948e7b6beb07dbb5ddba59b5ea3c1fc 16-Aug-2016 Jason Monk <jmonk@google.com> Plugins for sysui

Why this is safe:
- To never ever be used in production code, simply for rapid
prototyping (multiple checks in place)
- Guarded by signature level permission checks, so only matching
signed code will be used
- Any crashing plugins are auto-disabled and sysui is allowed
to continue in peace

Now on to what it actually does. Plugins are separate APKs that
are expected to implement interfaces provided by SystemUI. Their
code is dynamically loaded into the SysUI process which can allow
for multiple prototypes to be created and run on a single android
build.

-------

PluginLifecycle:

plugin.onCreate(Context sysuiContext, Context pluginContext);
--- This is always called before any other calls

pluginListener.onPluginConnected(Plugin p);
--- This lets the plugin hook know that a plugin is now connected.

** Any other calls back and forth between sysui/plugin **

pluginListener.onPluginDisconnected(Plugin p);
--- Lets the plugin hook know that it should stop interacting with
this plugin and drop all references to it.

plugin.onDestroy();
--- Finally the plugin can perform any cleanup to ensure that its not
leaking into the SysUI process.

Any time a plugin APK is updated the plugin is destroyed and recreated
to load the new code/resources.

-------

Creating plugin hooks:

To create a plugin hook, first create an interface in
frameworks/base/packages/SystemUI/plugin that extends Plugin.
Include in it any hooks you want to be able to call into from
sysui and create callback interfaces for anything you need to
pass through into the plugin.

Then to attach to any plugins simply add a plugin listener and
onPluginConnected will get called whenever new plugins are installed,
updated, or enabled. Like this example from SystemUIApplication:

PluginManager.getInstance(this).addPluginListener(OverlayPlugin.COMPONENT,
new PluginListener<OverlayPlugin>() {
@Override
public void onPluginConnected(OverlayPlugin plugin) {
PhoneStatusBar phoneStatusBar = getComponent(PhoneStatusBar.class);
if (phoneStatusBar != null) {
plugin.setup(phoneStatusBar.getStatusBarWindow(),
phoneStatusBar.getNavigationBarView());
}
}
}, OverlayPlugin.VERSION, true /* Allow multiple plugins */);

Note the VERSION included here. Any time incompatible changes in the
interface are made, this version should be changed to ensure old plugins
aren't accidentally loaded. Since the plugin library is provided by
SystemUI, default implementations can be added for new methods to avoid
version changes when possible.

-------

Implementing a Plugin:

See the ExamplePlugin for an example Android.mk on how to compile
a plugin. Note that SystemUILib is not static for plugins, its classes
are provided by SystemUI.

Plugin security is based around a signature permission, so plugins must
hold the following permission in their manifest.

<uses-permission android:name="com.android.systemui.permission.PLUGIN" />

A plugin is found through a querying for services, so to let SysUI know
about it, create a service with a name that points at your implementation
of the plugin interface with the action accompanying it:

<service android:name=".TestOverlayPlugin">
<intent-filter>
<action android:name="com.android.systemui.action.PLUGIN_COMPONENT" />
</intent-filter>
</service>

Change-Id: I42c573a94907ca7a2eaacbb0a44614d49b8fc26f
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
40ea083b59c05beec2eb2c064927086aa55173f3 14-Jul-2016 Adrian Roos <roosa@google.com> Add way to set live wallpaper across users

Also adds an entry point for vendor specific services
to SystemUI.

Bug: 30038484
Change-Id: I8f335c1f7de15d619f2c688a8ac95372f166595f
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
6a29c3e14f217c992b57820697112550f24a4351 12-Apr-2016 Jaewan Kim <jaewan@google.com> PIP: Fix crash in Recents when restrict profile is enabled

Bug: 28071518
Change-Id: I293f4e872990cca051c3395d2a51c2df59d71227
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
3c2c34bb039e92d68f466b7d194cbbe8241d8d60 05-Apr-2016 Winson <winsonc@google.com> Workaround to ensure that a SystemUI process is always available.

- For a non-primary user, this CL will ensure that the SystemUI process
is started when we are switched to the user. This allows us to
maintain our current user-management model for Recents, which depends
on this process for preloading and state management.

Bug: 27175589
Change-Id: Id985fc2876e6daf06f303b44c0f9d1d3fd377842
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
94ce94e96069ab6c2ece4864ba4c7692f3168352 25-Feb-2016 Muyuan Li <muyuanli@google.com> Allows components to register shortcut key.

The registered shortcut will be called from PhoneWindowManager,
before dispatching

Change-Id: If26128939b45a639c8895719a7a23ca433f39fd9
(cherry picked from commit 4da863c5a8872dcabb179a978a2b2157d9081679)
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
f164792472dae77b14a47a30ad66c1a0e41340b0 17-Dec-2015 Youngsang Cho <youngsang@google.com> Initial check-in of picture-in-picture system-ui

Bug: 26549507
Change-Id: I6c69b5e2b5492858fc997657b5a06d3e50ca16e3
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
1b30f79cffbe9e0c2b974fa3ee48001edcdd6c05 06-Jan-2016 Xiyuan Xia <xiyuan@google.com> Refactoring for better extendability

- Exposing members of PhoneStatusBar, StatusBarKeyguardViewManager and
KeyguardBouncer to sub class;
- Add a configuable SystemUIFactory as class factory for components;
- Add logoutCurrentUser and switchToByUserId to UserSwitcherController;

BUG:22407003
Change-Id: I3902baf3c721d89217b27a6310c4202a198cb209
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
dd98d41e3a65b3bcb37007ea5b29371cf013f563 19-Nov-2015 Jorim Jaggi <jjaggi@google.com> Add gesture to drag in recents from navigation bar

Change-Id: I672ed08f1019835891411b87e2d0de0290defff7
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
1fcbab6ae5c99acab70eacc015d194e2c6ddd4e2 04-Nov-2015 Jorim Jaggi <jjaggi@google.com> Implement divider UX interactions

- Update visuals to spec
- Divider lifts when touching
- Implement basic version of snap points and animations
- Implement touch conflict behavior: If touched around 48x48dp
area around the handle, the divider handles all these touches.
If touched outside of the black background divider, touch goes
directly to underlying window. If touch on the black background
divider, touch is considered slippery and thus the window in
which the touch trace moves gets the touches.

Change-Id: I0307c191ae032672c4b73d439c23cf9833d3fce6
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
61f39a7b988f6a22681a3f9e0bf8121f72ff88c4 29-Oct-2015 Jorim Jaggi <jjaggi@google.com> Migrate docked divider drawing to SysUI

Move docked divider drawing to SysUI. This let's us have real
time shadows in the future. Keep DockedStackDividerController
for placing/visibility in window manager.

Change-Id: I82c10add626d30f2ba180ee2a21cdbe6ddfe0371
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
244f776855b2144a7fe16be09c67e5b189e8dcfd 21-Oct-2015 Michael Wright <michaelwr@google.com> resolve merge conflicts of f013c3f111 to master.

Change-Id: I2045187f8fa948a1733cb9a2cdc0a69ae97b5907
9209c9cd9a6f779d0d9d86f9b2e368df564fa6bb 03-Sep-2015 Michael Wright <michaelwr@google.com> Add SystemUI component to watch for keyboard attachment.

Add a new SystemUI component to watch for keyboard attachment /
detachment. If the config specifies the name of a keyboard that is
packaged with the device, then SystemUI will ask the user if they
would like to enable BT (if disabled) and then attempt to pair to the
device.

Bug: 22876536
Change-Id: I786db35524d49706d5e61d8b8bc71194d50113f3
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
94a148594d56e87920c3771ab630a5337612bd52 23-Sep-2015 Winson <winsonc@google.com> Fixing crash in configuration change for secondary users.

- The crash is a regression caused by ag/773159.
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
fe67abac68d628043604e8f24fb1915aca298e0c 22-Sep-2015 Winson <winsonc@google.com> Allow SystemUI components to be started for non-system users.

- Certain SystemUI components require initialization per-user, so this
CL allows us to selectively start those components when SystemUI is
restarted for each user, and also lets us remove some extra workaround
code in Recents to handle this case.
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
5e745172d93fcd4a90e0c8b216941a10a9994de8 03-Jun-2015 Jason Monk <jmonk@google.com> Setup service for tunable things to use.

Change-Id: I13daa68d3d1ec5584fd84f356f4f5a0d1c0b853a
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
d61f2271c40cd7b3b10f39d8ffdaf8c527cb78be 19-Dec-2014 Jorim Jaggi <jjaggi@google.com> Remove dead code #6: Delete old recents implementation

Change-Id: I93b1257563d6352a54141bd4c90d2d4587782fd2
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
5a399490c2185ebfd458b1a1d9394f3a68c5fde2 15-Jul-2014 Alan Viverette <alanv@google.com> Use activity for brightness dialog

Also fixes brightness controller failure to unregister callbacks.

BUG: 15512088
Change-Id: Ia665e006d93391d5a66d4ace614660c4e6d2d5b5
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
8600534df66c2ff5846ed230b50c56229322d48a 23-May-2014 John Spurlock <jspurlock@google.com> VolumeZen: combine ringer/notification volume and zen.

- Implement a new volume panel widget, combining volume and
zen mode + conditions.
- Show zen mode + conditions when modifying ringer or notification
streams.
- Host the volume panel widget in a dialog when being controlled
by the audio service / volume keys.
- Remove support for multiple sliders in the volume panel.
- Remove support for separate ringer + notification volumes
in the volume panel.
- Move volume panel resources up to SystemUI.
- Create a new combined Notifications quick settings tile.
- Host the volume panel widget in the quick settings panel under
Notifications.
- When the quick settings detail panel is visible, route the volume
keys to the embedded widget instead of showing a redundant dialog.
- Create common styles for quick settings text to be closer to spec.
- Update the framework resources for the ringer stream.
- Show the ringer icons in global actions.
- Add "until you turn this off" back as a separate zen condition.
- Disable time condition buttons when they are N/A.
- Don't allow volume changes to set ringer mode silent.

Bug:15186070
Change-Id: Id5e321dd1d5e7c4cf3917027ffbdf7e80d38b00d
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
3346a802087f621c6441bc512dfcc17b07143fc6 20-May-2014 John Spurlock <jspurlock@google.com> VolumeZen: SystemUI now hosts the volume dialog.

- Allow SystemUI to set the volume controller interface using
a new binder call to audio service.
- Remove VolumePanel's dependency on AudioService.
- Host the base VolumePanel in the SystemUI process.

Change-Id: I095d5a1a579d42b68d0f81abb4087bd0c754b876
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
d83a096f299abd9c7fe5e441ef1bb169c314b575 03-May-2014 Dianne Hackborn <hackbod@google.com> Bump up priority of system receiving BOOT_COMPLETED.

Change-Id: I5166f88f11f781914312e867cb653c8ecbefa705
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
dc5f16bf096796d2f822bce8a720fc26e898da5e 22-Apr-2014 Dan Sandler <dsandler@android.com> Avoid sending broadcasts before BOOT_COMPLETED.

SystemUI instances can now take advantage of a new lifecycle
callback, onBootCompleted(), to avoid jumping the gun.

Bug: 14092537
Change-Id: I3f7db7a4753f874c4d75235f263c2bd374debec4
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
070a0b61cd416b9d54d57bf52ba6583f9b111ee6 10-Apr-2014 Adrian Roos <roosa@google.com> Set a dark theme for SystemUI.

The default theme for the platform has changed to a
light variant. This puts SystemUI back in the dark.

Bug: 13635952
Change-Id: I230a2078ba6bf5a79c768f0e357fcbd75f283cf8
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
3beffdf4a0081a97356f46d50e10541b1a213153 03-Apr-2014 Jorim Jaggi <jjaggi@google.com> Fix crash when taking screenshot.

Start SystemUI services only if needed.

Bug: 13635952
Change-Id: I76a5e3333ed8f51a267e33b2cf172d6c775ac914
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
cff0acb6b1eea23c3f44a078a0a5e81c11faea35 31-Mar-2014 Jorim Jaggi <jjaggi@google.com> Wait for Keyguard to be drawn after boot.

The old logic with waiting for the Keyguard to be drawn assumed that
it is in an own window, and just checked for the visibility. This is
no longer possible as the Keyguard is in the status bar, and the status
bar might have been drawn without the Keyguard. So we have to wait
explicitely until Keyguard told PhoneWindowManager that it has now been
drawn and we can turn on the screen.

In addition, the starting logic of SystemUI is moved into
SystemUIApplication such the we can make sure that the status bar
already exists when the callbacks from PhoneWindowManager reach
KeyguardService. This simplifies the logic a lot.

Bug: 13635952
Change-Id: Ifd6ba795647edcf3501641e39052e4d04bc826fb
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
80343f646f9686528212f82163a77ef48e30f4c3 18-Oct-2012 Michael Jurka <mikejurka@google.com> Fix recents animations for secondary users

Bug: 7361640

Change-Id: Ibd177bf01758fb8706b82dcf3bf234e052c38aa3
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
9bdaada95c481b8164417696649a1ffb584552f1 01-Oct-2012 Michael Jurka <mikejurka@google.com> Fix bug 7138446: Icon blips in during Recents animation

Add animation where icon and description of the
primary activity fades and translates in

Change-Id: Ie21b5302ac9e58ee6af219b7cde98d12a8e82697
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
cb2522c86d75fff277dc38ec7e444a5b5f5130ea 13-Apr-2012 Michael Jurka <mikejurka@google.com> Recents: apps scale down to thumbnails now

As a part of this change, Recents is now an
activity.

Known issues:
* Jank: jump-cut as app icon appears suddenly
after the aniamtion
* Preloading recents is broken on phones without
soft nav bar and on tablets
* Thumbnail window from animation lingers/flashes
sometimes

Change-Id: Ie6f991f3c2e1e67f9ed84eb6adba9174ed957248
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java