History log of /frameworks/base/services/java/com/android/server/UiModeManagerService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
11159e9a785a143c9f3765bdf5a5ccfd77842d7a 12-Oct-2012 Jeff Brown <jeffbrown@google.com> Do not launch Somnambulator as a dock app.

Fixes a black flash that occurred when the device was docked
because the UiModeManagerService was launching the Somnambulator
to start the dream when docked. This caused an unnecessary
activity transition and could in fact make dreaming less
reliable than if the UiModeManagerService started the dream itself.

Moved common code from UiModeManagerService and Somnambulator
to Sandman to ensure it is kept in sync.

Bug: 7328545
Change-Id: I46102784e2ab1acc0241d43a48abf0581278af24
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
487bb6e20b96aa6920e08669a260118a40e604d5 11-Oct-2012 Jeff Brown <jeffbrown@google.com> Ensure Binder in-calls to UiModeManagerService are guarded.

Fixed a couple of problems where locks were not being taken or
where the calling identity was being clear deep in the call
stack whereas it should be cleared as close to the entry point
possible to ensure code correctness.

Bug: 7328545
Change-Id: I8ff646a772cd7f4025d5604bc35c6372c3d2428e
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
9fca9e96989bb70c3a5fa9de37681c9228c88ae6 05-Oct-2012 Jeff Brown <jeffbrown@google.com> Ensure that dreams show while docked.

Fixed a race between the UiModeManagerService and PowerManagerService
both of which are trying to wake the device when docked / powered.

Bug: 7281240
Change-Id: Ia41fef48f17f2a2eb56549437d295f9a86c95af2
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
be87e2f5885b28145a788fd31d1fb5ae88a71100 29-Sep-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7255954: API Review: rename Dream to DreamService

Change-Id: I89ecf2c3ec4fef09c0495aa68de11576f9cfd872
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
f9d40f4236544db87c79d2d5dfce158a411b87d0 27-Sep-2012 Jeff Brown <jeffbrown@google.com> Cure narcolepsy.

Bug: 7204211
Change-Id: I2c09abaad5d321cec6f62f7ca0ce00c3b61ee211
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
62c82e4d92cc0b856059f905d81885f7808a0e7d 26-Sep-2012 Jeff Brown <jeffbrown@google.com> Make DreamManagerService more robust.

Clearly isolated the DreamManagerService and DreamController
responsibilities. DreamManagerService contains just enough logic to
manage the global synchronous behaviors. All of the asynchronous
behaviors are in DreamController.

Added a new PowerManager function called nap() to request the device
to start napping. If it is a good time to nap, then the
PowerManagerService will call startDream() on the DreamManagerService
to start dreaming.

Fixed a possible multi-user issue by explicitly tracking for
which user a dream service is being started and stopping dreams
when the current user changes. The user id is also passed to
bindService() to ensure that the dream has the right environment.

Fix interactions with docks and the UI mode manager. It is
important that we always send the ACTION_DOCK_EVENT broadcast
to the system so that it can configure audio routing and the like.
When docked, the UI mode manager starts a dock app if there is
one, otherwise it starts a dream.

This change resolves issues with dreams started for reasons other
than a user activity timeout.

Bug: 7204211
Change-Id: I3193cc8190982c0836319176fa2e9c4dcad9c01f
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
50cdf7c3069eb2cf82acbad73c322b7a5f3af4b1 24-Sep-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7214090: Need to be able to post notifications to all users

Also fix a bunch of system services that should be doing this. And
while doing that, found I needed to fix PendingIntent to evaluate
USER_CURRENT at the point of sending, not creation.

Note that this may end up with us having some notification shown to
non-primary users that lead to settings UI that should only be for
the primary user (such as the vpn notification). I'm not sure what
to do about this, maybe we need a different UI to come up there or
something, but showing the actual notification for those users at
least seems less broken than not telling them at all.

Change-Id: Iffc51e2d7c847e3d05064d292ab93937646a1ab7
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
d888399ad4a4ec0a08e97518bf22d726a8bd4eaa 08-Sep-2012 Dianne Hackborn <hackbod@google.com> Explicitly specify current user everywhere home is started.

Change-Id: I58d86136de7f9cef1eaf72793d0e200b852d7355
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
4120375d46091df8527bb701882e056fbb0e6b06 31-Aug-2012 Dianne Hackborn <hackbod@google.com> Remove Binder.getOrigCallingUid().

Replaced all remaining places that used it with explicit user
specification.

While doing this, I ran into stuff that was creating PendingIntent
objects (that now need to specify the explicit user they are for),
which are also posting notifications... but have no way to specify
the user for the notification.

