Commit Graph

77 Commits

Author SHA1 Message Date
Beverly
97b8ce1e1f OverlayPlugin listener method called from main thread
- onPluginDisconnected is being called from non-main thread
causing fatal exception when calling setForcePluginOpen()
- this is a temporary fix

Test: manual
Bug: 123532083
Change-Id: I585c53844244f3acc2f87bc752ad7b564fb7d36d
2019-02-01 22:04:36 +00:00
Jason Monk
27d01a624d Start using some dagger 2
Early days as we start migration, so lots of duplication between
Dependency and dagger2, but can be removed when migration is done.

Test: existing tests.
Change-Id: I00c3da6ebbd46a26e512d8a7aa1e2b828e08f33f
2018-12-19 09:47:37 -05:00
Jason Monk
297c04ee53 Make StatusBar not be a NotificationPresenter
Break the NotificationPresenter out of the StatusBar and most of
the logic with it.

 - Break RemoteInput Callbacks out of NotificationPresenter
 - Break Environment Callbacks out of NotificationPresenter
 - Add ShadeController interface for StatusBar (abstraction
   layer from StatusBar)
 - Add InitController to allow for post-init tasks (dependency
 resolution should not go here)
 - Make some dependencies (ShadeController, NotificationEntryManager,
 NotificationLockscreenUserManager usually) lazily-resolved to break
 some dependency cycles

 - Lots of other cleanup

Test: Existing tests do not pass
Change-Id: Ic043c6b15a4ffe551fc27f99b25d5c3caa1be582
2018-10-23 11:19:15 -04:00
Tony Wickham
023cb195be Move plugin support to shared lib
In addition to changing imports, this required some changes to use java
7, since that's what the shared lib needs to be for launcher.

See bug for more details on this project.

Test: "atest com.android.systemui.shared.plugins"
  build succeeds and all tests pass

Bug: 115877296
Change-Id: Ib79ede0a61664df0ba1a194632a345d2229777fc
2018-09-28 10:04:09 -07:00
Lucas Dupin
1a8588d19f Rename StatusBarWindowManager to StatusBarWindowController
For consistency with the rest of the system since StatusBarWindowManager
isn't neither a system service or part of Window Manager.

Test: sysuitests
Change-Id: I22f9b929cb3e2fb0c68e1960267855f5e56b2a01
2018-08-21 13:20:30 -07:00
Beverly
6ea063eb5f Translate SystemUi NotifChannels on locale change
Register receiver outside of the on boot receiver

Test: manual
Change-Id: Id286647ffe68704f928ca55dcae14dadc4fa998d
Fixes: 64887866
2018-04-19 14:28:42 +00:00
Beverly
70dcd00d4a 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
2018-03-29 17:09:16 -04:00
Dan Sandler
dc2ddd7e3e Add BinderProxy tracking code to SysUI.
Bug: 71353150
Test: runtest systemui
Change-Id: I48fbee833fb1c9e70c6efa8c0b232abbc340dce3
2018-01-24 19:36:05 -05:00
Adrian Roos
000cf5e06d 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
2017-12-08 14:45:18 +01:00
yoshiki iguchi
61b3708833 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
2017-12-07 17:49:32 +09:00
Dan Sandler
f6e33b1b33 Revert "Add plugin to swap out recents"
This reverts commit 0ea67d82e3.

Bug: 64345190
Change-Id: I353c064db7bfaf91e98b5fd0d3e7180381a1b2b8
Test: n/a
2017-08-15 16:45:07 -04:00
Fyodor Kupolov
6e3461b67c 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
2017-08-14 11:23:29 -07:00
Lucas Dupin
ef15776aaf resolve merge conflicts of a1f64b0a91 to oc-mr1-dev
Test: I solemnly swear I tested this conflict resolution.
Change-Id: Ic2395d055e1f27b186c3b87be5440dc410ee16a3
2017-07-25 12:00:01 -07:00
Lucas Dupin
e17ce5286f 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
2017-07-24 13:26:22 -07:00
Jorim Jaggi
7f58322d51 Revert "Fix jank when switching themes"
am: 6498f96283

Change-Id: Ie5813f1c04a6db9d5ee291df764873900add5064
2017-07-24 14:14:34 +00:00
Jorim Jaggi
6498f96283 Revert "Fix jank when switching themes"
This reverts commit e5d0b9dddb.

Fixes crashloop with lock pattern

Change-Id: I3721444c91e2be625c59ec3e6ba14f1080badc07
Fixes: 63980375
2017-07-24 15:53:42 +02:00
Lucas Dupin
902ba7bab5 Merge "Fix jank when switching themes" into oc-dr1-dev
am: a74f575ff9

Change-Id: Ibc8fa59cfa6139b03aa7fb08361eb43331484be5
2017-07-22 04:52:31 +00:00
Lucas Dupin
e5d0b9dddb 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
2017-07-20 22:44:36 -07:00
Jason Monk
daece35dc3 Merge "Add plugin to swap out recents" into oc-dr1-dev am: a69c03b6b1
am: 84510887b0

