6376 Commits

Author SHA1 Message Date
Christopher Tate
9ce685b934 Make immersive mode public & imply update locking
Activity.setImmersive(boolean) / android:immersive="bool" are now public.
In addition, if the foreground activity is immersive then an update lock
will be held on its behalf.  This lets applications such as movie players
suppress the display of intrusive notifications, OTA-availability dialogs,
and the like while they are displaying content that ought not to be
rudely interrupted.

The update lock aspect of this mode is *advisory*, not binding -- the
update mechanism is not actually constrained; it simply uses this information
in deciding whether/when to prompt the user.  It's more a guideline than
a rule.

Bug 6154438

Change-Id: Ibd3491fc437077f3fa0d9708ed91955121e8c877
2012-03-19 18:37:57 -07:00
Dianne Hackborn
5da418d331 am ce06c000: Merge "Debugging code for #6169553: Make Phone launch faster" into ics-mr1
* commit 'ce06c000b4133c63414c3244c3325e25315ab179':
  Debugging code for #6169553: Make Phone launch faster
2012-03-16 11:55:48 -07:00
Dianne Hackborn
2a29b3ad13 Debugging code for #6169553: Make Phone launch faster
The activity manager now has a tick when launching an app every
500ms, where it collects the current stack traces of the app if
it hasn't finished launching.  These traces are included as part
of dumpstate.

This is only done on non-user builds.

Change-Id: I7f09ea00aab821ac81795f48c9d68fcca65f89fe
2012-03-15 15:48:38 -07:00
Daniel Lehmann
3982af7b9c am 0e873700: Remove the country detector logging
* commit '0e87370077b322b3a88c345a44c6bf3d56617071':
  Remove the country detector logging
2012-03-12 18:25:02 -07:00
Daniel Lehmann
0e87370077 Remove the country detector logging
Bug:6156714
Change-Id: Id0ff60b0530142e2bce055ee8cf8dde94e974aa5
2012-03-12 17:04:17 -07:00
RoboErik
9162cd596b fix setting only usb mode
If you cleared the last usb mode it would fail (and so would setting
it if you started with none). This fixes it to set and unset the
last property correctly.

Change-Id: I8aa62a65ccda5f3872d2995f30d80426f07a281c
2012-03-07 17:58:30 -08:00
Kevin Hester-Chow
e0cbb81b7a Merge "Do not assume that there is always a running activity (Necessary for headless devices)" into ics-aah 2012-03-07 15:35:05 -08:00
John Grossman
d7af347922 Detect (at runtime) kernel support for the "hdmi_audio" switch.
A new switch was introduced in AndroidAtHome to deal with a race
condition between the WiredAccessoryObserver and the HW composer HAL.
When the new switch ("hdmi_audio") is present, we want to pay
attention to it instead of paying attention to the old switch
("hdmi").  This change checks at startup for the presence or absence
of the new switch and uses it if available, otherwise it falls back on
classic behavior.

see change ID I960cfc2f3e8df5342e7248a26fd313fdad2ca322 for the kernel
side changes.

see bug 6023647 for a discussion of the issue.

Change-Id: Ia2f2c399c3d85896ede0fff57ecbd51f332b3e0e
Signed-off-by: John Grossman <johngro@google.com>
2012-03-06 17:59:02 -08:00
Kevin Hester-Chow
2d72be20fe Do not assume that there is always a running activity
(Necessary for headless devices)

Change-Id: I61969ebfdd4aa02a3661272a0bcd0aa67667f115
2012-03-05 08:01:00 -08:00
Christopher Tate
f79f800864 Send UpdateLock broadcasts to manifest receivers
So that e.g. the system update service doesn't need to run all the time.

Bug 5543442

Change-Id: Icd0fcc7f771f7ba92ff190ffed0f0debba4bd911
2012-03-01 12:39:25 -08:00
Christopher Tate
8c218b78b3 Merge "Introduce UpdateLocks - "now is not a good time for non-interactive OTA"" into ics-aah 2012-02-29 11:47:02 -08:00
Dianne Hackborn
49b39ced82 am 27e20ccd: Merge "Fix issue #6073913: onActivityResult() not getting called..." into ics-mr1
* commit '27e20ccd9ac4dd1f9bf902ed2b359cc8beff7c9b':
  Fix issue #6073913: onActivityResult() not getting called...
2012-02-28 15:03:04 -08:00
Christopher Tate
66e817655a Introduce UpdateLocks - "now is not a good time for non-interactive OTA"
An "UpdateLock" works similarly to a wake lock in API: the caller is
providing a hint to the OS that now is not a good time to interrupt
the user/device in order to do intrusive work like applying OTAs.
This is particularly important for headless or kiosk-like products
where ordinarily the update process will be automatically scheduled
and proceed without user or administrator intervention.