So the notification manager in the system process now also gets a
formal concept of a user associated with the notification, which
is passed in to all the necessary aidl calls. I also removed the
old deprecated aidl interface for posting/cancelling notifications,
since we now always need a user supplied.

There is more work that needs to be done here, though. For example
I think we need to be able to specify USER_ALL for a notification that
should be shown to all users (such as low storage or low battery).
Along with that, the PendingIntent creation needs to be tweaked to
be able to handle USER_CURRENT by evaluating the user at the point the
pending intent is sent.

That's for another change, however.

Change-Id: I468e14dce8def0e13e0870571e7c31ed32b6310c
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
5ac72a29593ab9a20337a2225df52bdf4754be02 30-Aug-2012 Dianne Hackborn <hackbod@google.com> Improve multi-user broadcasts.

You can now use ALL and CURRENT when sending broadcasts, to specify
where the broadcast goes.

Sticky broadcasts are now correctly separated per user, and registered
receivers are filtered based on the requested target user.

New Context APIs for more kinds of sending broadcasts as users.

Updating a bunch of system code that sends broadcasts to explicitly
specify which user the broadcast goes to.

Made a single version of the code for interpreting the requested
target user ID that all entries to activity manager (start activity,
send broadcast, start service) use.

Change-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
2416e09649eb6ab767eba458796e126196c77a34 22-Aug-2012 Jeff Brown <jeffbrown@google.com> Extract the twilight detection into its own service.

Moving the detection out of UiModeManagerService will
make it easy for other services to register for the
information.

Fixed a bugs related to updating twilight state
when the time is updated.

We're using the same algorithm as before for passively
tracking the location. Ideally we should update it
to use the new location manager features for low-power
location requests.

Change-Id: I520c53b9946ab6f8d994587d357fd6542c300c07
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
2eeeec248a38ff33999c83f4b8d5bab7d50e79d2 18-Jul-2012 Nick Pelly <npelly@google.com> Improve Location object.

Add getElapsedRealtimeNano():

Currently Location just has getTime() and setTime() based on UTC time.
This is entirely unreliable since it is not guaranteed monotonic.
There is a lot of code that compares fix age based on deltas -
and it is all broken in the case of a system clock change. System
clock can change when switching cellular networks (and in some
cases when switching towers).

Document the meaning of getAccuracy():
It is the horizontal, 95% confidence radius.

Make some fields mandatory if they are reported by a LocationProvider:

All Locations returned by a LocationProvider must include at the
minimum a lat, long, timestamps, and accuracy. This is necessary
to perform fused location. There are no public API's for applications
to feed locations into a location provider so this should not cause
any breakage.

If a LocationProvider does not fill in enough fields on a Location
object then it is dropped, and logged.

Bug: 4305998
Change-Id: I7df77125d8a64e174d7bc8c2708661b4f33461ea
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
960779d3bbc6f2c767432ce48aca1e12cb0093b7 29-May-2012 John Spurlock <jspurlock@google.com> Dock: Renable desk-dock apps

Revert to pre-dreams behavior. DeskClock once again launches the correct
activity (instead of Screensaver) when desk-dock is attached.

Bug: 6559590
Change-Id: I32a03a25469f17b5e87e16831839ec757d56c90b
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
0cf2c8a53350a800055e76c1c9bf0a6d44480768 18-May-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6515427: Add android.hardware.television and fix...

...logic for notouch in Configuration

Added new TELEVISION feature.

We now force the configuration to "television" if the TELEVISION
feature is set, and "notouch" if the TOUCHSCREEN feature is not set.

Also cleaned up documentation, deprecated some configurations that
are not used.

Change-Id: If1c7a284b580a8a66bda2a75f0c7fa841b3dc9b7
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
a4972e951bf2bdb7afdafee95b3ab0c15b8bacae 14-Mar-2012 Dianne Hackborn <hackbod@google.com> Add new "options" argument to all startActivity APIs.

This will be used to allow new features to be requested... such as,
say, a special kind of animation. Right now there are no options
defined.

Change-Id: I4eb6f27275cdd4bf186f6da316ab93a2372ad4b7
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
44fcb83b38b062a650ddf556fe7f5e34905df9ea 15-Dec-2011 Joe Onorato <joeo@google.com> Add a new ui mode for "appliance"

The idea is that this is a device which is more-or-less headless. It
might have some limited interaction capabilities, but it's not something
that you want to rely on having.

