16409 Commits

Author SHA1 Message Date
Jinsuk Kim
d73e66cce1 Fix broken build
Change-Id: Ia7d207f7937e29cf48dce30d8c5a91f50c9e7d4c
2014-03-21 12:30:59 +09:00
Mike Lockwood
0416faa2b2 am 7a07f4d4: am a5853b17: am 1fe28b20: am 71060db6: am dffdf107: Merge "UsbDeviceManager: A better fix for race condition when starting USB accessory mode" into klp-dev
* commit '7a07f4d4ad1f2f4893223693aece62f095ce004e':
  UsbDeviceManager: A better fix for race condition when starting USB accessory mode
2014-03-21 03:10:34 +00:00
Mike Lockwood
c84b4d7ff2 am e920322f: am 86119603: am aa7e396f: am 935d417b: am afc3a5d3: Merge "Revert "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents"" into klp-dev
* commit 'e920322ff0c67cdd9e9682fd7c7df5221a6fb13e':
  Revert "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents"
2014-03-21 03:10:30 +00:00
Jinsuk Kim
f2fecf48f7 am c61f4dd7: Merge "Add HDMI-CEC service" into klp-modular-dev
* commit 'c61f4dd744b1b0396703aa58eb22fc31d2b7050e':
  Add HDMI-CEC service
2014-03-21 02:37:00 +00:00
Jinsuk Kim
c61f4dd744 Merge "Add HDMI-CEC service" into klp-modular-dev 2014-03-21 02:32:38 +00:00
Mike Lockwood
a5853b177c am 1fe28b20: am 71060db6: am dffdf107: Merge "UsbDeviceManager: A better fix for race condition when starting USB accessory mode" into klp-dev
* commit '1fe28b20f1cfc6d2542f8b0bfe48355f3a58067b':
  UsbDeviceManager: A better fix for race condition when starting USB accessory mode
2014-03-21 01:20:43 +00:00
Mike Lockwood
8611960301 am aa7e396f: am 935d417b: am afc3a5d3: Merge "Revert "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents"" into klp-dev
* commit 'aa7e396f44f9b3b12a6abc9d8d62cf3a6f17527b':
  Revert "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents"
2014-03-21 01:20:40 +00:00
Mike Lockwood
1fe28b20f1 am 71060db6: am dffdf107: Merge "UsbDeviceManager: A better fix for race condition when starting USB accessory mode" into klp-dev
* commit '71060db65e0e1c903b429c932cd6e27beec10a3e':
  UsbDeviceManager: A better fix for race condition when starting USB accessory mode
2014-03-21 01:14:15 +00:00
Mike Lockwood
aa7e396f44 am 935d417b: am afc3a5d3: Merge "Revert "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents"" into klp-dev
* commit '935d417b5615a62bc521a8eb58c35de1b4fdf841':
  Revert "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents"
2014-03-21 01:14:12 +00:00
Winson Chung
0bfae1063a Merge "Adding workaround for the status bar not reporting the correct system decor rect." 2014-03-21 01:11:33 +00:00
Winson Chung
96d970c93e Adding workaround for the status bar not reporting the correct system decor rect.
Change-Id: I2ea089e9d41deb2ac2a266694ac65d58830856f5
2014-03-20 18:04:46 -07:00
Winson Chung
7bcdb33d85 Merge "Adding support for clipping window transition for alternate recents." 2014-03-21 01:02:44 +00:00
Winson Chung
399f62052a Adding support for clipping window transition for alternate recents.
Change-Id: Ic7df4e6c0396afc794ffc21694814c0a93f20f31
2014-03-20 17:39:19 -07:00
Mike Lockwood
d8be49089f UsbDeviceManager: A better fix for race condition when starting USB accessory mode
On some devices, the USB "set configuration" command is propogated to the framework
after the "start accessory" event is received.  However, on other devices like
the 2011 ADK board, no "set configuration" command is sent at all until we have
reenumerated in acccessory mode.  To fix the original problem without breaking other
devices, we can simply remove assumptions about if or when "set configuration"
will be received.  Now we simply remain switch USB configuration to accessory mode
when we receive the "start accessory" command, and remain there until the existing
10 second timeout expires.