UpdateLocks require that the caller hold the new signatureOrSystem
permission android.permission.UPDATE_LOCK.  acquire() and release()
will throw security exceptions if this is not the case.

The "is now convenient?" state is expressed to interested parties
by way of a sticky broadcast sent only to registered listeners.  The
broadcast is protected; only the system can send it, so listeners
can trust it to be accurate.  The broadcast intent also includes a
timestamp (System.currentTimeMillis()) to help inform listeners that
wish to implement scheduling policies based on when the device became
idle.

The API change here is a tiny one: a dump(PrintWriter) method has been
added to the TokenWatcher class to facilitate getting information out
of it for dumpsys purposes.  UpdateLock itself is still @hide.

Bug 5543442

Change-Id: Ic1548dd43935f45d4efc67f970abdc290a45f715
2012-02-28 15:01:30 -08:00
Dianne Hackborn
5c607433e3 Fix issue #6073913: onActivityResult() not getting called...
...if the process is killed and restarted

Try to ensure that in all cases we deliver an activity result if one
was requested.

Change-Id: Id43e830d2ee782f98ed1e3b68e5e16f3258d4ad8
2012-02-28 14:45:23 -08:00
Dianne Hackborn
37b5c7cb69 am 133dc2d7: Merge "Fix issue #6048808: sometimes auto-correct is inactive" into ics-mr1
* commit '133dc2d7aecc68990c363c861716b134910a4ced':
  Fix issue #6048808: sometimes auto-correct is inactive
2012-02-24 15:38:03 -08:00
Dianne Hackborn
7663d80f6b Fix issue #6048808: sometimes auto-correct is inactive
My previous change to speed up the time the IME is dismissed was
fundamentally flawed.  That change basically switched the order
the application called the input method manager service from doing
startInput() and then windowGainedFocus(), to first windowGainedFocus()
and then startInput().

The problem is that the service relies on startInput() being done
first, since this is the mechanism to set up the new input focus,
and windowGainedFocus() is just updating the IME visibility state
after that is done.  However, by doing the startInput() first, that
means in the case where we are going to hide the IME we must first
wait for the IME to re-initialize editing on whatever input has
focus in the new window.

To address this, the change here tries to find a half-way point
between the two.  We now do startInput() after windowGainedFocus()
only when this will result in the window being hidden.

It is not as easy as that, though, because these are calls on to
the system service from the application.  So being able to do that
meant a fair amount of re-arranging of this part of the protocol
with the service.  Now windowGainedFocus() is called with all of
the information also needed for startInput(), and takes care of
performing both operations.  The client-side code is correspondingly
rearranged so that the guts of it where startInput() is called can
instead call the windowGainedFocus() entry if appropriate.

So...  in theory this is safer than the previous change, since it
should not be impacting the behavior as much.  In practice, however,
we are touching and re-arranging a lot more code, and "should" is
not a promise.

Change-Id: Icb58bef75ef4bf9979f3e2ba88cea20db2e2c3fb
2012-02-24 13:18:23 -08:00
Dianne Hackborn
f3b7653c15 am 01011c3d: Fix issue #6037252: Screen shifts after all apps are upgraded
* commit '01011c3d7ce4f76c1a76b33a04fc63da784ddbea':
  Fix issue #6037252: Screen shifts after all apps are upgraded
2012-02-21 14:57:47 -08:00
Dianne Hackborn
01011c3d7c Fix issue #6037252: Screen shifts after all apps are upgraded
Two things: (1) make sure the boot message is always positioned within
the entire unrestricted display, and (2) allow the dim background to go
on top of the nav bar when being used for the boot message (this latter
is really a hack that should be more generally fixed in the future).

Change-Id: I7261b044eb802a39cadff931b50a679ff18781d6
2012-02-21 13:54:21 -08:00
Robert Greenwalt
652fdf9b0e am c8711ca7: Merge "Stop using shared DUN APN when tethering stops." into ics-mr1
* commit 'c8711ca7eb962072ccd6175be3cfa861195ba6cd':
  Stop using shared DUN APN when tethering stops.
2012-02-14 13:40:02 -08:00
Mike Lockwood
594eba859f am ffc89899: Merge "Don\'t pulse LED on new notification unless notification has LED flag set" into ics-mr1
* commit 'ffc89899652f5c815b6d156f55a909001420891e':
  Don't pulse LED on new notification unless notification has LED flag set
2012-02-14 12:37:51 -08:00
Robert Greenwalt
2384386f31 Stop using shared DUN APN when tethering stops.
Backported from master, including a bug fix and a cdma enhancement.

Even if other people are sharing the connection (ie, carrier wants
default and tethered traffic on the same APN) stop using a carrier-
described APN when the tethering stops.