Change-Id: Ib92f53a120bf83de781728011721a4859def7d9f
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
11ddf533a2165ca68002d3b48e312271b3d0dedb 16-Nov-2011 Daniel Sandler <dsandler@android.com> Disable desk dock apps.

When a device is attached to a desk dock, the
CATEGORY_DESK_DOCK intent will no longer be fired.
As a side effect, the "dock home" behavior (which captures
the home key for the dock app as long as the device is
docked) is now disabled for desk docks.

Car docks are unchanged.

Bug: 5591015
Change-Id: I7884f655913c31cf53b88cb2e2b371987be27f64
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
69a1da4ddec90db501a54f0c4de94e9557aebd2e 04-Nov-2011 Daniel Sandler <dsandler@android.com> Teach UiModeMgr about high-end and low-end desk docks.

Should fix dock mode on Stingray, since its docks advertise
themselves as EXTRA_DOCK_STATE_LE_DESK and
EXTRA_DOCK_STATE_HE_DESK but not EXTRA_DOCK_STATE_DESK.

Bug: 5569662
Change-Id: I93197665c0df8dea06ca8fadae97ec267c751c85
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
801700b1a2b3b5d3cf4264b62d8a776996bda4ca 18-Jun-2010 Dianne Hackborn <hackbod@google.com> am 57f4503e: Work on issue # 2778549: Idle FRF72 is awake 18 mins more than ERE27 in 13hr test

Merge commit '57f4503e1a129d6a648f2378d36a060998a577a0' into gingerbread

* commit '57f4503e1a129d6a648f2378d36a060998a577a0':
Work on issue # 2778549: Idle FRF72 is awake 18 mins more than ERE27 in 13hr test
57f4503e1a129d6a648f2378d36a060998a577a0 18-Jun-2010 Dianne Hackborn <hackbod@google.com> Work on issue # 2778549: Idle FRF72 is awake 18 mins more than ERE27 in 13hr test

Modify UIModeManager to not get location updates every thirty minutes.
Instead it gets one once a day, and requests a new update when airplane
mode is turned off or the time zone changes.

Change-Id: I8044c27b5cd77709e4b872e2e8edd352f23e4af1
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
089de88fc2f08d284cf8031aa33cff06011a4162 12-Apr-2010 Joe Onorato <joeo@android.com> StatusBarService -> StatusBarManagerService

Change-Id: I7efc245395bd91a656b30d420c9b080877162360
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
f5c5d22c471f399f215662a8e471bf02b5b6bcfa 09-Apr-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2581524: Car home icon should always go to car home

Rework how switching between modes work so the caller can tell us
whether they want to go to home. (So car home launcher can now
tell us they always want to go home.)

Change-Id: Id4a8129027d6d162b4bae6f983911f1f4bf2578f
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
8daf2a47995b4522bceb38eef8c310268b1d91b0 02-Apr-2010 Daniel Sandler <dsandler@android.com> Make desk mode work again.

Bug: 2564612
Change-Id: I858a86d14a6840f5f587343a64c5d0c4bc5d5263
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
9c9c532d3625ba2485eb4ea6924ed0a0163fd958 31-Mar-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2560791: Expose API to go in to car mode.

Also fix bug where night mode was being used in desk dock.

Change-Id: I56c1cf3d6fe800a4f986d40cc4cb2e70b76ac261
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
e2522466552f9c6b7fcea866709710f53aa1f2a8 30-Mar-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2547337: switching night modes

Dumb.

Change-Id: Iaa72eaac54422f7fd95cf1050f6b7b6da55af0c3
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6 26-Mar-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2544466: Car Home brightness icon comes and goes while phone is in car dock in FRE83

There was a really dumb bug that was causing us to not always apply
the new configuration. As a result of fixing this, there were new
glithes in the transition between car and regular mode, so further
work here to fix that. And since I was actually working during the
night and seeing night mode, I noticed how obnoxiously bright the
status bar is compared to the car home at night, so it now nicely
dims itself when we switch to the night config. Oh and in doing
that I also found and fixed a bug in dispatching config changes to
a window (where they wouldn't get dispatched if the window didn't
resize).

FINALLY... tweak the wallpaper enter/exit animations a bit to
make them a little smoother.

Change-Id: I4e062093cbcfbc919307799a794846db2920216f
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
2ccda4dc8d800c3592b4bd4d1d70a064d98dd4fe 23-Mar-2010 Dianne Hackborn <hackbod@google.com> Improve switching to car mode, retain night mode option.

Fiddle with how we go into car mode to try to ensure we get a clean
transition. Also have the system take care of remembering the night
mode setting so it will stay at what you want.

