History log of /frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
fe6f85cac9e823fd33a134f7129fdf7310703293 20-Jan-2017 Jeff Sharkey <jsharkey@android.com> Introduce RescueParty.

When a device gets stuck in a crash loop, it's pretty much unusable
and impossible for users to recover from.

To help rescue devices from this state, this change introduces a new
feature that watches for runtime restart loops and persistent app
crash loops, and escalates through a series of increasingly
aggressive rescue operations. Currently these rescue levels walk
through clearing any experiments in SettingsProvider before finally
rebooting and prompting the user to wipe data.

Crash loops are detected based on a number of events in a specific
window of time. App stats can be stored in memory, but boot stats
need to be stored in system properties to be more robust.

Start up RecoveryService much earlier during the boot so we can
reboot into recovery when needed.

Add properties tha push system_server or SystemUI into a crash loops
for testing purposes.

Test: builds, boots, forced crashing walks through modes
Bug: 24872457, 30951331
Change-Id: I6cdd37682973fe18de0f08521e88f70ee7d7728b
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.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/SystemUIService.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/SystemUIService.java
3e309b2edc99cced870916a7a0fa0d27578cad6d 25-Jun-2013 John Spurlock <jspurlock@google.com> Decouple storage notification from status bar.

Hoist the usb storage notification listener to a top-level
system ui service, not dependent on a status bar implementation.

Change-Id: Ic9e7fba1e5bfd758d72226f6d796c2f04f6b17e6
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
d08de37a2223d5183620098737eb93907a4ba92c 24-Jun-2013 John Spurlock <jspurlock@google.com> Decouple recents from status bar.

Remove remaining references to recents package from status bar.

Introduce in-process "components" to the existing SystemUI base class
to make component boundaries explicit, and implement Recents as the
first component.

Change-Id: Ieefd386379a1f46806b31f68a4cacd76c093aea4
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
5c4541246c6a70f53552423dc35940386788bd5f 17-Jun-2013 John Spurlock <jspurlock@google.com> Introduce SystemUI-managed alternative system bars.

If a service component is defined in a new secure setting,
SystemUI will attempt to use that service as the status bar
provider.

Falls back to the existing in-process implementation configured
in the product config if the setting is missing or invalid.

Nothing changes yet from a permission point of view. Alternative
system bar implementations still require the status bar permission.

Also nothing changes from an api point of view. Alternative
system bar implementations use the existing IStatusBar interface.

This simply enables testing alternative system bar implementations
installed from other trusted, platform-signed packages.

Known caveat: the setting is stored per user, multi-user changes
will be handled in a future CL.

Change-Id: I0413df185f7e75f77ad2ae1bc3689306d5e6e0fb
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
b0e49fc93c146d7ddc8e1f27ec67306a71168510 12-Jun-2013 John Spurlock <jspurlock@google.com> Remove TabletStatusBar from systemui package.

Change-Id: Ie8b556dbba8751617582f8c717ee83e480938b27
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
de84f0e77ea2bf713d15c290264059a413c2486a 12-Jun-2013 John Spurlock <jspurlock@google.com> Organize the imports in systemui.

To follow android conventions, more importantly to remove the
unused.

Change-Id: I75881718e84360a579a3b02c26489ad250bc9227
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
cd686b5b6d4166b510df8e32138479a9559bc117 05-Jun-2013 John Spurlock <jspurlock@google.com> Migrate systemui Slog calls to Log

Change-Id: Ib6734c85960f06fed646599565b8eeba26b9e98e
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
6b25e726cbe704a25a179ba62c6430dc6f974c67 01-Mar-2013 Svetoslav <svetoslavganov@google.com> Remove a workaround for accessibility managers that works across users.

The system and some processes such as the keyguard and system UI
run across users. Hence, the local accessibility manager should call
into the backing system service with the id of the current user.
For all other processes the local manager uses the current user id.
There was a method that is to be called before the local accessibility
manager has been accessed to initialize it to work across users.
This had to be done for keyguard and system UI.

This change removed the workaround and now the local accessibility
manager determines under the hood which user id to use while calling
into the system. If the local manager is in the system process or
its process has permissions to work across uses, the manager uses
UserHandle.USER_CURRENT, otherwise it uses the user if its process.

Change-Id: I3e97fe98805adca01c1a0127a276828e90926f95
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
0087a14d4b4bcfe57c6f6e36c70eec966088d7bb 06-Feb-2013 Michael Wright <michaelwr@google.com> Add brightness dialog to SystemUI

Change-Id: If31406c9144bb2583876f08dd54b259d1dfa3601
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
58d37b55bd228032355360ea3303e46a804e0516 18-Sep-2012 Svetoslav Ganov <svetoslavganov@google.com> Multi-user support for the accessibility layer.

1. This change converts the accessibility manager service to
maintain a state per user. When the user changes the services
for the user that is going away are disconnected, the local
accessibility managers in the processes for this user are
disabled, the state is swapped with the new user's one, and
the new user state is refreshed.

This change updates all calls into the system to use their
user specific versions when applicable. For example, regisetring
content observers, package monitors, calls into other system
services, etc.

There are some components that are shared across users such
as UI created by the system process and the SystemUI package.
Such components are managed as a global state shared across
all users and are updated accordingly on a user switch. Since
the SystemUI is running in a normal app process this change
adds hidden APIs on the local window manager to allow the
SystemUI to notify the accessibility layer that it will run
accross users.