bug:5972599
Change-Id: I25e4831855e6b62c0c3ab3a6f4d4846aaee6ac50
2012-02-14 11:44:09 -08:00
Mike Lockwood
ece18efb35 Don't pulse LED on new notification unless notification has LED flag set
Bug: 6006131

Change-Id: I719c7d68e310bfaca227f6286159b3993784926b
Signed-off-by: Mike Lockwood <lockwood@google.com>
2012-02-13 20:42:19 -08:00
Wink Saville
673b352f6b am 197fe269: Merge "Add OEM specific USB mode enumeration based on ro.bootmode property" into ics-mr1
* commit '197fe26940022be75384f4038dd789f446d33122':
  Add OEM specific USB mode enumeration based on ro.bootmode property
2012-02-10 15:14:06 -08:00
Kazuhiro Ondo
afd8f1820e Add OEM specific USB mode enumeration based on ro.bootmode property
This patch is adding a capability so that OEM can override USB mode
in case the device is boot up with OEM specific mode. (i.e. modem
debug, factory test etc.)

Bug:5964042
Change-Id: Ic8e23d302563ce71eedb74ce94cca8c65838a4f7
2012-02-10 12:29:12 -08:00
John Grossman
7d6934f3eb Add the CommonTimeManagementService.
Add a small service to the high level core set of system services to
control the configuration of the native common time service.  This
service is responsible for controlling policy regarding when the
common time service should be allowed to run, which networks it is
allowed to run on, what priority it runs at in the master election
algorithm, and so on.

Change-Id: I37308e882a0e8c4cd3e38c4f47b7c40b9150ba31
2012-02-06 18:02:33 -08:00
Robert Greenwalt
9800e30b54 am 44f64c96: Merge "Filter our v6 address from tethering dns." into ics-mr1
* commit '44f64c965776ae65ff85ef8c37afb7e14483bdf2':
  Filter our v6 address from tethering dns.
2012-01-25 11:30:44 -08:00
Robert Greenwalt
03d58bc656 Filter our v6 address from tethering dns.
Don't support IPv6 yet, and the tools crash when they see one, so
filter them out.

bug:5913888
Change-Id: Id7096aa70da4e3cc8e4702b0b489c0228a100db9
2012-01-24 16:44:50 -08:00
Robert Greenwalt
4e2acb1db5 am f449ea9e: Merge "Use the carrier-given dns addrs for tethering." into ics-mr1
* commit 'f449ea9e96162698f4ec6d62c70750eb50744da7':
  Use the carrier-given dns addrs for tethering.
2012-01-24 11:42:39 -08:00
Robert Greenwalt
f449ea9e96 Merge "Use the carrier-given dns addrs for tethering." into ics-mr1 2012-01-24 11:40:19 -08:00
Dianne Hackborn
4fdbe9e550 am 47163685: Merge "Another attempt at issue #5823276: home repaints after full-screen app is exited" into ics-mr1
* commit '47163685eb90f9520e7ae0ac0984b4e1535e8e5b':
  Another attempt at issue #5823276: home repaints after full-screen app is exited
2012-01-24 11:35:19 -08:00
Dianne Hackborn
47163685eb Merge "Another attempt at issue #5823276: home repaints after full-screen app is exited" into ics-mr1 2012-01-24 11:33:15 -08:00
Dianne Hackborn
b7ff51bde9 Another attempt at issue #5823276: home repaints after full-screen app is exited
This is between the two previous attempts.  I returned the part from the
original that was breaking gallery, but have some new code to detect when
something about the window params has changed that would require a
layout pass to make sure we still do a layout then, even if the window is
not currently visible.

Change-Id: I07745e1f66022583e3076b84cc8bbe8bd2acd48f
2012-01-23 19:15:27 -08:00
Jim Miller
879693917d am 44760b10: Merge "Revert "Fix 5797764: Increase lock screen\'s thread priority"" into ics-mr1
* commit '44760b106a4bafcf83fb356bf91683db40e0e5a2':
  Revert "Fix 5797764: Increase lock screen's thread priority"
2012-01-23 15:51:55 -08:00
Jim Miller
44760b106a Merge "Revert "Fix 5797764: Increase lock screen's thread priority"" into ics-mr1 2012-01-23 15:49:32 -08:00
Jim Miller
54dbbce1c3 Revert "Fix 5797764: Increase lock screen's thread priority"
This reverts commit 6d6a70a33746ef5147ab146f1802f0db424dd2f1

This doesn't appear to have a measurable impact for this issue.
2012-01-23 15:24:42 -08:00
Robert Greenwalt
7df80fa4e8 Use the carrier-given dns addrs for tethering.
This fixes a complaint from carriers (that we used 8.8.8.8), but also
fixes the case where there is only room for one live radio
connection: the secondary connection (tethering) doesn't have a
default route to prevent on-device traffic from slipping out on the
tethering connection, but tethered dns is proxied through dnsmasq, so
it is appearing as on-device traffic and is unroutable.  By switching
to the carrier-indicated dns servers we can use the host-routes
already set for those and kill two bugs with one fix.