Change-Id: Icb94fdd961c7a192f7707ec71544485a1ea12455
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
c008e0a5b74de92f3fb3c704a55973f2d9d6c4fd 16-Mar-2010 Tobias Haamel <haamel@google.com> Fix 2514479: Putting phone in car dock ignores security pattern

Don't disable the keylock pattern when the device is in car mode.
Instead it should be possible to show the lock pattern at least once
and after valid authentication it should be disabled in the system.
Since this requires additional discussion it will be moved to the
next Android release.

Change-Id: I28cddcfb6640e44a29c716b59a3d6e37e8003dca
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
780b2603041a56800ff6e49fb14535c1b1ca8907 15-Mar-2010 Tobias Haamel <haamel@google.com> Fix issue 2512221: Car Dock Notification doesn't go away

Bug description:
1) Start Car Dock app.
2) Drop phone into Desk Dock
3) Press back to quit Desk Dock app.

Car Dock Notification doesn't go away if I select it from the shade.

Change-Id: I9d3ad4dbbe8f886fc8d523d104676194c3943473
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
ba9ab183186cb2ef704759485a8481d5b8c8a650 12-Mar-2010 Bernd Holzhey <holzhey@google.com> Fix: Retrieval of location to caclulate twilight

The provider determined by getBestProvider may not have a LastKnownLocation and
therefore the system might use a fake location, even if one provider will have
a location.

Change-Id: Iec4a377b141b0260af5611f51affa5f0c4a84ed2
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
b8b11a0b1d82e24f7a79f2e1672e7f5cf1611a55 11-Mar-2010 Dianne Hackborn <hackbod@google.com> Further improvements to window management!

Fix issue #2493497: Stuck in the Emergency dialer - Home/Back keys doesn't work
This was another case of not updating the window focus when needed, this time
when the lock screen was hidden.

Also re-arrange the layout/animate flow to address issues where you would see
a flicker of whatever was behind the lock screen when showing a new activity that
hides the lock screen. This was because we were deciding to hide the lock screen
during the layout phase, which meant we had to do it without considering whether
it had drawn. So we could hide the lock screen before the window is shown for the
first time after being drawn. Now we can do this in the policy during animate, so
we can wait until the window is drawn and actually being shown.

The flow in perform layout is thus significantly changed, where the layout and
animate loops are both under the same repeating loop. The actual flow from this
should be the same, but it now allows the policy to request a new layout after
the animation loop is done. This actually cleans up a number of things in this
code as the complexity has increased.

Finally this includes a change to the ui mode manager when switching modes, to do
the resource configuration switch at a different time. This makes transitions
between modes much cleaner (though not yet perfect).

Change-Id: I5d9e75c1e79df1106108dd522f8ffed6058ef82b
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
9f93881f57e4627964311afbf4e0f6d9cb9d904e 08-Mar-2010 Tobias Haamel <haamel@google.com> Disable car mode should not require DISABLE_KEYGUARD permission

Only the system can enable the car mode and the system should
already have appropriate permissions.
But since we wanna allow all other apps to disable the car mode
again, we don't want to enforce them to specify the DISABLE_KEYGUARD
permission in their manifest.

Change-Id: I1ad244a98d65b7193ea9817bff8406cfc2bce6f3
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
e29db6a2d2ba8d9458c88fe6c6dbb2164462773e 05-Mar-2010 Mike Lockwood <lockwood@android.com> Keep screen on when in car mode and the device is powered.

BUG: 2477103

Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
924e164a83056600642a3181f19094b3ecb5262d 05-Mar-2010 Mike Lockwood <lockwood@android.com> Disable the keyguard when in car mode

BUG: 2367912

Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/services/java/com/android/server/UiModeManagerService.java
7299c41630935a2b106e73e5603579a7747f7535 05-Mar-2010 Dianne Hackborn <hackbod@google.com> Refactor car mode.

Extract all UI behavior from dock observer and ACTION_DOCK_EVENT.

Also introduce a desk type to go along with the car type all through
the resource system, since we now need to have corresponding high-level
broadcasts for desk dock mode. As part of that I also reworked some
of the logic for switching modes to all funnel through a single
update() call that looks all of the current state to decide what to
do next, and fixed various locking issues.

In addition I found there were bugs in the configuration change
handling causing us to only switch into the car mode config and
then never get out of it. Unfortunately now that we are actually
changing the configuration for each mode change, the transitions
between them are really crummy as we restart all kinds of
activities. :(
/frameworks/base/services/java/com/android/server/UiModeManagerService.java