Bug: 13393825

Change-Id: I4c9e3423185bd7252a907e4568d9e3ff06044b7d
2014-03-20 12:36:51 -07:00
Mike Lockwood
205a3ea0e2 Revert "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents"
This reverts commit fbd5521fb5e94fad066e21b9f91f4782afe71660.

This change broke support for the 2011 ADK board, which never sends a "set configuration"
command before "accessory start".  So we revert this change and will replace it with a better fix.

Bug: 13535051
Bug: 13393825

Change-Id: Icd870d7ff6daff1567e04d93907f70f5d7e37884
2014-03-20 12:36:34 -07:00
Christopher Tate
adfe8b86e9 App widget backup/restore infrastructure
Backup/restore now supports app widgets.

An application involved with app widgets, either hosting or publishing,
now has associated data in its backup dataset related to the state of
widget instantiation on the ancestral device.  That data is processed
by the OS during restore so that the matching widget instances can be
"automatically" regenerated.

To take advantage of this facility, widget-using apps need to do two
things:  first, implement a backup agent and store whatever widget
state they need to properly deal with them post-restore (e.g. the
widget instance size & location, for a host); and second, implement
handlers for new AppWidgetManager broadcasts that describe how to
translate ancestral-dataset widget id numbers to the post-restore
world.  Note that a host or provider doesn't technically need to
store *any* data on its own via its agent; it just needs to opt in
to the backup/restore process by publishing an agent.  The OS will
then store a small amount of data on behalf of each widget-savvy
app within the backup dataset, and act on that data at restore time.

The broadcasts are AppWidgetManager.ACTION_APPWIDGET_RESTORED and
ACTION_APPWIDGET_HOST_RESTORED, and have three associated extras:

    EXTRA_APPWIDGET_OLD_IDS
    EXTRA_APPWIDGET_IDS
    EXTRA_HOST_ID [for the host-side broadcast]

The first two are same-sized arrays of integer widget IDs.  The
_OLD_IDS values are the widget IDs as known to the ancestral device.
The _IDS array holds the corresponding widget IDs in the new post-
restore environment.  The app should simply update the stored
widget IDs in its bookkeeping to the new values, and things are
off and running.  The HOST_ID extra, as one might expect, is the
app-defined host ID value of the particular host instance which
has just been restored.

The broadcasts are sent following the conclusion of the overall
restore pass.  This is because the restore might have occurred in a
tightly restricted lifecycle environment without content providers
or the package's custom Application class.  The _RESTORED broadcast,
however, is always delivered into a normal application environment,
so that the app can use its content provider etc as expected.

*All* widget instances that were processed over the course of the
system restore are indicated in the _RESTORED broadcast, even if
the backing provider or host is not yet installed.  The widget
participant is responsible for understanding that these are
promises that might be fulfilled later rather than necessarily
reflecting the immediate presentable widget state.  (Remember
that following a cloud restore, apps may be installed piecemeal
over a lengthy period of time.)  Telling the hosts up front
about all intended widget instances allows them to show placeholder
UI or similarly useful information rather than surprising the user
with piecemeal unexpected appearances.

The AppWidgetProvider helper class has been updated to add a new
callback, onRestored(...), invoked when the _RESTORED broadcast
is received.  The call to onRestored() is immediately followed by
an invocation of onUpdate() for the affected widgets because
they will need to have their RemoteViews regenerated under the
new ID values.

Bug 10622506
Bug 10707117

Change-Id: Ie0007cdf809600b880d91989c00c3c3b8a4f988b
2014-03-20 12:30:51 -07:00
Svetoslav
503fb80d0e Fix build
Change-Id: I2b27d51d8f555ee160dc99dba7e223f1cb3557e7
2014-03-20 10:22:41 -07:00
Svetoslav
8e3feb15c5 Added accessibility APIs for introspecting interactive windows.
1. The old introspection model was allowing querying only the active window
   which is the one the user is touching or the focused one if no window is
   touched. This was limiting as auto completion drop downs were not inspectable,
   there was not way to know when the IME toggles, non-focusable windows were
   not inspectable if the user taps them as until a screen-reader starts
   introspecting the users finger is up, accessibility focus was limited to
   only one window and the user couldn't use gestures to visit the whole UI,
   and other things I can't remember right now.

   The new APIs allow getting all interactive windows, i.e. ones that a
   sighted user can interact with. This prevents an accessibility service
   from interacting with content a sighter user cannot. The list of windows
   can be obtained from an accessibility service or the host window from an
   accessibility node info. Introspecting windows obey the same rules for
   introspecting node, i.e. the service has to declare this capability
   in its manifest.

   When some windows change accessibility services receive a new type
   of event. Initially the types of windows is very limited. We provide
   the bounds in screen, layer, and some other properties which are
   enough for a client to determined the spacial and hierarchical
   relationship of the windows.