Change-Id: I5483d77315ae0db8c35e8535ea8e754908e3d235
2017-06-28 13:30:37 +00:00
Jason Monk
0ea67d82e3 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
2017-06-27 20:41:45 +00:00
Fyodor Kupolov
f3591359b9 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
2017-06-26 11:04:39 -07:00
Jason Monk
d4afe152bf Rounded corners support, off by default.
Test: runtest systemui
Bug: 33208650
Change-Id: I63e11e36268e277cc1c5e70651fa5248aa8b3fc0
2017-05-10 08:27:34 -04:00
Jason Monk
be3235abcd 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
2017-04-11 17:49:11 +00:00
Geoffrey Pitsch
790e091bca Create NotificationChannels in SystemUI per-user
Fixes Screenshot notification when guest plus others.

Bug: 36516812
Test: runtest systemui
Change-Id: I0d851a28ba9b134afc02c72fc3684c1d0be25c41
2017-03-24 13:37:13 -04:00
Winson Chung
2423c13507 Merge "Removing per-user PiP component." 2017-03-22 18:56:07 +00:00
Winson Chung
853c99a083 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>
2017-03-22 08:56:02 -07:00
Jason Monk
361915c727 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
2017-03-22 09:41:34 -04:00
Jason Monk
d7937b3488 Merge "New system for versioning sysui plugins" 2017-02-15 20:49:05 +00:00
Jason Monk
790442e4cd Tuner updates
Some UX updates to the tuner to feel better and align with settings
UX patterns.

Test: visual
Change-Id: I9c57194b9649c61e0d6d3f9e21a51d9c4a5c1286
2017-02-15 13:35:00 -05:00
Adrian Roos
9125068a99 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
2017-02-11 21:57:10 +01:00
Jason Monk
5bec68fbea 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
2017-02-09 09:32:20 -08:00
Jason Monk
421a9410b4 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
2017-02-07 18:58:14 -05:00
Winson Chung
0c7592ffac 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
2017-02-06 09:16:23 -08:00
Jason Monk
de850bbcaa 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
2017-02-02 10:58:18 -05:00
Jason Monk
2a6ea9c2a1 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
2017-01-26 15:17:45 -05:00
Dan Sandler
8e032e15e6 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
2017-01-25 23:37:06 -05:00
Jason Monk
20ff3f9255 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
2017-01-23 16:28:03 -05:00
Jason Monk
9c7844cb91 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
2017-01-23 12:55:53 -05:00
Jason Monk
49fa016a98 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
2017-01-17 10:31:13 -05:00
Jason Monk
59d86ed2a8 Add one-shot plugin support
Should have happened a while ago.

Test: runtest systemui
Change-Id: I0da4deb5c297e8030213810815a408364ec97e14
2017-01-11 11:29:17 -05:00
Jason Monk
b5b0920170 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
2017-01-09 12:51:56 -05:00
Adrian Roos
f9d13f6d7a Doze: Add plugin hook
Test: mmm vendor/google_experimental/users/roosa/DozePlugin/
Change-Id: I7ea55954f0c07be932e8ee7037e03b7c01cc1108
2016-11-18 15:59:00 -08:00
Jason Monk
3713151425 Merge changes I52007c69,I6503947e,Icf677f4a,I2ae7ed61
* changes:
  Unit testing for fragments.
  Plugin fragment support
  Move QS to a fragment
  Fragments in SysUI!
2016-11-11 16:38:57 +00:00
Jason Monk
bbac121e44 Fragments in SysUI!
Add system to add fragments to sysui windows for better code
modularity and testability.

Bug: 32609190
Test: Manual
Change-Id: I2ae7ed6133aff3fc5cdbdb3ec89d55183b7ac797
2016-11-11 11:19:15 -05:00
Jason Monk
97a06a12ed 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
2016-11-11 09:01:20 -05:00
Winson
73bc159dcc 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
2016-10-24 11:31:07 -07:00
Jorim Jaggi
c3fe204780 More latency tests (1/2)
- Move latency fake actions into a central location, LatencyTester
- Add latency test for screen turning on

Change-Id: I8aa3f475d56a4ee7a36b97bd6ece32e60c5851cd
2016-10-07 18:54:21 +02:00
Jason Monk
fcdcf7f636 Merge "Plugins for sysui" 2016-09-19 16:54:12 +00:00
dooyoung.hwang
279c334633 Merge "Fix issue that Overview key doesn't work at secondary user" am: 5379f47d85 am: da9a9da520
am: 983f30a5a4

Change-Id: Ide8c2612c6cbf276eb72a2fc3957965656d6e1d5
2016-09-09 22:02:58 +00:00
dooyoung.hwang
b647984f04 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
2016-09-07 16:03:17 +00:00