bug:5898904
Change-Id: Ida8777687994f353b2d4f2c7db5d6ea4b6ac3882
2012-01-23 11:29:37 -08:00
Jim Miller
374fa7dbbc am eaa11a72: Merge "Fix 5797764: Increase lock screen\'s thread priority" into ics-mr1
* commit 'eaa11a723150f1ea79446d7ba4bf77eb47b73337':
  Fix 5797764: Increase lock screen's thread priority
2012-01-20 15:26:13 -08:00
Jim Miller
eaa11a7231 Merge "Fix 5797764: Increase lock screen's thread priority" into ics-mr1 2012-01-20 15:24:20 -08:00
Jim Miller
6d6a70a337 Fix 5797764: Increase lock screen's thread priority
This increases lock screen's thread priority from THREAD_PRIORITY_FOREGROUND
to THREAD_PRIORITY_DISPLAY to ensure it runs before other activities that
might stall lock screen when the screen turns on.

Change-Id: I14cf9f3f5c092817bc6cf2d0a254001a5d34f744
2012-01-20 14:41:55 -08:00
Dianne Hackborn
4be9cff46e am 1bae8066: Merge "Fix issue #5823276 again: home repaints after full-screen app is exited" into ics-mr1
* commit '1bae80668cc1d12bb4a4b93bce1960b2601de131':
  Fix issue #5823276 again: home repaints after full-screen app is exited
2012-01-20 12:03:31 -08:00
Dianne Hackborn
cfbf7dedad Fix issue #5823276 again: home repaints after full-screen app is exited
Don't consider a window as a candidate for the top fullscreen window
if it is not going to be a candiate for layout.

This fix does not include the change to ignore app tokens that are
hidden.  This causes problems in some dialogs that stay hidden until
their app is ready to display, but need to perform a series of relayouts
during that time to get to the right size.  Dropping this part of
the change still (mostly?) seems to allow us to avoid the bad states.

Change-Id: Ic052cb1499d3287f47e9ffeac5cd2470ee5a308c
2012-01-20 11:01:01 -08:00
Justin Ho
b800f277cb am 820b45c0: Merge "DO NOT MERGE Revert "Fix issue #5823276: home repaints after full-screen app is exited"" into ics-mr1
* commit '820b45c0a21980a43532b9fb9823f8aa08c64a15':
  DO NOT MERGE Revert "Fix issue #5823276: home repaints after full-screen app is exited"
2012-01-19 15:45:04 -08:00
Justin Ho
170997a519 DO NOT MERGE Revert "Fix issue #5823276: home repaints after full-screen app is exited"
This reverts commit 01b02a734d2988c22b00f5df6346ad03d8bf52b6.

Change-Id: I848c01fc44eb9a51ead1116b2647ed838ec1825f
2012-01-19 15:41:33 -08:00
Jim Miller
3bb3d41adb am 230a7092: Merge "Fix 5863053: Add method to lock screen immediately." into ics-mr1
* commit '230a709285abc5dfd92f05d91a8997d52a59d3c7':
  Fix 5863053: Add method to lock screen immediately.
2012-01-18 16:46:38 -08:00
Jim Miller
230a709285 Merge "Fix 5863053: Add method to lock screen immediately." into ics-mr1 2012-01-18 16:44:52 -08:00
Jim Miller
93c518e4f8 Fix 5863053: Add method to lock screen immediately.
This fixes a bug where the device fails to lock when DevicePolicyManagerService
requests the device to be locked and the screen was off because the user hit
the power button.

The change allows DPMS to directly invoke screen lock, bypasssing the screen state.

Change-Id: Iecdda6fc61e9c519119de495be23c69c3b983921
2012-01-17 18:11:05 -08:00
Dianne Hackborn
defda4de3d am 2e282f35: Merge "Fix issue #5823276: home repaints after full-screen app is exited" into ics-mr1
* commit '2e282f35b009fe4c23daca35592dae2032641643':
  Fix issue #5823276: home repaints after full-screen app is exited
2012-01-13 12:58:45 -08:00
Dianne Hackborn
2e282f35b0 Merge "Fix issue #5823276: home repaints after full-screen app is exited" into ics-mr1 2012-01-13 12:56:40 -08:00
Christopher Tate
65d8ec0dd3 am 2cf18d28: Merge "Streamline package-installed handling by the Backup Manager" into ics-mr1
* commit '2cf18d28785fdd188641867503586627cb212302':
  Streamline package-installed handling by the Backup Manager
2012-01-13 12:17:22 -08:00
Christopher Tate
2cf18d2878 Merge "Streamline package-installed handling by the Backup Manager" into ics-mr1 2012-01-13 11:49:20 -08:00