2. Update the documentation in AccessibilityService for newer event types.

3. LongArray was not removing elements properly.

4. Composite accessibility node ids were not properly constructed as they
   are composed of two ints, each taking 32 bits. However, the values for
   undefined were -1 so composing a 64 long from -1, -1 prevents from getting
   back these values when unpacking.

5. Some apps were generating inconsistent AccessibilityNodeInfo tree. Added
   a check that enforces such trees to be well formed on dev builds.

6. Removed an necessary code for piping the touch exploration state to
   the policy as it should just use the AccessibilityManager from context.

7. When view's visibility changed it was not firing an event to notify
   clients it disappeared/appeared. Also ViewGroup was sending accessibility
   events for changes if the view is included for accessibility but this is
   wrong as there may be a service that want all nodes, hence events from them.
   The accessibility manager service takes care of delivering events from
   not important for accessibility nodes only to services that want such.

8. Several places were asking for prefetching of sibling but not predecessor
   nodes which resulted in prefetching of unconnected subtrees.

9. The local AccessibilityManager implementation was relying on the backing
   service being ready when it is created but it can be fetched from a context
   before that. If that happens the local manager was in a broken state forever.
   Now it is more robust and starts working properly once the backing service
   is up. Several places were lacking locking.

bug:13331285

Change-Id: Ie51166d4875d5f3def8d29d77973da4b9251f5c8
2014-03-20 16:52:59 +00:00
Jim Miller
8c5567ee9e am bd33dc01: am 8e69abf8: am 46e63117: DO NOT MERGE - Fix memory leak caused by mismatched linkToDeath() in WindowManagerService
* commit 'bd33dc01f68ae0f4e4861568c02619e38c40af15':
  DO NOT MERGE - Fix memory leak caused by mismatched linkToDeath() in WindowManagerService
2014-03-20 16:24:03 +00:00
Jinsuk Kim
4f512fb451 Add HDMI-CEC service
This CL adds a system service handling HDMI-CEC protocol. The service
is equipped with the capability sending/receiving HDMI-CEC messages

Not all the messages are in place. Currently it has messages to support
a few features only, as follows:

- One touch play
- System information
- Routing control (partially - active source status maintenance only)
- Device OSD transfer
- Power status

It will be extended to cover the wider usages in the follow up CLs.

The CEC standard version referenced in the implementation is 1.3a.

Change-Id: Ifed0b02f52ebf098eddb3bd0987efbf353b7e8fe
2014-03-20 16:40:22 +09:00
Craig Mautner
3bf0fb1a90 Merge "Fix oversight when checking in last CL" 2014-03-20 02:56:05 +00:00
Craig Mautner
dd221b3780 Fix oversight when checking in last CL
Too much was deleted due to the order of operations while
debugging. CL 435015 removed some critical lines.

Fixes bug 13410184.

Change-Id: Ia1fbf985d73163742c4c531e8505606454897f69
2014-03-19 19:53:45 -07:00
Jim Miller
bd33dc01f6 am 8e69abf8: am 46e63117: DO NOT MERGE - Fix memory leak caused by mismatched linkToDeath() in WindowManagerService
* commit '8e69abf8c62452e6e9bcd254a55a2d80c8ef5b3d':
  DO NOT MERGE - Fix memory leak caused by mismatched linkToDeath() in WindowManagerService
2014-03-20 02:47:09 +00:00
Minoru Aoi
2b74a24a52 Set ScreenshotSurface secure if any secure content is shown.
The screenrecord command can record secure content during rotation.
This is because the ScreenshotSurface surface for rotation animation
is not set secure even though its screenshot contains secure content.