Calls to AccessibiltyManager's isEnabled(), isTouchExplorationEnabled()
and sendAccessibilityEvent return false or a are a nop for a
background user sice he should not send accessibility events,
and should not perform touch exploration.

Update the internal accessibility tests due to changes in the
AccessibilityManager.

This change also fixes several issues that were encountered
such as calling out the accessibility manager service with a
lock held.

Removed some incorrect debugging code from the TouchExplorer
that was leading to a system crash.

bug:6967373

Change-Id: I2cf32ffdee1d827a8197ae4ce717dc0ff798b259
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
98365d7663cbd82979a5700faf0050220b01084d 20-Aug-2012 Jeff Brown <jeffbrown@google.com> Refactor for multi-display support.

Split WindowManagerImpl into two parts, the WindowManager
interface implementation remains where it is but the global
communications with the window manager are now handled by
the WindowManagerGlobal class. This change greatly simplifies
the challenge of having separate WindowManager instances
for each Context.

Removed WindowManagerImpl.getDefault(). This represents the
bulk of this change. Most of the usages of this method were
either to perform global functions (now handled by WindowManagerGlobal)
or to obtain the default display (now handled by DisplayManager).

Explicitly associate each new window with a display and make
the Display object available to the View hierarchy.

Add stubs for some new display manager API features.

Start to split apart the concepts of display id and layer stack.
since they operate at different layers of abstraction.
While it's true that each logical display uniquely corresponds to a
surface flinger layer stack, it is not necessarily the case that
they must use the same ids. Added Display.getLayerStack()
and started using it in places where it was relatively easy to do.

Change-Id: I29ed909114dec86807c4d3a5059c3fa0358bea61
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
098d580cc2bb6c0891c756a4e5230c6c6b0d2376 27-Apr-2012 Jeff Sharkey <jsharkey@android.com> Migrate ringtone playback to SystemUI.

Introduce IRingtonePlayer, which handles playback for both Ringtone
objects and Notifications. SystemUI now hosts this player, which it
registers with AudioService. It also keeps MediaPlayer instances
warm, and cleans them up after stop() or Binder death.

Move both Ringtone and NotificationManagerService to play back audio
through this new interface.

Bug: 6376128, 6350773
Change-Id: I1dcb86d16ee3c4f07cdb2248d33dcff4ead3609a
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
eb4cc492c93ab9635dde78b958a834120412e72a 27-Apr-2012 Jeff Sharkey <jsharkey@android.com> Protect system services with DUMP permission.

Change-Id: I5e53859f8b8e5473e54eca43ebd7de841f1a05ff
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
f87d19621dc2a30232bba1f51862a0b671eb9729 04-Apr-2012 Dianne Hackborn <hackbod@google.com> Clean up status bar, system bar, navigation bar management.

The status bar and navigation bar are two completely separate
elements, with their own semantics. The system bar now classifies
itself as a navigation bar, since that is really how it behaves.

This required rewriting the HDMI resizing code, so that it is
all done by PhoneWindowManager since that is what is responsible
for the size of the navigation bar (and thus now system bar). This
actually gets rid of a fair amount of code, and means we can also
do the same thing for a pure navigation bar.

Likewise the system bar now has the navigation bar ability to be
hidden when requested by system UI flags. To get the behavior
we want on Xoom, we only allow the nav bar to be hidden when it
will help provide a better aspect ratio for showing widescreen
videos.

Finally the nav/system bar now animates when hidden and shown.

Change-Id: Ie927154b68376a0b61802f99171ff56b8da92e7a
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
81e56d535c853d73ff537357da5b935f51cb779d 26-May-2011 Dianne Hackborn <hackbod@google.com> Rework how we decide whether to use system or status bar.

The PhoneWindowManager is now responsible for determing this,
since it needs to do this before we can generate the configuration
since we need to take into account the system bar size we will use.

Also the Display should now report the screen height without
including the system bar.

Change-Id: I82dfcc5e327e4d13d82c373c6c870f557a99b757
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
0ad460b087abbd4b523a2e61ff27b0bf6fb5be92 14-Dec-2010 Daniel Sandler <dsandler@google.com> Look again; the system bar is now diamonds.

Lights Out 3.0 (bug 3241144)
- new artwork
- new transition animations
- new interaction (tap anywhere to dismiss & interact)
- much simpler overall design and implementation

Layout (bug 3242949)
- fine-tuned spacing on navigation and notification icons
- notification icon spacing compresses in portrait

Shirt Pocket (bug 3203179)
- disabled for now

Bug: 3241144
Bug: 3242949
Bug: 3203179
Change-Id: I6e9b7f9ebe07317d07609f11d5f03f22269bc7bb
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
10523b4d0c99cec86647130426d470a1e02a44f6 25-Oct-2010 Joe Onorato <joeo@google.com> Make the low battery dialog work again.

Change-Id: I97232a3645e6a817c9c5f5f90b88a7e925d36d13
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
f3c3c4fd14cb4185ec6df5a4355aab8b9f4039dc 21-Oct-2010 Joe Onorato <joeo@google.com> Refactor SystemUI so the status bar isn't a Service of its own.

There is now one SystemUIService, which starts the status bar service.
Pretty soon there will be other things running in here too. This way
we don't need to have each of them started by something individually.

This also moves the choice between tablet and phone status bar into
SystemUI.apk, which seems like a much better place for it.

Change-Id: Ib69ef2f43d648764f8dbb52008f5d036a1ee07d9
/frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java