Change-Id: I5a70be71ddfc26de4230e7d4fe547210c2154210
2014-03-20 11:35:33 +09:00
Jim Miller
46e631178e DO NOT MERGE - Fix memory leak caused by mismatched linkToDeath() in WindowManagerService
This fixes a bug where an allocated DeathRecipient in WindowManagerService
was holding a reference to keyguard binder interface after a call to
linkToDeath() without a matchin unlinkToDeath().

It was causing the keyguard side of the binder interface to stick around,
which in tern prevented the keyguard side from releasing its references.

The solution is to ensure matching linkToDeath()/unlinkToDeath() calls.

Fixes bug 11982048

Change-Id: I6959816b819ba953512c53675162195cbf1e0653
2014-03-20 02:22:38 +00:00
Nick Kralevich
244d18bfb3 am 857fe511: am 0b4f63c3: am dd6b7495: am 83725810: Merge "Get rid of noise during boot."
* commit '857fe511fe7139a41ad3d587a73758be53340e90':
  Get rid of noise during boot.
2014-03-20 02:03:01 +00:00
Nick Kralevich
0b4f63c319 am dd6b7495: am 83725810: Merge "Get rid of noise during boot."
* commit 'dd6b7495577eca7a00aa37bfdca3449cf1443681':
  Get rid of noise during boot.
2014-03-20 01:52:42 +00:00
Dianne Hackborn
0aa5163c13 Get rid of noise during boot.
This log is not an error, it is a warning, don't spam a stack
crawl when it happens.

Change-Id: I6038e3625cc0c16af9e54887b5e7ec451d9f864d
2014-03-19 18:34:52 -07:00
Michael Wright
046e0a7ba6 Merge "Use DisplayPowerRequest#wantLightSensorEnabled in ABC." 2014-03-20 01:15:39 +00:00
Dianne Hackborn
40c8725804 batstats: fix wake lock tracking, service bug
- Fix bug I introduced in handling wake lock changes where
  we weren't iterating over the new work sources correctly.
- Fix bug in ActiveServices that would wtf too much.
- Prepare to start tracking uptime in the battery history.

Change-Id: Ia94316be51bc6eab7b02f214a5c40c08e99cc3b1
2014-03-19 17:13:43 -07:00
John Spurlock
07cf4da1d0 Merge "Add stream-level suppression to vibrate/audio services." 2014-03-19 21:58:19 +00:00
Craig Mautner
d4375b4713 Merge "Fix loop limits." into klp-dev 2014-03-19 21:37:07 +00:00
Etan Cohen
4a6f087950 Merge "Catch Netd exceptions to avoid runtime restart" 2014-03-19 21:30:15 +00:00
Robert Greenwalt
d9cb2f3d06 Catch Netd exceptions to avoid runtime restart
bug:13475636
Change-Id: If36a0051a957fc066711fe8225f8981bc07add04
2014-03-19 14:26:28 -07:00
Craig Mautner
b4998eec3c Fix loop limits.
Fixes bug 12207606.

Change-Id: I9b450d2bc2a72a1f6581147f8930188f34c85299
2014-03-19 14:09:59 -07:00
Nick Kralevich
70b7d163aa am 31654e19: am b630ffe3: am e75d340a: am 5c8e1a6e: Merge "Allow PMS to restorecon directories under /data."
* commit '31654e19c92c94675c0e2f2a86b59683d4c48d2f':
  Allow PMS to restorecon directories under /data.
2014-03-19 20:34:32 +00:00
Nick Kralevich
b630ffe3fd am e75d340a: am 5c8e1a6e: Merge "Allow PMS to restorecon directories under /data."
* commit 'e75d340ae5919942d19f57856ae9e3f8bc62e098':
  Allow PMS to restorecon directories under /data.
2014-03-19 20:24:32 +00:00
Jeff Sharkey
c1ae44fb8a Merge "Define an OEM directory, scan features and APKs." 2014-03-19 20:16:17 +00:00
Jeff Sharkey
1be762c1ba Define an OEM directory, scan features and APKs.
To support OEM customizations, define a new top-level directory
that roughly mirrors the layout of the system partition.  Scan this
location for (non-privileged) apps, and for additional features.

Bug: 13340779
Change-Id: Idb6d6626655061ee31ad952cab734d30ea6130b9
2014-03-19 12:44:48 -07:00
Robert Greenwalt
1b98e90db0 resolved conflicts for merge of 0bff77d6 to master
Change-Id: Ia4c86126079740978658a05579b56d59d41a7b01
2014-03-19 12:41:54 -07:00
John Spurlock
1af30c7ac4 Add stream-level suppression to vibrate/audio services.
- Add new audio restriction layer to app-ops.  Restrictions add
additional constraints to audio operations at a stream-level.
Restrictions do not affect the persistable state, and are purely
additive: that is, they can only impose additional contstraints, not
enable something that has already been disabled.  Restrictions
also support a whitelisted set of exempt package names.

- Add new audio stream-level checks to app-ops.

- Implement a provisional OP_PLAY_AUDIO suppression to three
java entry points MediaPlayer, AudioTrack, & SoundPool.

- Enhance vibrator api to take stream information as an optional
hint - the constants correspond to AudioManager stream types.
OP_VIBRATE now supports the stream-level restriction check.

- Simplify Vibrator subclasses by adding default implementations
for two .vibrate calls.

- Migrate NoMan's zen-mode control to use the new app-ops
stream-level restriction mechanism.

Change-Id: Ifae8952647202f728cf1c73e881452660c704678
2014-03-19 15:32:51 -04:00
Michael Wright
e5659baa4f Use DisplayPowerRequest#wantLightSensorEnabled in ABC.
Change-Id: I2cb869a40ed91331a55972d0ea557269733d5204
2014-03-19 12:25:20 -07:00
Robert Greenwalt
45b1e5ec05 am 42b746e4: am bd84f01c: am 5d3d4ee3: Merge "Handle provisioning APN by turning off/on data." into klp-dev
* commit '42b746e4d8baa6141598ddaae7148baea2ddf366':
  Handle provisioning APN by turning off/on data.
2014-03-19 19:13:00 +00:00
Robert Greenwalt
42b746e4d8 am bd84f01c: am 5d3d4ee3: Merge "Handle provisioning APN by turning off/on data." into klp-dev
* commit 'bd84f01c6ce122ab58fc7c5b687dc8bfb0fb03e6':
  Handle provisioning APN by turning off/on data.
2014-03-19 19:08:44 +00:00
Robert Craig
4385343fd8 Allow PMS to restorecon directories under /data.
This change applies a relabel to both /data/data and
/data/user directories on boot. Not every boot will
apply this relabeling however. The appropriate
seapp_contexts is hashed and compared to
/data/system/seapp_hash to decide if the relabel
should occur.

Change-Id: I05e8b438950ddb908e46c9168ea6ee601e6d674f
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
2014-03-19 17:37:37 +00:00
Robert Greenwalt
5d3d4ee300 Merge "Handle provisioning APN by turning off/on data." into klp-dev 2014-03-19 16:12:01 +00:00
Ashish Sharma
a3f828ba30 Update the tests to deal with the new timestamps in idletimer module.
Change-Id: I1a8368d84ef806f1501b0a1f5e817388a1d10518
2014-03-18 16:38:58 -07:00
Ashish Sharma
0535a9f7aa Include elapsed realtime (nanos) of the event in the radio state change notifications.
Bug: 13247811
Change-Id: I3454aa159a68b9087b4762df947b41965b5a3941
2014-03-18 21:42:02 +00:00
Craig Mautner
76aa61a920 Merge "Defer removal of activity until animation complete." 2014-03-18 21:36:02 +00:00
Craig Mautner
81481fc201 Defer removal of activity until animation complete.
Do not remove an AppWindowToken or its Task if it is running an
animation. Doing so leaves windows orphaned and bad things happen
when the system tries to retrieve the task assoicated with the
windows during layout.

Fixes the ugly output associated with bug 13440426.

Change-Id: I9d5fc50a7cb6189160d51cee3c82f7813baee715
2014-03-18 14:35:04 -07:00