History log of /frameworks/base/core/java/android/content/Intent.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
851ec49de73913547a51476e9c80cccfd7c15572 13-Oct-2016 Dianne Hackborn <hackbod@google.com> Fix issue #32125907: Intent.replaceUnsafeExtras() corrupts original bundle

We now recursively generate new Bundle objects if we need to
do any stripping.

Change-Id: I4ca7896a0771c25264591ae7c79df85816d630d4
ee3fc61cf9802df8b34950639463784547173fef 27-Sep-2016 Kevin Hufnagle <khufnagle@google.com> docs: Fixed example of ACTION_VIEW intent am: aedfd75b1b
am: 2c885fc5ea

Change-Id: I1d94ee6938726736d6cbccafea848dd6f3d6a350
2c885fc5ea03e1e01ba2f13fe3181e8e8fdafac3 27-Sep-2016 Kevin Hufnagle <khufnagle@google.com> docs: Fixed example of ACTION_VIEW intent
am: aedfd75b1b

Change-Id: Iaaaa1cb0f6d796ad5c5c178c70850fd83e635013
aedfd75b1b83e2cf12fe8946e867af78f16d57c9 09-Sep-2016 Kevin Hufnagle <khufnagle@google.com> docs: Fixed example of ACTION_VIEW intent

The ACTION_VIEW intent contained a content path that was inconsistent
with each of the other examples on the Intent reference page. Added
the "people" directory to the content path to remedy this issue.

Bug: 26405268
Change-Id: Ieb4f67e072338a108b9775d3bafad3d0773533d2
fea1b776e96d10879769d3a3c17f297146605062 28-Jun-2016 Todd Kennedy <toddke@google.com> Implement new ephemeral resolver design

In the new design, the ephemeral installer can be returned from
queryIntentActivities which means any intent resolution could potentially
return the installer. Additionally, the new design calls for a platform
defined broadcast receiver that receives the status from the ephemeral
installer. This receiver then starts the final intent -- either to launch
the ephemeral application or to launch the fallback.

For more detail, see go/ephemeral-design

Bug: 30805203
Bug: 30273584
Change-Id: I6644bbb4f180d2d22c63af04b9857577516344a9
(cherry picked from commit 8e2d9d1d9050e93b15c54e992698325c7d4aa57c)
1030520822c42cc7357b463d301c7e97e928ba22 15-Jul-2016 Makoto Onuki <omakoto@google.com> Cache the default launcher.

Originally we always checked with PM for the default launcher,
which would take ~2ms.

Now we cache the result, and clears the cache when (any) preferred
activities change.

Bug 30126557

Change-Id: Iceef288cd372c8bb9b119aa493e5173d894f2302
0bae4dcd76d4138ca9ec9d0b0e9960705e54650d 16-Jun-2016 Gina Dimino <gdimino@google.com> Merge \"Docs: Suppress errors in SystemApi Build Bug: 28427390\" into nyc-dev
am: d06520a488

Change-Id: I127501113d4e290a1e8d0b3a44ba779ec36cdc1d
98ad88811c76f7334c285cc970a4107f7a716b5a 01-Jun-2016 Gina Dimino <gdimino@google.com> Docs: Suppress errors in SystemApi Build
Bug: 28427390

Change-Id: Ifea85bf7b1fcdd30a3d7f61bd17d0efba6368aa4
f9d5e6a3db7eb8c378cc2ac78e976aa0312f2c6e 26-May-2016 Benjamin Franz <bfranz@google.com> Add an intent extra to force master clear

Currently, if a priv-app sends ACTION_MASTER_CLEAR, whilst
DISALLOW_FACTORY_RESET is set, the factory reset is blocked. This CL
introduces a new extra for master clear that let's the priv-app bypass
the user restriction.

Bug: 28689894
Change-Id: I4bf979a3826454e977f1abff4562f85c8d0eec4a
2265fddba6d8469ae3b2b0540c54275a7cb17abf 18-May-2016 Svet Ganov <svetoslavganov@google.com> Hide ephemeral API


Change-Id: I4e9cdd6e29df44a173136aed13c4039443d944cc
ae0e03a9e03de34e37b768b971d7596d7220a053 26-Feb-2016 Svet Ganov <svetoslavganov@google.com> Cleanup of the PackageInstaller API - Frameworks

The PackageInstaller app manages side-loading apps as well
as permission management. It should be updatable, hence
should rely on system APIs to talk to the platform. This
is the first step of defining an API boundary.

Change-Id: I9814eafd0b22ae03b4b847a7007cdbf14c9e5466
1a83df8ba716d027ac26c9198ed3d3b8d2b98ad1 22-Apr-2016 Andrei Stingaceanu <stg@google.com> Merge "Keyboard shortcuts: dismiss when activities start via shortcut" into nyc-dev
0bf096f1b45959e260b09b2483e79187c1991f54 14-Apr-2016 Andrei Stingaceanu <stg@google.com> Keyboard shortcuts: dismiss when activities start via shortcut

* introduced a new intent DISMISS_KEYBOARD_SHORTCUTS and
and new public API in Activity (which sends a broadcast
to KeyboardShortcutsReceiver) which applications can
use to dismiss the keyboard shortcuts.

* plumbing and implementation for a new call to dismiss
keyboard shortcuts from PhoneWindowManager and used it:
** when starting activities invoked via Search+key
** when starting activities invoked via META
** when starting activities via application launch keys

* removed unused variable in

Note that for apps started via touch (aka non-shortcut)
like tapping the Settings gear icon from the notification
bar the menu is not automatically dismissed.

Bug: 28012198
Change-Id: I83a8d4f342bb8a08115a648648834d0d2bac19fd
b40667eccdd797d08560c33e696625509f90d52b 22-Apr-2016 Rubin Xu <rubinxu@google.com> Merge "Remove MANAGED_PROFILE_AVAILABILITY_CHANGED broadcast" into nyc-dev
59c9a93fc268e226495d4ee8cf7c507c2ea2c433 20-Apr-2016 Trevor Johns <trevorjohns@google.com> Merge changes from topic 'merge_docs_nyc-dev' into nyc-dev

* changes:
Remove links to createAndInitializeUser() and createUser()
Resolve merge conflicts of a5060ee to nyc-dev
682c24e22811d4ee17ae1cd61bf255c3f7e722b7 12-Apr-2016 Trevor Johns <trevorjohns@google.com> Resolve merge conflicts of a5060ee to nyc-dev

This undoes the automerger skip which occured in
commit e740c84dc32180214a7fd157105d6c18d30408ee and
replays it as a standard (NOT -s ours) merge.

Change-Id: If5a47be26f73d6a0735c425cd66310a3e2a89086
a09b4d2a611a7606e8fc8c73a24bd941b6fc173f 15-Apr-2016 Narayan Kamath <narayan@google.com> Remove unnecessary allocation+unboxing of objects.

Transforming String->int can be done with 0 allocations
using Integer.parseInt.

bug: 28078871
Change-Id: I8d9f322d7154728849dde61ef282046032858d60
19c2a57c24fa337030ff31867380b685e9a5b586 15-Apr-2016 Rubin Xu <rubinxu@google.com> Remove MANAGED_PROFILE_AVAILABILITY_CHANGED broadcast

Bug: 27532254
Change-Id: Iaca17355d3ec75fa09c36a5353f40d678cc2c812
b53a36b8cf331b0edd73909c42024fac0984ffcc 13-Apr-2016 Sudheer Shanka <sudheersai@google.com> Merge "Add an intent action ACTION_SHOW_APP_INFO." into nyc-dev
738ab04fd94746d47ebeffa97252b7e3fb2a8d93 11-Apr-2016 Clara Bayarri <clarabayarri@google.com> Merge "Expose the Keyboard Shortcuts Helper in Activity" into nyc-dev
52c39215db2a0e1d339733e06284a2ba81e4c794 08-Apr-2016 Adam Powell <adamp@google.com> Chooser filtering and caller direct share targets

Let apps invoking the system chooser specify components to filter out
such as themselves; this will prevent duplicate nonsensical UX where
it doesn't make sense for an app to share to itself.

Similarly, let apps provide their own Direct Share targets for when
they do want to let users share via their own internal services in the
same UI. These options can be used together.

Also fix a bug where a lingering binder reference from a remote
ChooserTargetService that hasn't been GC'd in the remote process could
keep an active reference to a ChooserActivity instance.

Bug 28073484

Change-Id: Ib613b1153b49dfedf79574b1af7c45379eceec24
80b6641f28a38e7efa40b26c8041837d3938b2b6 07-Apr-2016 Sudheer Shanka <sudheersai@google.com> Add an intent action ACTION_SHOW_APP_INFO.

Bug: 27404193
Change-Id: I0ca43ba4cde47b7c0621cb3caf0d726ce8c70386
eb3c2d3e630825974e7275607558978252882204 01-Apr-2016 Clara Bayarri <clarabayarri@google.com> Expose the Keyboard Shortcuts Helper in Activity

This allows apps to trigger it from their own menus

Bug: 27811273
Change-Id: I028caa5a88bb0e1c51238db28bb496293b78f90b
e95057ade126e9e159fe05b69c32f85f7891490f 01-Apr-2016 Rubin Xu <rubinxu@google.com> Split ACTION_MANAGED_PROFILE_AVAILABILITY_CHANGED into two.

Add more comment to EXTRA_QUIET_MODE

Bug: 27532254
Change-Id: I68a217561afca8b87f523c62393cdad097d5b75d
7a3bff184731912ddcf3c88da1a6c58c956e01f2 29-Mar-2016 Suprabh Shukla <suprabh@google.com> Merge "Removing unused intent extra" into nyc-dev
2810b694f58a5ab96f071bc8b4de13b70b6489f6 29-Mar-2016 Suprabh Shukla <suprabh@google.com> Removing unused intent extra

Change-Id: If3904d0b3878390e6a49776aa8fcbd4d8592016d
bd91e2f3f6aca512a02be645b2515b5e3331e177 22-Mar-2016 Jeff Sharkey <jsharkey@android.com> Update PRE_BOOT_COMPLETED for FBE.

Now that CE data isn't available until after a user is unlocked, we
need to delay the PRE_BOOT_COMPLETED broadcasts. This is done by
adding a new RUNNING_UNLOCKING user state to the UserController

We now track the last fingerprint a user was logged in under, and we
dispatch PRE_BOOT receivers when that fingerprint changes. To work
around battery pull issues, we only persist the updated fingerprint
once all PRE_BOOT receivers have finished. This is less granular
than the original solution, but it's still correct. We only consider
a user as "logged in" once it transitions into the RUNNING_UNLOCKED

When starting a process, track if the user was "unlocked" when
started, so that we only spin up unaware providers in processes
started before user unlock.

Add generic IProgressListener to communicate PRE_BOOT progress and
strings up to lock screen. For now, LockSettingsService just blocks
until finished, but it could display these strings in the future.

Bug: 27220885
Change-Id: I349439776b885acd32f6a578d8951ffd95640be2
cf3f0a11a83e7a798e0586a78efdafc82a7f3d08 18-Mar-2016 Jeff Sharkey <jsharkey@android.com> Update direct boot related documentation.

Also hide a few APIs as requested by council. Add a method to
easily determine if a given File would already be encrypted at rest
by the OS.

Bug: 27531029
Change-Id: Icad5f1cd56411ad3ac707db85fd7449acdcc4b94
d136e51a99df5275eaafdde407e89e78c02b829b 10-Mar-2016 Jeff Sharkey <jsharkey@android.com> Defuse Bundles parsed by the system process.

It's easy for apps to throw custom Parcelables into Bundles, but
if the system tries peeking inside one of these Bundles, it triggers
a BadParcelableException. If that Bundle was passed away from the
Binder thread that delivered it into the system, we end up with a
nasty runtime restart.

This change mitigates this trouble by "defusing" any Bundles parsed by
the system server. That is, if it encounters BadParcelableException
while unpacking a Bundle, it logs and delivers an empty Bundle as
the result.

Simultaneously, to help catch the system process sticking its
fingers into Bundles that are destined for other processes, a Bundle
now tracks if it's "defusable." For example, any Intents delivered
through ActivityThread are marked as being defusable, since they've
arrived at their final destination. Any other Bundles are considered
to be "in transit" and we log if the system tries unparceling them.

Merges several Parcel boolean fields into a flags int. Add better
docs to several classes.

Bug: 27581063
Change-Id: I28cf3e7439503b5dc9a429bafae5eb48f21f0d93
fe023137d0b33e30d0428132e6212ea4d0df8b5c 10-Mar-2016 Tomasz Mikolajewski <mtomasz@google.com> Update docs for ACTION_QUICK_VIEW.

Bug: 27531273
Change-Id: I917ca16c14db20e6a2773018e00a61ff5fcf7ecd
6bdf257d4343e4208071d52f2e1b639d9f3af52d 12-Mar-2016 Wale Ogunwale <ogunwale@google.com> Added more info to FLAG_ACTIVITY_LAUNCH_ADJACENT documentation

Developers need to add FLAG_ACTIVITY_MULTIPLE_TASK flag if they don't
want an existing instance of their activity to be used.

Bug: 27604971
Change-Id: I80791ba9b8a68e4ffcf7a5b9a963f27239071037
2f68e8a62ad776106e2bb3506b1a3a47b53dca62 23-Feb-2016 Jason Monk <jmonk@google.com> Add constant to link to app's general settings

Bug: 27276982
Change-Id: Ia438faeb12b24251bb74919f680713a7bc03e0b5
34a9d5271915fb82c22811e6d17691a34b6c52c1 17-Feb-2016 Felipe Leme <felipeal@google.com> Removed Intent.OPEN_EXTERNAL_DIRECTORY.

Such intent is now encapsulated by StorageVolume.createAccessIntent().

BUG: 26742218

Change-Id: I2e2bd71126ecd74981f77b0af7d069f51aaece74
04a5d40cf35fb2c2fca2c1bfd573e5916d804ef6 09-Feb-2016 Felipe Leme <felipeal@google.com> Initial implementation of StorageManager.getVolumesList().

This change makes StorageManager.getVolumesList(),
StorageManager.getPrimaryVolume(), and StorageVolume public and adds a
buildAccessIntent() in the latter to automatically generate the
ACTION_OPEN_EXTERNAL_DIRECTORY intent, but it doesn't change the
ACTION_OPEN_EXTERNAL_DIRECTORY implementation yet (i.e., it still takes an URI with the physical path of the directory, instead of a StorageVolume and
a directorny name).

BUG: 26742218

Change-Id: I36c59c42b6579e125ec7f03c3af141260875a491
b1b302660cf5b1b1c5b342cc90eca93b8f66890c 09-Feb-2016 Kenny Guy <kennyguy@google.com> Support FBE for managed profiles.

Allow launcher to see and attempt to launch non-crypto
aware application when profile is locked.
Hide unlock notification until parent user is unlocked.
Have unlock notitication use confirm credentials to unlock
the profile.
Updated notification strings as per suggestions in mocks
to make it clearer between users and profiles.

Bug: 27038260

Change-Id: If2d2c8148670d814544f4edd44193d15da32a289
52fe147602af948daef967cec9d41dbdfa34b187 10-Feb-2016 Felipe Leme <felipeal@google.com> Whitelisted ACTION_OPEN_EXTERNAL_DIRECTORY to use file:// URIs.

BUG: 27109099
BUG: 26742218
Change-Id: I4848b30e6efbda72ff04a6786bac32f34d528f84
37355a9f5d1e82c6d3eb3d6c919462373457af4c 06-Feb-2016 Jeff Sharkey <jsharkey@android.com> Tweaks to file:// Uri StrictMode checks.

Whitelist two more legacy intent actions, and don't enforce the
StrictMode checks when resolving intents that might be coming from
legacy apps. Newer apps would have already been yelled at directly
before getting to the resolver.

Bug: 26976516, 26977622
Change-Id: Ibf72a361ed68c52cfaac16c32ab40e79005a42e7
174d36d87a4b00ef16f18a388aa54592470d442d 31-Jan-2016 Wale Ogunwale <ogunwale@google.com> Merge "Renamed FLAG_ACTIVITY_LAUNCH_TO_SIDE to FLAG_ACTIVITY_LAUNCH_ADJACENT"
a8b42780c24aa6938731aff186f152a7f8829528 31-Jan-2016 Jeff Sharkey <jsharkey@android.com> Ignore null actions.

Bug: 26862905
Change-Id: I30a21e67b0f60ebca5eaccc843834059e52a6b78
2a25a62739bca2f93aa91fbba698a6de697032b2 30-Jan-2016 Wale Ogunwale <ogunwale@google.com> Renamed FLAG_ACTIVITY_LAUNCH_TO_SIDE to FLAG_ACTIVITY_LAUNCH_ADJACENT

Per feedback from API council.

Bug: 26508215
Change-Id: Id17166fe981587c9c16c382ccbdf0846ed2ae5d6
54fa566ab74368bd0f0a8e9da7c695b2d33d6124 30-Jan-2016 Jaewan Kim <jaewan@google.com> Merge "PIP: Use StatusBarService to handle PIP key"
c552b04cb4aac9d31dbaf9744f32ddc14886e222 18-Jan-2016 Jaewan Kim <jaewan@google.com> PIP: Use StatusBarService to handle PIP key

Bug: 26591829
Change-Id: I7051fab966e2fc0887b2a21ddbf11aff7e16804b
344744b49633a7f8aa0c8e43469bbfcf9d8e2cab 29-Jan-2016 Jeff Sharkey <jsharkey@android.com> Exposing file:// beyond your app is bad, m'kay?

For several releases now we've told developers that sharing raw files
between apps is a recipe for trouble. There are at least three major
problems with sending raw files:

-- Apps sending generic intents can't know who is at the other end,
so they may not have access to shared storage locations. This is
more likely now that runtime permissions require apps to explicitly
ask users for permission.

-- Apps making files in their private storage world-readable has been
deprecated for several releases, and now in N it's fully blocked. If
we let these intents through, the receiving app would fail to open
the file, when the real blame rests on the sending app.

-- Devices with user profiles can't share raw files when using
cross-profile intent filters, since filesystem access is fully
locked down between users.

The time has finally come to communicate clearly that if you're
sharing content between apps, you need to use content:// Uris. We
added the simple FileProvider several years ago to give apps a clean
way to migrate with minimal work on their part.

Bug: 26860922, 9069185
Change-Id: I075f627f6a0d6c7fca2c090ca133b9aae9801c64
5fc9b8b86b3ee5aaea2e0b288f70e66930994d6f 28-Jan-2016 Suprabh Shukla <suprabh@google.com> Merge "Added a constant to be used as an Intent extra"
74a2fe4f03292d78d3823c87ec1fead46f6d7c57 27-Jan-2016 Suprabh Shukla <suprabh@google.com> Added a constant to be used as an Intent extra

Added a constant which can be specified to skip the uninstallation
confirmation dialog. Useful in cases where we want to show a different
warning message to the user before starting the UninstallerActivity

Change-Id: Ia87184a9ad715b628118feb447388625b8bf7f1c
a35b5539a95342799a18e95616c5e5751a198e4c 20-Jan-2016 Peng Xu <pengxu@google.com> Dynamic Sensor Discovery Implementation

Defined the dynamic sensor meta data type and UUID of sensor, as well
as the broadcast intent that is related to dynamic sensor status

Modify SensorManager, SystemSensorManager and the JNI layer to support
dynamic sensor discovery.

Added SensorNotificationService to notify apps that sensor connected
or disconnected via broadcast.

Change-Id: I28adfb005357d7e3983d65117d6865830c75027d
3cb48cd2a8a73bde15f88810fb4542777ef7ee83 27-Jan-2016 Felipe Leme <felipeal@google.com> Minor improvements on parseCommandArgs,

- Added --receiver-foreground flag.
- Documented -f flag.

BUG: 26805230
Change-Id: Iee7a45dba549773abd7b026f5205ab94f0a8ef2a
795c458c89418885f146f40b8d4de96fb0d08ffe 25-Jan-2016 Rubin Xu <rubinxu@google.com> Merge "Turn off profile by stopping the user."
f13c9801697ccac3171137df10dd15f491dd15bd 21-Jan-2016 Rubin Xu <rubinxu@google.com> Turn off profile by stopping the user.

Bug: 22541941
Change-Id: I713ab9b87f3dd1b7bd6206af137562d20a44d76d
c46d891170f061e8c97b2c6938638b2a46e6524b 25-Jan-2016 Tomasz Mikolajewski <mtomasz@google.com> Merge "Make ACTION_QUICK_VIEW public."
c7b1f89e9e86fcea8e4d334cebbf427dbd278ae1 16-Jan-2016 Felipe Leme <felipeal@google.com> Created a new API to grant scoped directory access to applications.

The Storage Access Framework currently provides an
API (OPEN_DOCUMENT_TREE) that lets the user pick a directory to be used
by the application. Although this APIs is very powerful (for example, it
allows the user to create sub-directories, delete and share files,
etc...), it's too complex for simpler use cases like a camera
application trying to have access to the standard Pictures directory.

The new API (OPEN_EXTERNAL_DIRECTORY) simplifies this scenario by
letting the application select a standard, pre-defined directory (as
defined by android.os.Environment). The user still needs to grant access
to the requested directory, but the resulting UI will be simpler and
more straightforward.

Usage example:

// ...
int requestCode = 42;
Intent intent = new Intent(Intent.ACTION_OPEN_EXTERNAL_DIRECTORY);
new File(Environment.getExternalStorageDirectory(),
startActivityForResult(intent, requestCode);
// ...

public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != Activity.RESULT_OK) {
Uri uri = data.getData();
int modeFlags = data.getFlags()
getContentResolver().takePersistableUriPermission(uri, modeFlags);

BUG: 23011462
Change-Id: Ie832026532f74e681ef220b761667eb66ff3c8b0
319fb497db6c4a35da34be35641af2705709bd88 19-Jan-2016 Tomasz Mikolajewski <mtomasz@google.com> Make ACTION_QUICK_VIEW public.

Bug: 20822219
Change-Id: I301031c513d31890d46819c2c911c342978bdc2e
69d5ebc59e3cbc9c394906a95dc4b9bdc3355c08 14-Jan-2016 Andrei Stingaceanu <stg@google.com> Suspend apps - broadcast intent and API

Send a protected broadcast to registered receivers only
when packages get suspended.

Bug: 22776761
Change-Id: I043053ed45bdc202ead18518a0c1e39cce47947c
11a27b19d17bb7cf8a83a34a60924971feaf7cb2 15-Jan-2016 Youngsang Cho <youngsang@google.com> Merge "PIP: Use long press HOME for PIP on Android TV (2/2)"
52632e21faf5aa63e53e5626046bc1742cba100c 14-Jan-2016 Jaewan Kim <jaewan@google.com> PIP: Use long press HOME for PIP on Android TV (2/2)

Bug: 25580820
Change-Id: Ic269132ec7de1e725989ad57a1ee205b3334e3bb
32cb9ab5cc793609c174870c704169a9f99a158c 14-Jan-2016 Dongwon Kang <dwkang@google.com> Fix javadoc related to ACTION_MEDIA_RESOURCE_GRANTED

This addresses comments left in If506a533c5c7b567e770217a9430bf68b539677a

Change-Id: I6f952db6a8fa246d974bab556be3e21fe1b7f3da
2034a4c4c5edd1516d03b73a8c8d8600eb3d4cbc 14-Dec-2015 Dongwon Kang <dwkang@google.com> Add a way for SystemUI to receive media resource (e.g. A/V codec) usage

Bug: 26175834
Change-Id: If506a533c5c7b567e770217a9430bf68b539677a
ea9b10e64419edbd5d3ed13f82007ffed97af418 04-Dec-2015 Clara Bayarri <clarabayarri@google.com> Work Challenge: Handle Recents launches

Intercept calls to start activities from the recents
stack and show the Work Challenge if needed. This requires
passing the taskId to ConfirmDeviceCredential so it can
launch the recents task itself when the credentials are

Change-Id: I013b134f3f31a35b551ad683c68cc89b8af44499
2f3e35376ada0327b34a71d7c45ac6e6d955d7dc 21-Dec-2015 Jeff Sharkey <jsharkey@android.com> More work towards triaging missing app behavior.

Many places across the platform query package details without
gracefully handling packages or components that go missing for
various reasons. This can cause annoying user data loss, such as
resetting back to built-in apps or dropping of accounts, etc.

This change verifies that system callers have thought about these
edge cases by logging if they use default matching behaviors without
explicitly marking themselves as being "triaged." (The logging is
currently disabled by default.)

Also creates explicit definitions of supported flags for various
incoming PackageManager calls, and defines a clear distinction
between flag types:

-- GET-style flags are used to request additional data that may have
been elided to save wire space.

-- MATCH-style flags are used to include components or packages that
would have otherwise been omitted from a result set by current system

There are a handful of existing GET flags that better fit under the
MATCH definition, so this change clones them to new constants and
marks the old ones as deprecated.

Fixes bug in JobSchedulerService to consider jobs from apps on
external storage. Revert some dialer behavior back to being

Change-Id: I9b6ab0968241e3479bddbd78de0c51e3b9917318
2a9e3f8e6813716ab88ca54fd04ae047dc9aaaeb 18-Dec-2015 Jeff Sharkey <jsharkey@android.com> Better named encryption flags, start triaging.

Create distinct flags for encryption aware, unaware, and both, and
name them like the other MATCH_ flags.

Start adding logic to help triage all system internal callers to
verify that they've done their homework and thought about how to
handle apps while locked. Call sites in the system should either
ask for explicit matching behavior, or explicitly use the DEFAULT
match flag to indicate that they've been triaged to use the
default state-based matching.

Bug: 26250295
Change-Id: I86214e5c4f71a6dc72f06930800388713aecd107
80e29f1ccad2398e95d7b64bb89eb9c391a9da05 14-Dec-2015 Filip Gruszczynski <gruszczy@google.com> API for launching activities to the side in side-by-side mode.

This API is intended for side-by-side mode, so that when a new activity
is launched, it will show up on the other side instead of covering the
launching activity.

Bug: 26141281

Change-Id: I97d7f2f48d42a31cfb1a86821474582b9c5d9e45
7440f177c3e70da0b883f8abffd6c8fc1d507bb8 09-Dec-2015 Todd Kennedy <toddke@google.com> Fix ephemeral post-install launching

Provide the ephemeral installer with some additional pieces of information:
1) instead of de-referencing the URL a second time, give the installer the
exact package name
2) instead of relying on ephemeral apps to define verified links, give the
installer a pending intent to launch when the ephemeral is installed
3) give the installer a pending intent to launch if the installer fails,
for whatever reason, to install the ephemeral app

Bug: 25119046
Change-Id: I45f50481caee09d5d09451e4b2492e64b0faae82
6ac42aeed905181b484f97a53db57a17134ef7a8 09-Dec-2015 Dianne Hackborn <hackbod@google.com> Add a mechanism for broadcasts to control background dispatching.

Right now this is just for the BOOT_COMPLETED broadcast to allow
all apps to receive it.

Also clean up the dumpsys of the broadcast queue to not have
every little detail of ResolveInfo+ActivityInfo+ApplicationInfo,
which is just not useful and makes reading the broadcast queue
debug output a lot harder because of so much noise there is.

And rename the package shell query-intent-* commands to a
shorter query-* form.

Change-Id: I0d01565babb87e68b840c9756a2ea730d699efc7
0a29ecd8a53b5ac63b628e870a344650ff34c4b0 04-Nov-2015 Rubin Xu <rubinxu@google.com> Introduce quiet mode state to managed profile users

Quiet mode means the user will be free from visual and audio interruptions
from apps inside the managed profile, including notifications, widgets and
others. This CL adds the underlying state bit to users and exposes various
APIs to control and query the quiet mode state.

Bug: 22541941
Change-Id: If5f8e5a897843050e83b6ec26cb39561098f12b9
bedbaa9ea6e41eaa34a35098c913c096ddf2ce0f 03-Dec-2015 Jeff Sharkey <jsharkey@android.com> Flesh out user locked/unlocked lifecycle.

When a user is first started, we assume that they're "locked" meaning
that credential-encrypted data is unavailable. Once credentials have
been supplied, we can transition the user to a fully running state.

To facilitate this lifecycle, UserState now has two separate
RUNNING_LOCKED and RUNNING states. To ensure consistent events are
sent on all devices, we always step through RUNNING_LOCKED before
arriving at RUNNING. This consistency means that apps processing
data based on the new ACTION_LOCKED_BOOT_COMPLETED broadcast and
system services using the new onUnlockUser() event will be less
bug-prone over time.

If the user storage is unlocked (which is the case on the majority
of legacy devices), we immediately transition from the RUNNING_LOCKED
into the RUNNING state.

Add logging for all state transitions.

When we "recover" a user in the process of being shut down, return
to the last known state.

Bug: 25943941
Change-Id: I5fec980f10b0d0fb2c272a662d193dc15136f9b9
9c165d76010d9f79f5cd71978742a335b6b8d1b4 02-Dec-2015 Svet Ganov <svetoslavganov@google.com> Add optional permission review for legacy apps - framework

For some markets we have to allow the user to review permissions
for legacy apps at runtime despite them not supporting the new
permission model. This is achieved by showing a review UI before
launching any app component. If an update is installed the user
should see a permission review UI for the newly requested

To allow distinguishing which permissions need a review we set
a special flag in the permission flags that a review is required.
This flag is set if a runtime permission is granted to a legacy
app and the system does not launch any app components until this
flag is cleared. Since install permissions are shared across all
users the dangerous permissions for legacy apps in review mode
are represented as always granted runtime permissions since the
reivew requirement is on a per user basis.

Whether the build supports permission review for legacy apps is
determined by a build constant allowing us to compile away the
unnecessary code for markets that do not require a permissions

If an app launches an activity in another app that has some
permissions needing review, we launch the permissions review
UI and pass it a pending intent to launch the activity after
the review is completed.

If an app sends a broadcast to another app that has some permissions
needing review, we do not deliver the broadcast and if the sending
app is in the foreground plus the broadcast is explicit (has a
component) we launch the review UI giving it a pending intent to
send the broadcast after the review is completed.

If an app starts a service in another app that has some permissions
needing review, we do not start the service and if the calling app
is in the foreground we launch the review UI and pass it a pending
intent to start the service after the review is completed.

If an app binds to a service in another app that has some permissions
needing review, we schedule the binding but do not spin the target
service's process and we launch the review UI and pass it a callback
to invoke after the review is completed which spins the service
process and completes the binding.

If an app requests a content provider in another app that has some
permissions needing review we do not return the provider and if
the calling app is in the foreground we show the review UI.

Change-Id: I550f5ff6cadc46a98a1d1a7b8415eca551203acf
8924e8759f9a8cffb5ad538ca40a7826793aac07 30-Nov-2015 Jeff Sharkey <jsharkey@android.com> Wire up lifecycle, send unlocked broadcast.

When the correct lock pattern is presented, ask the system to also
unlock credential-encrypted storage, if enabled. The token passed
along is empty for now, but can be wired up to gatekeeper in the

During each system boot, ask vold to lock all users keys to give us
a known starting state. This also has the effect of chmod'ing away
any CE data when in emulation mode.

Define and send a new foreground broadcast when the CE storage is
unlocked for the first time. Add stronger last-ditch checking for
encryption-awareness before starting an app.

Bug: 22358539
Change-Id: Id1f1bece96a2b4e6f061214d565d51c7396ab521
a8057a9dcef71f9b3e0f31e830d750337a4349ba 16-Nov-2015 Tomasz Mikolajewski <mtomasz@google.com> Add first-class support for virtual files in SAF.

Bug: 20820363
Change-Id: Ic509a6003a99997126f129a836fdd8c0e843108f
b8a279ee838c309a64211a3caa5e5e204250163d 18-Nov-2015 Todd Kennedy <toddke@google.com> Allow ephemeral provider/installer

The ephemeral provider is a service that simply determines whether or
not an ephemeral application is available. The ephemeral installer
does the heavy lifting of installing the ephemeral application.

Bug: 25119046
Change-Id: I591f4c2c3f2b149d299fa8b4f359f2582d9199cb
3cdb56efea044112bfe1b97b3ed78ee05e0dba46 11-Nov-2015 Dianne Hackborn <hackbod@google.com> Some debugging improvements.

- Fix dumping of package manager intent filters so the option
to print the filter detail works again.
- Extend dump resolvers to allow you to specify the specific
types of resolvers you'd like to dump.
- Add new package manager commands for querying activities,
services, receivers.
- Move the code for parsing a command line into an intent to
the framework, so it can be used by the new package manager
commands and later elsewhere.

Change-Id: I56ea2bb8c3dd0e5198ee333be8f41ad9dcdb626f
f7fea166d40842fc5b55b2169d41df88136ae2cc 22-Oct-2015 Clara Bayarri <clarabayarri@google.com> Intercept activity start with ConfirmCredentials

When the calling user is a work profile and the device has
file based encryption enabled, show the work challenge via the
Confirm Credentials APIs before launching the requested activity.

A companion CL in Settings will add support to the Confirm
Credentials flow to read the given intent extra and fire it when
the authorization succeeds.

This is part of the Separate Work Challenge feature.
Note nobody will see this yet as the feature is conditioned by
file based encryption.

Change-Id: I303890095936b1fd1f6a99d645724dffba144345
58a98c457218044d3375dfe65e742e75e99ca105 30-Oct-2015 Anthony Hugh <ahugh@google.com> Merge "Add intent extra for determining if apps are system apps" into cw-e-dev am: 3a9bf5c8ce am: a8e20b3919
am: c2b3e48bb1

* commit 'c2b3e48bb1ab75163f8d7890db39b91436c06015':
Add intent extra for determining if apps are system apps
c2b3e48bb1ab75163f8d7890db39b91436c06015 30-Oct-2015 Anthony Hugh <ahugh@google.com> Merge "Add intent extra for determining if apps are system apps" into cw-e-dev am: 3a9bf5c8ce
am: a8e20b3919

* commit 'a8e20b391909cbc115e8996bd247e84a2819bfc3':
Add intent extra for determining if apps are system apps
3575a400090a0863a5978d9550d171e0525d3b13 27-Oct-2015 Anthony Hugh <ahugh@google.com> Add intent extra for determining if apps are system apps

This is being added to help identify system apps so that
the UI can filter on that type.

BUG: 24955055
Change-Id: Ie4be3717ce997f60eeb48a389c0f54ce5803141a
9b907ce5d87e26c5aed6400160b2911073013ec7 09-Oct-2015 Anthony Hugh <ahugh@google.com> am 66940eaa: am 073a1624: am 6b566ec5: Merge "Give Android Wear system apps default permission" into cw-e-dev

* commit '66940eaaabc007d839d17c71b21c914a1bbba2e0':
Give Android Wear system apps default permission
66940eaaabc007d839d17c71b21c914a1bbba2e0 09-Oct-2015 Anthony Hugh <ahugh@google.com> am 073a1624: am 6b566ec5: Merge "Give Android Wear system apps default permission" into cw-e-dev

* commit '073a1624912a93da65b5e40b6ff434c4fd3ab0f2':
Give Android Wear system apps default permission
979b81ac33c2ba678414c5350c19fc78dbac724a 30-Sep-2015 Anthony Hugh <ahugh@google.com> Give Android Wear system apps default permission

This change grants Android Wear system components default

I have also added a new Intent category to help identify
the main Home handler on Wear.

BUG: 23419042
Change-Id: Ie669a9908bd3b03498f75c5ca22c0fddf52a5203
535570a7ce8fac764a45a603856d664227dba8c1 27-Sep-2015 Bryce Lee <brycelee@google.com> am 979a22ea: am 6ad696c3: am f0740e0a: Merge "Add ThermalObserver system service to capture thermal state uevents." into cw-e-dev

* commit '979a22eaf9c62637c02ebd6f92ef6ea2888aa5be':
Add ThermalObserver system service to capture thermal state uevents.
979a22eaf9c62637c02ebd6f92ef6ea2888aa5be 26-Sep-2015 Bryce Lee <brycelee@google.com> am 6ad696c3: am f0740e0a: Merge "Add ThermalObserver system service to capture thermal state uevents." into cw-e-dev

* commit '6ad696c35b80f70f19de304b53bdbfc6f5a265d8':
Add ThermalObserver system service to capture thermal state uevents.
bc58f59da6226c6f1d240c95d566186f679fc310 26-Sep-2015 Bryce Lee <brycelee@google.com> Add ThermalObserver system service to capture thermal state uevents.

Bug: 21445745
Change-Id: I980d60b66ca51942a1fd62502d6cf1f09208fc3a
0f07424dc5b0a9d87c5f14c995447c77c9a636f2 15-Sep-2015 Vinod Krishnan <vinodkrishnan@google.com> am f274e325: am aae9c4ab: am 74c3a0e7: Merge "Add some constants for Wear MNC Perms" into cw-e-dev

* commit 'f274e3252b263d9e001a8de9d55c065f353ad02f':
Add some constants for Wear MNC Perms
f274e3252b263d9e001a8de9d55c065f353ad02f 15-Sep-2015 Vinod Krishnan <vinodkrishnan@google.com> am aae9c4ab: am 74c3a0e7: Merge "Add some constants for Wear MNC Perms" into cw-e-dev

* commit 'aae9c4ab35ac98e8106d6a57d9d094780fbb0189':
Add some constants for Wear MNC Perms
61665cc4aeb51be0f293cf252dc43ca2ced08b92 01-Sep-2015 Vinod Krishnan <vinodkrishnan@google.com> Add some constants for Wear MNC Perms

- Add an API for getting list of apps that has runtime perms

Change-Id: I4ebfc01033ea96efaac062fd34982fbd0d081073
83eb8493b28ac44fdcac3b46051765644c52b851 16-Aug-2015 Dianne Hackborn <hackbod@google.com> am 0ce3a291: am 914eda00: am 574f9b42: am ac11522e: am 06f552cf: Merge "Add debugging for issue #23190084: [APPComm][Dev Test] {Unable to share photo..." into mnc-dev

* commit '0ce3a291fb4fdbfd041e605c0cb71dff4f681e8a':
Add debugging for issue #23190084: [APPComm][Dev Test] {Unable to share photo...
0ce3a291fb4fdbfd041e605c0cb71dff4f681e8a 16-Aug-2015 Dianne Hackborn <hackbod@google.com> am 914eda00: am 574f9b42: am ac11522e: am 06f552cf: Merge "Add debugging for issue #23190084: [APPComm][Dev Test] {Unable to share photo..." into mnc-dev

* commit '914eda0070cde26325db3d2a2e9bbf0a9e612107':
Add debugging for issue #23190084: [APPComm][Dev Test] {Unable to share photo...
ae498721001c6cdcdb6cce1b2f3ba5abbce36f8a 14-Aug-2015 Dianne Hackborn <hackbod@google.com> Add debugging for issue #23190084: [APPComm][Dev Test] {Unable to share photo...

...from Camera360 to Hangouts }

In the short URI toString, include a small summary of the ClipData (instead
of just saying it has a clip data). This makes it a lot easier to understand
what is happening when you look at the log of activity starts.

Also separate out the activity manager dump of URI permission grants from
its dump of providers, so it is easy to just look at that state.

Change-Id: I68093d9f279944e1aa9a29347075f237f4f55ed3
371d4588382b54763f071d0fa0ccbdf489292fb6 05-Aug-2015 Steve McKay <smckay@google.com> Merge "Populate quick view intent w/ file uris."
6eaf3863c81779233c032b7f7fc5b90e94f5f70a 04-Aug-2015 Steve McKay <smckay@google.com> Populate quick view intent w/ file uris.

Change-Id: Ie4f15b11be1939f8b71752505caa9d74ab9f9680
da7526b4beb97de73b15be5d05a1d1c7a8d591a1 04-Aug-2015 Matthew Williams <mjwilliams@google.com> am 7667fa48: am 1dee8d41: am c62598bc: am d5fe5a8f: am fad3c663: Merge "Remove spurious syncmanager wake-ups" into mnc-dev

* commit '7667fa48224133adfbd4b1234c592988c0133713':
Remove spurious syncmanager wake-ups
7667fa48224133adfbd4b1234c592988c0133713 04-Aug-2015 Matthew Williams <mjwilliams@google.com> am 1dee8d41: am c62598bc: am d5fe5a8f: am fad3c663: Merge "Remove spurious syncmanager wake-ups" into mnc-dev

* commit '1dee8d4164553082c392b236d30144b4bad16f22':
Remove spurious syncmanager wake-ups
29095983226310799e424428876aeb7708e60204 04-Aug-2015 Steve McKay <smckay@google.com> Merge "Use an explicit intent for "Quick View"..."
c78bcb8c7fa5db1726541c2c8bf8d4edfa0f1229 31-Jul-2015 Steve McKay <smckay@google.com> Use an explicit intent for "Quick View"...


Change-Id: Iae85a2a6fe35cfd135ff1af6672d37cc6b33dce4
665d0140efce4ed53d6f86459c1551cdf983801b 04-Aug-2015 Matthew Williams <mjwilliams@google.com> Remove spurious syncmanager wake-ups

BUG: 22287469
1) Fix SyncManager waking up every 2 hrs if there is nothing
to do.
2) Fix sync wake-up alarm not being properly updated if the new
alarm was in the future.
2a) Due to staus bar sync signal that were removed post-K
one of the wake-ups was for 30s in the future, removed this
@hide intent completely.
3) The SyncManager will still set a timeout alarm for 5mins after
the start of a sync. Leaving this in as to post to a handler is
less expensive but more complex, and the alarm update is
correctly working now.

Change-Id: If51c9dd68391ccaeb480a17eb5a1364c4afe4c2a
82e780743046e620b724c28023b580e0e624bb15 03-Aug-2015 Yusuke Sato <yusukes@google.com> am b98e2353: am 158560ad: Merge "Distinguish user-requested shutdown from power-related ones"

* commit 'b98e235364c2b221521f622c546733b2862e4677':
Distinguish user-requested shutdown from power-related ones
705ffd1efe529bb291e90fa06e92c8090ee98627 22-Jul-2015 Yusuke Sato <yusukes@google.com> Distinguish user-requested shutdown from power-related ones

With this patch, when the user requested shutdown,
PowerManagerService sets sys.powerctl is set to
"shutdown,userrequested", and init runs fsck on shutdown.

When shutdown is triggered due to a low power state etc.,
the service sets the property to "shutdown,", and init
immediately shuts down the system without running the

This is a follow-up CL for http://r.android.com/158525.

Bug: 21853106
Change-Id: Iae72990130fe9aa479c802f77301438190dbbfb3
0e3de6cacaffcfeda4d6353be61e2f1f9ed80705 30-Jul-2015 Dianne Hackborn <hackbod@google.com> Change MNC codename to just M.

Change-Id: I4281d200ff6560791c47cf9073ceea1cb509361e
d4b566bf56333de708908ce4accb5fb067be64f0 17-Jul-2015 Svet Ganov <svetoslavganov@google.com> Merge "Add APIs for verifier to grant at install and revoke permissions" into mnc-dev
7121e18595d4c559044e26bfe6035406a862f466 14-Jul-2015 Svet Ganov <svetoslavganov@google.com> Add APIs for verifier to grant at install and revoke permissions


Change-Id: Ie0c758bf73699f50bf99ff5aa0bf98dcc9004e37
50a8bf4da0fe1685bfe6a0ecd9a9677e363e2ee1 15-Jul-2015 Svet Ganov <svetoslavganov@google.com> Grant default permissions to the setup app robustly.

There is a zoo of components that handle the home intent and
have different priority. There is no reliable way to distinguish
the setup app from the other apps that handle home as some of
them have lower priority than the setup app and some higher.
This change adds a dedicated category to recognize the default
setup app.

Uncommented the code that grants accounts permissions as the
get_accounts permission is now a runtime permission and can be


Change-Id: I41726751fa2567cbcd7d09c7acfa7615b8aba577
107f7b7becdb5fe6d735a4f1355eb3421f068fb0 01-Jul-2015 Nicolas Prevot <nprevot@google.com> Fix the case where an intent bounces several times between users.

An intent may bounce several times between users.
In this case, we want mContentUserHint to refer to the original

Change-Id: I22a35fab0c228140dcb223899f5e38ff33ee5aed
0a202eac0103cae1c544d6f44bb67b236a3dde8d 27-Jun-2015 Rubin Xu <rubinxu@google.com> Merge "Use StorageManager.wipeAdoptableDisks to wipe external disks" into mnc-dev
e8490f1d78a62826742ddf4af8943e6666a1a8d0 25-Jun-2015 Rubin Xu <rubinxu@google.com> Use StorageManager.wipeAdoptableDisks to wipe external disks

Retire FORMAT_AND_FACTORY_RESET which is more fragile.

Bug: 9433509
Change-Id: I158ee987274bb4db41d466de9f1e3c60ffc1d140
7008b51817361443fc6f136c5b187e1d471c94f5 25-Jun-2015 Svetoslav <svetoslavganov@google.com> Prevent certain actions of app has revoked permissions


Change-Id: I7214c1fe47c15fe185423a54a74b58caf8d82daa
e6d8ffb40f555bbb3b88a3544616de28426e75a1 10-Jun-2015 Makoto Onuki <omakoto@google.com> Merge "Add more result extras for ACTION_GET_PERMISSIONS_COUNT" into mnc-dev
a3acdb33df7c7be7ff3d9f376ff833e4b0c1d897 09-Jun-2015 Dianne Hackborn <hackbod@google.com> Fix issue #21621920: VI: need mechanism to get current request

Add new APIs to associate a Request with a name, get all active
requests, and get active request by name.

Also add a new Activity.onProvideReferrer() which will allow
applications to propagate referrer information to the assistant
(and other apps they launch) in a consistent way.

Change-Id: I4ef74b5ed07447da9303a74a1bdf42e4966df363
bbb912a89e92b389c7f9f4f7669a6b2836cb159a 06-Jun-2015 Makoto Onuki <omakoto@google.com> Add more result extras for ACTION_GET_PERMISSIONS_COUNT

Now ACTION_GET_PERMISSIONS_COUNT returns more than counts, its a misnomer, but
I don't think it's worth renaming it, as Svet is planning to change the
interface to a service.

Bug 21615746

Change-Id: I9ce1f3ed674b21bb56ee5a8e2baed0017f5ae81a
0e5f110fc915a9b044eb04cd07ae7ac588eacc8f 06-Jun-2015 Tim Kilbourn <tkilbourn@google.com> Pass an args bundle to launchAssistAction.

In order to track the input device that was used to trigger assist, the
input device id is sent as an extra in the assist intent whenever it is
available. This is particularly useful on TVs, when an app may want to
know whether the input device has a microphone.

Bug: 21666123
Change-Id: I0f8c09e2f617606bef481bdff924cb6b9b47dd12
63428ccde7e925ceb94aa40e933b3d51954a7797 28-May-2015 Svet Ganov <svetoslavganov@google.com> Merge "Add a normal permission guarding the installer UI - used for stats tracking" into mnc-dev
86877e44f054facb535b29b8db7fda8c543bc245 28-May-2015 Svet Ganov <svetoslavganov@google.com> Add a normal permission guarding the installer UI - used for stats tracking


Change-Id: Id020eaf7b852de43966f4ab8231e3f7046e66542
9cfa0cc51e135d9f156086028a6c99b34de50147 22-May-2015 Jason Monk <jmonk@google.com> Add constants for permissions granted status api

Bug: 21078474
Change-Id: I6b0bcf0c11258ae263eb08366c14f9298798afdb
a75902439403966b9308d38fcf5e51c20e43a583 23-May-2015 Svet Ganov <svetoslavganov@google.com> Merge "Hide pakcage installer system APIs." into mnc-dev
0b316706b1925554b73d902539187f3931a1bde9 23-May-2015 Svet Ganov <svetoslavganov@google.com> Hide pakcage installer system APIs.

Change-Id: If5245ed2be7a3ebb50a7af924be85894314f6f47
92c8e6f4a32c99bbc348774ebaaa0d6daf695405 21-May-2015 Clara Bayarri <clarabayarri@google.com> Update the PROCESS_TEXT action javadoc to include types

Bug: 21343771
Change-Id: If1d64ba121555863022cecc7a7b3d94c866e8715
321f01574e523dd680090694ea22e38b83a7c2b3 17-May-2015 Svet Ganov <svetoslavganov@google.com> Hide platform platform legacy permissions behind a menu option - framework.


Change-Id: I563c448e2abd7d33070ed2d8f62ba1b60a3744e8
7d7580019e44e2e162df01ffff51de20ed0721b3 07-May-2015 Adam Powell <adamp@google.com> Bringing new Chooser UI closer to spec

Separate the chooser targets into rows by type. Remove some API that
was redundant with LabeledIntent, simplifying ChooserTarget.

Change-Id: I90de471825f05d85e6ffbe72a32fb597be824a30
4f434a04708e7a254afe2e0d362f715229dc15d1 09-May-2015 Fyodor Kupolov <fkupolov@google.com> Merge "Remove restrictions PIN functionality" into mnc-dev
ef24909d84db9d5aefb825ee1556089fcdcc1678 06-May-2015 Fyodor Kupolov <fkupolov@google.com> Remove restrictions PIN functionality

Bug: 20852231
Change-Id: I5666ee28ff1341ead9b258bc0852d8ba6d313c5e
2ed547e55f820a9c705872d802b051d8ae9c906b 30-Apr-2015 Adam Powell <adamp@google.com> Add alternate intents and refinement callbacks to ChooserActivity

Allow a calling app to supply an array of additional Intents to the
system ChooserActivity.

The chooser will present a merged list of targets that can handle any
of the Intents supplied, including both the standard EXTRA_INTENT as
well as any of the intents supplied in EXTRA_ALTERNATE_INTENTS. These are
treated as ordered; EXTRA_INTENT is considered the first/primary
Intent and EXTRA_ALTERNATE_INTENTS are sorted most important first.

Targets are queried for all supplied Intents. If the same component is
returned for more than one Intent, the target is associated with the
most important Intent that matched.

This allows calling apps to supply several different payloads for an
action depending on what the intended targets are able to support. For
example, an app performing ACTION_SEND may supply image/jpeg data to
compatible targets or a hosted web link to targets that only support
text/plain. The user will have the opportunity to pick from a single
merged list of choices using the best available payload, and will not
be bothered with the implementation details of how the payload will be
delivered to the recipient.

If the calling app wishes to provide further disambiguation or
refinement after the user makes a choice, for example to let the user
choose which of the source intents to send from the primary or
alternates, show a progress dialog as a full-resolution version of a
photo is downloaded from the server before being sent along or while
reticulating splines, the caller can supply an IntentSender to
This should be the IntentSender obtained from a PendingIntent pointing
at an activity to launch to perform the refinement.

The refinement activity should report that it is finished by obtaining
the ResultReceiver from EXTRA_RESULT_RECEIVER. Available intents to
send to the selected target will be contained in EXTRA_INTENT and

To complete the refinement and send the result along to the chosen
target, the refinement activity should select one of the supplied
intents and send it to the ResultReceiver in a Bundle with the key
EXTRA_INTENT and the result code RESULT_OK. To cancel the refinement,
and let the user select another choice, send RESULT_CANCEL.

While refinement activities cannot modify the filterEquals-affecting
fields of the Intent they return, they may modify extras to provide
additional or altered details to the final recipient. These extras
will be filled into the Intent sent to the final target.

Change-Id: I7ad4739eadd1a0e307675847ccf47ea948918a3a
2442841819f9554f9b5c8b9c147a51b04e50de4d 02-Apr-2015 Adam Powell <adamp@google.com> Implement ChooserTargetService querying for ChooserActivity

First cut at querying services provided by apps that offer
ChooserTargetServices. This first implementation provides no ranking.

Bind to a limit of 5 ChooserTargetServices and offer the
ChooserTargets they provide as options in the system
ChooserActivity. The chooser now presents targets as a grid and
displays the activity icon from the referrer activity.

Change-Id: I45db829f184fc78d4f18d42b2a60b25bc301eba8
9b8178719b4ff9058ddcc1c66e9416439b2348f0 07-Apr-2015 Clara Bayarri <clarabayarri@google.com> Merge "Create the Process Text Intent Action and Extra"
0a26157a9f71fa4b26b88fc523b5809c64f6e7c9 26-Mar-2015 Clara Bayarri <clarabayarri@google.com> Create the Process Text Intent Action and Extra

Change-Id: I33e30324970e91b04fcc233b91c9d43580c446fc
885b3ef519e5b0b67a896fb6693925b9b2fd22c6 02-Apr-2015 Santos Cordon <santoscordon@google.com> Merge "New generic intent for SIM Activation"
15a13781ad17bbc7e8ddbbad4d0c208f0fae615e 01-Apr-2015 Santos Cordon <santoscordon@google.com> New generic intent for SIM Activation

New hidden intents and permissions for a generic SIM-activation
activity. New activity will handle generic SIM setup requests and then
delegate to the appropriate activation method (OTASP, HFA,

Change-Id: I1b22200544abefe486ec961b67a6e77b4d15aec3
1c1b47125da018b44240739db75f8898e064a948 20-Nov-2014 Fabrice Di Meglio <fdimeglio@google.com> Add IntentFilter auto verification

The purpose of this feature is to prompt the Disambiguation dialog
to Users as less as possible.

- add the new "autoVerify" property to the IntentFilter class
- add new APIs to PackageManager:
verifyIntentFilter(int, int, List<String>),
getIntentVerificationStatus(String, int),
updateIntentVerificationStatus(String, int, int),
for supporting IntentFilter verification
- add support for multi-user
- update PackageManager for IntentFilter verification:
basically when we are installing a new package, ask for verification
of all domains from the IntentFilters that have the "autoVerify" to true.
This means that the PackageManager will send a well defined protected
broadcast (with a new INTENT_FILTER_NEEDS_VERIFICATION action) to
an IntentFilter verifier to do the real job of verification.
We are passing in the broadcast Intent all the necessary data for
doing the verification. The PackageManager will receive as response
the result code of the domain verifications and, if needed, the list
of domains that have failed the verification.
- add a new INTENT_FILTER_VERIFICATION_AGENT permission that needs to
be set by an intent filter verifier to be considered as a trustable
party by the PackageManager.
- add also a new BIND_INTENT_FILTER_VERIFIER permission for securing
the binding between the PackageManager and a service doing the
intent filter verifications.
- add ResolveInfo filterNeedsVerification which is a boolean
to knows if the IntentFilter is of a type that needs a verification
(action VIEW, category BROWABLE, HTTP/HTTPS data URI)
- add new "domain-preferred-apps" / "d" dump command for listing the
prefered Apps for all domains
- add new "intent-filter-verifiers" / "ivf" command for listing the
IntentFilterVerifier used
- introduce the IntentVerificationService which is a basic service
for verifying IntentFilters. This service will send HTTPS requests
to the domain declared in the IntentFilter(s) for doing the
verification. This service has a low priority level so that it
can be replaced by a more sophisticated one if needed. This service
is updating the PackageManager intent verification states thru
the updateIntentVerificationStatus(...) API.
- update MockPackageManager

Change-Id: I0bfed193d0bf1f7c7ac79f6c1b160b7ab93b5fb5
3695b8a1488a6cc331feba1c2ab359888656bf7c 25-Mar-2015 Svet Ganov <svetoslavganov@google.com> First implementation of the grant/revoke UI

Change-Id: Icdb7c822881552b30850697dba709671bf27baa5
3daef246bdbc43879b2db996c11e7ecc1b0a9eec 20-Mar-2015 Casey Ho <caseyho@google.com> Merge "Javadoc for ACTION_SCREEN_<ON|OFF> to indicate they cannot be registered in the manifest."
dbf6785c6765c80d3e9c36505bad5e0777aa127d 17-Mar-2015 Casey Ho <caseyho@google.com> Javadoc for ACTION_SCREEN_<ON|OFF> to indicate they cannot be registered in the manifest.

Change-Id: Ic97a36498628f7f249b6776df455e01aaa995ae4
6597e3435f8abfedbb9a4f1bfb10cc17ea7f38bf 17-Feb-2015 Christopher Tate <ctate@google.com> Notification listener backup & restore

We now back up & restore the set of enabled notification listeners. Post-
restore, a listener that had been enabled on the ancestral device will be
enabled on the current device as soon as it's installed, matching the
user's previous configuration. After this has happened the enable/disable
state for that app is not "sticky"; disabling it again will work as

The infrastructure for accomplishing this is general: it can be leveraged
by any ManagedServices derivative. There's a bit of extra wiring in the
settings provider to support the restore-time information flow as well.
This is because ManagedServices -- like many other parts of the system --
monitors writes to the settings provider and does work in response to new
writes of the elements that it cares about. Unfortunately this means that
there is no way to use the BackupAgent's restoreFinished() hook to post-
process the restored data: by the time it is run, the ManagedService's
observers have already executed and culled any unknown components from
the description that was just pushed into settings.

As of this patch, the settings provider's restore logic knows that a
particular settings element will require a message to interested observers
about the restore-driven change. The message is delivered as a broadcast,
and is sent after the new value has been committed to the settings db.
Adding other system ManagedService handling that parallels this will only
require adding a new corresponding entry to the table of individual settings
for which the relevant "this settings element is being restored" broadcast
is sent, found in SettingsHelper.

(It isn't sent for all settings elements because very few settings elements
have semantics that require it; 3rd party code won't be running yet during
platform restore anyway; and sending up to hundreds of broadcasts during
setup & restore is far from ideal.)

Bug 19254153

Change-Id: Ib8268c6cb273862a3ee089d2764f3bff4a299103
a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9d 11-Mar-2015 Dianne Hackborn <hackbod@google.com> More work on collecting assist data.

Optimize parceling of AssistData (which is now renamed to
AssistStructure) by pooling duplicated class name strings.

Change text associated with a view node to a CharSequence,
so styling information comes along.

Include global text attributes -- size, colors, etc.

Introduce a new AssistContent structure, which allows us
to propagate information about the intent and data the
activity is looking at. This further allows us to propagate
permission grants, so the assistant can dig in to that data.
The default implementation propagates the base intent of an
activity, so if for example you bring up the assistant while
doing a share the assistant itself has the same information
and access that was given to the share activity (so it could
for example share it in another way if it wanted to).

Did some optimization of loading PersistableBundle from xml,
to avoid duplicating hash maps and such.

Changed how we dispatch ACTION_ASSIST to no longer include
the more detailed AssistStructure (and new AssistContent)
data when launching; now the example code that intercepts
that needs to be sure to ask for assist data when it starts
its session. This is more like it will finally be, and allows
us to get to the UI more quickly.

Change-Id: I88420a55761bf48d34ce3013e81bd96a0e087637
7b9c912f536925ac6ec43935d6e97506851b33d6 31-May-2013 Tor Norbye <tnorbye@google.com> Add @ResourceInt annotations on APIs

Change-Id: I119cc059c2f8bd98fd585fc84ac2b1b7d5892a08
0e8fd097082dddf10bd62f9a209ae4932a0a515f 10-Feb-2015 Soonil Nagarkar <sooniln@google.com> Add @SystemApi annotations to ACTION_QUERY_PACKAGE_RESTART and related.

accessible from GmsCore so that location and context components can
properly respond to the broadcast.

BUG: 19298558
Change-Id: I4b5cf4991c69d3aa745d03271187c65794df10b2
4e106cedfecd1f6026a79870c2e427853cba7491 15-Jan-2015 Dianne Hackborn <hackbod@google.com> Bring back voice interaction APIs.

Change-Id: I6039d7c0b188ac342441c56f7d19994b9a80ba17
90312d808f4a5181b5cb99c78e64b7e5d1465895 16-Jan-2015 Ricardo Cervera <rcervera@google.com> am 22878790: am 93f94c2c: resolved conflicts for merge of e8f6bd48 to lmp-dev

* commit '2287879039556ad3c8fce58974e2396b4a2dab45':
docs: Added info on noHistory and onActivityResult(). Bug: 13807256
93f94c2ca5bf23533fc5a9bd70a4795584d20618 16-Jan-2015 Ricardo Cervera <rcervera@google.com> resolved conflicts for merge of e8f6bd48 to lmp-dev

Change-Id: Idc370182914d5060a721d34c26cd72598f2c6dff
e8f6bd484627e16fa2fd9509b0f06056ee44be94 16-Jan-2015 Ricardo Cervera <rcervera@google.com> am 98f07d90: am 92f6a747: docs: Added info on noHistory and onActivityResult(). Bug: 13807256

* commit '98f07d901492335f51258655fbfa032fa3f2d58e':
docs: Added info on noHistory and onActivityResult(). Bug: 13807256
0ee10f6d263e5476d0eb8f8ba82ff5cd522883e9 15-Jan-2015 Dianne Hackborn <hackbod@google.com> Fix issue android-app doc, bump battery stats checkin version

Issue #18983662: API Reivew: clarify Intent docs for URI_ANDROID_APP_SCHEME
Issue #19019830: Bump up battery stats checkin version

Change-Id: I0bd8f32b9d8d5978bd01d421ea2232d20def340a
80b1c5608ec9cbb43c696d772eb69a2e220ef819 10-Dec-2014 Dianne Hackborn <hackbod@google.com> Fix issue #18665625 CTS:android.app.cts.InstrumentationTest#...

...testCallActivityOnNewIntent test fails with LMP-MR1 Release.

Check for null.

Also fix some small issues with converting intents to/from intents.

Change-Id: Ic391cc57552635935af9a271b2d09353257f6d14
24b1c23c62b3d8ca1d762a76b2f1ef6360fc683e 21-Nov-2014 Dianne Hackborn <hackbod@google.com> Fix issue #15828903: Intent.parseUri allows call to FLAG_GRANT_*_URI_PERMISSION

You now need to set a flag if you want this unsafe behavior.

Change-Id: I185e9a04e005e42a887c3d58a2818616790b060a
0d1c27a713cb49de8f6f4fd0a129baa883153921 03-Nov-2014 Chet Haase <chet@google.com> Fix seeking and scaled duration behavior

The animation scaled was not being factored in early enough in the
activity lifecycle. Also, setCurrentPlaytTime() was not accounting for
the scaled duration correctly. Finally, added setCurrentFraction() as
a more general-purpose seeking facility.

Issue #18222006 Animator duration scale ignored in some situations
Issue #17951668 add ability to seek fraction, not just time

Change-Id: Idad401f5ff5026d7046c36eee09d78a4793215dc
85d558cd486d195aabfc4b43cff8f338126f60a5 04-Nov-2014 Dianne Hackborn <hackbod@google.com> Add Activity API to get referrer information.

This expands the use of EXTRA_REFERRER to be relevant anywhere,
allowing apps to supply referrer information if they want. However,
if they don't explicitly supply it, then the platform now keeps
track of package names that go with Intents when delivering them
to apps, which it can be returned as the default value.

The new method Activity.getReferrer() is used to retrieve this
referrer information. It knows about EXTRA_REFERRER, it can return
the default package name tracked internally, and it also can return
a new EXTRA_REFERRER_NAME if that exists. The latter is needed
because we can't use EXTRA_REFERRER in some cases since it is a Uri,
and things like #Intent; URI extras can only generate primitive type
extras. We really need to support this syntax for referrers, so we
need to have this additional extra field as an option.

When a referrer is to a native app, we are adopting the android-app
scheme. Since we are doing this, Intent's URI creation and parsing
now supports this scheme, and we improve its syntax to be able to build
intents with custom actions and stuff, instead of being all hung up
on custom schemes.

While doing this, fixed a problem when parsing both intent: and new
android-app: schemes with a selector portion, where we were not
respecting any scheme that was specified.

Change-Id: I06e55221e21a8156c1d6ac755a254fea386917a2
92f6a747085b4b5ed692de4bdb0050c096eae393 04-Apr-2014 Ricardo Cervera <rcervera@google.com> docs: Added info on noHistory and onActivityResult(). Bug: 13807256

Change-Id: Iae4901a311e76401396f89c552e5b27a49c65c83
c4fc00a58d1a8a2e3bffd15f447c2ada82913bfa 31-Oct-2014 Nicolas Prevot <nprevot@google.com> Do not fix uris inside the system.

When we fix uris by adding the user id they belong to, the extras
of the intent are unpacked and repacked. This must not happen
inside the system process. It happened when ResolverActivity was
handling an activity intent coming from a different user.


Change-Id: I869897013bb2e5522584b404e87a8f20e7943b60
0b3c11260ae5ea09c7e702802b39f77afc74f35f 09-Oct-2014 Adam Powell <adamp@google.com> Intent chooser callback

Let an app specify an IntentSender as an extra for ACTION_CHOOSER that
will be notified of the user's chosen target. Apps can use this to
implement things like one-touch last used affordances without
implementing their own one-off chooser UI.

Bug 17363684

Change-Id: Ic5d1d0e0c7a0bae3eda6b1d6ade993f3ba865cfa
955d8d69ea6caabce1461dc25b339b9bf9dc61a6 08-Oct-2014 Dianne Hackborn <hackbod@google.com> Put in real "code" (aka marketing) name.

Change-Id: Idb3976edfae37293ed75cb5b869b4b42d8042bbe
004a4b20f8d3116e6a711525960d433fcfea4ee4 24-Sep-2014 Jeff Sharkey <jsharkey@android.com> Include reason when wiping data.

This will help us track down who requested a data wipe.

Bug: 17412160
Change-Id: If8413e5d6377773f37e8b34ae3d26347226a027c
fb488eb2a269772064432e69ebdd9c5cedd18006 24-Sep-2014 Jeff Sharkey <jsharkey@android.com> Merge "More ACTION_CHOOSER ClipData migration." into lmp-dev
c004eef7bb4d4752c9a980af95a1e49a4098ade6 24-Sep-2014 Jeff Sharkey <jsharkey@android.com> More ACTION_CHOOSER ClipData migration.

Traverse into both EXTRA_INTENT and any EXTRA_INITIAL_INTENTS when
migrating extras to ClipData. Also, we don't need to promote these
ClipData into the parent, since the platform ChooserActivity will
issue any required permission grants for the final user-selected
Intent. Even if we wanted to, we can't combine the various child
Intent flags into anything meaningful at the ACTION_CHOOSER level.

Bug: 17580604
Change-Id: I6b5a1f572a7edf8135e059c67a2643d3736e40ab
628cb74d8a830e5129c9b37992fd9f523177591f 19-Sep-2014 Paul Soulos <psoulos@google.com> Fixes typo in Intent documentation

bug: 17583712
Change-Id: I37c77644213417751f8261098af44096aef51b14
0adf32bc1e82e4f5d4b531d97c3ef94f21853f61 18-Sep-2014 Alan Viverette <alanv@google.com> Fix parsing of old-style intent URIs

Improves bounds checking to restrict category matches to within the
category(...) item. Fixes CTS failure in IntentTest.testGetIntentOld().

BUG: 17557490
Change-Id: I1859fe18eaa881b771bab373d705d8fbeb6406c4
57b4ad9f5aea186e0bf1bee00371f02ed9d5eee4 05-Sep-2014 Michael Wright <michaelwr@google.com> Merge "Add extra to ASSIST intent to indicate potential input type" into lmp-dev
3315f6b5a36e984b1c24d6be07c155bf5108b4df 05-Sep-2014 Alexandra Gherghina <alexgherghina@google.com> Rename intent extra following API review

Bug: 17389968
Change-Id: Id2bd8d12019ad7a4c5a3ac8a7f76f55d06fc4dff
8ab940ab9b25d5733bdfd7344a10010aba309890 01-Sep-2014 Michael Wright <michaelwr@google.com> Add extra to ASSIST intent to indicate potential input type

This lets Now and other assistance apps know to start up expecting a
specific type of input (e.g. keyboard).

Bug: 16355810
Change-Id: I158e416ef8310a01cb22b19fd5b6850d2429e266
5f4cfd3ab73f4d8173db05d7c94c098a06cd5f57 02-Sep-2014 Jean-Michel Trivi <jmtrivi@google.com> Merge "Move *_AUDIO_PLUG actions from Intent to android.media.AudioManager" into lmp-dev
d7c0395d26694c594c3e64b16ab647c971aeb422 30-Aug-2014 Dianne Hackborn <hackbod@google.com> Hide the interaction part of VoiceInteractionService.

Also the ability to start voice activities is turned off,
though for testing purposes it can be turned back on with a system

Change-Id: I867704d32c53beeb851ceea9b45c28bf5c01ef61
c5258433dd353769ccfa2e5e769a7379378a3a0b 28-Aug-2014 Jean-Michel Trivi <jmtrivi@google.com> Move *_AUDIO_PLUG actions from Intent to android.media.AudioManager

- duplicated definition in AudioManager and moved
javadoc there. Javadoc in Intent points to AudioManager.
- the String value is not changed

For ACTION_HDMI_AUDIO_PLUG (being added in SDK):
- moved defintion from Intent to AudioManager
- updated String value to reflect package name "android.media"
instead of using "android.intent"
- added definition of the extras, but removed "name".

- moved definition from Intent to AudioManager,
- changed the value from "android.intent.*" to "android.media.*"

Updated AudioService, UsbDeviceManager and UsbHostManager
to refer to the actions in AudioManager, not Intent.

Bug 17289385

Change-Id: I61dd73140022d2bb9a676a57f595092c8fa89dcc
4d64746d6ac21d587653ac2018c9abd1071077ce 13-Aug-2014 Jim Miller <jaggies@google.com> Revert "Add new intent to prompt user for their device credential."

Move API to KeyguardManager.

Fixes bug 17006280

This reverts commit 2e7beadedeb7d41d8c2d1cc62956bdd9f5081d26.

Change-Id: I7b58bb4d9db828028c1021f17b01745c5ec2161e

9f991a2f3e39bf248c972b83f582412ec41f8ff0 13-Aug-2014 Jeff Sharkey <jsharkey@android.com> Fix javadoc attr reference.

Change-Id: I330ba0cac66b4515388287c0ec4856e3ce6c93cb
37d7804627eecaf04e170793c2f5703d5d6d44e8 10-Aug-2014 Jean-Michel Trivi <jmtrivi@google.com> HDMI plug intent and associated information

Read HDMI device information from audio ports and add it as
extras in the connection intent.
Document the new extras in the connection intent.
Make Intent.ACTION_HDMI_AUDIO_PLUG public.

Bug 10549017

Change-Id: I6236b5363f00c433e443195fae8c43af2fc834f7
73915cf2ca01d4e822249641c4b73f512da93e10 30-Jul-2014 Jose Lima <joselima@google.com> Added LEANBACK_SETTINGS Intent category

- Added new Intent category (as a hidden/system API) to be
used to identify Leanback settings activities that should
be listed in the Leanback launcher.

Change-Id: Ia31244fb87a66f63ddad562e02e577111573d728
73b941f761270c71616fe44fa0727aa79345604c 25-Jul-2014 Nicolas Prevot <nprevot@google.com> am c5435cdd: am e7469eca: am c50bbc02: Merge "Migrate extras to ClipData for image/video capture intents." into lmp-dev

* commit 'c5435cdd91f6778d753f99ee6ee8c5132e0ae962':
Migrate extras to ClipData for image/video capture intents.
d1c99b1fe85ed03261a77a14ae52e7fa3a6e523a 04-Jul-2014 Nicolas Prevot <nprevot@google.com> Migrate extras to ClipData for image/video capture intents.

Migrate the uri in the EXTRA_OUTPUT extra to clipData, and add the flag GRANT_WRITE_URI_PERMISSION.

The userIds are now added to extra uris in the process receiving the intent, (not in the system process), because the
system process may not be able to parcel/unparcel the extras.

BUG: 15534203

Change-Id: I8f79666b726bc6d7745bf777ad3c7518945c5cc3
f6a5fd39a01c7a3fe49cb3d3c7d1c665059a4eb0 24-Jul-2014 Alan Viverette <alanv@google.com> am 8ec7d394: am 014089cd: am 82b83fb5: Merge "Use activity for brightness dialog" into lmp-dev

* commit '8ec7d394252ee801ded0bde940c8f7358cbc9099':
Use activity for brightness dialog
f84bc66b21212df5402982b1c1eca615e64f7e1e 23-Jul-2014 Alan Viverette <alanv@google.com> Merge "Use activity for brightness dialog" into lmp-dev
526e8434995dfe135660658e131f33e6cca0a5c4 21-Jul-2014 Dianne Hackborn <hackbod@google.com> am 65f62f23: am 39285ff1: am 1648dbb4: Merge "Fix issue #16400873: Apps that show ads as new tasks stay in recents..." into lmp-dev

* commit '65f62f236395b44a0c168f1ec72855197927a885':
Fix issue #16400873: Apps that show ads as new tasks stay in recents...
91d67f9c7d292e7aac67ec6258e51c7c39beef31 21-Jul-2014 Adam Powell <adamp@google.com> am bd90f0ce: am 186802ac: am d0cb5fd8: Merge "Add EXTRA_REPLACEMENT_EXTRAS for ACTION_CHOOSER" into lmp-dev

* commit 'bd90f0ce2d052d2e0d753e0cc7b10a1f658b496e':
e49d9393783f2789239f8da536abda9533ffadf0 18-Jul-2014 Adam Powell <adamp@google.com> Add EXTRA_REPLACEMENT_EXTRAS for ACTION_CHOOSER

This allows the calling app to supply a set of alternative extras to
be sent along with the target intent if the user chooses specific
items from the full set available on the device. When replacement
extras have the same key as extras in the initial intent, the
replacement extras dominate.

Change-Id: I5d64c80447386f22402b71291bb289a74015d619
13420f2311757554c314f620c83cb55153b67612 19-Jul-2014 Dianne Hackborn <hackbod@google.com> Fix issue #16400873: Apps that show ads as new tasks stay in recents...

...even when I hit back or close the activity in UI

Change the semantics of NEW_DOCUMENT to have the recents entry be
removed by default when its activity is finished, with various ways
to explicitly turn off this behavior.

Change-Id: Idc717706d27de80f28b53ad76f9e375d85118d71
003582f2f4cbced895f0f8eb8f691f78889b58fd 15-Jul-2014 Craig Mautner <cmautner@google.com> am a60bb211: am 30636967: Merge "Launch activity behind launching task." into lmp-dev

* commit 'a60bb211f2a51036bb02942deca6f718001527ec':
Launch activity behind launching task.
bb742462781a73bb25516067c8fe6311c1c8a93e 08-Jul-2014 Craig Mautner <cmautner@google.com> Launch activity behind launching task.

Use ActivityOptions.makeLaunchTaskBehindAnimation() to launch tasks
behind the current task. Includes animations for launching and
launched tasks.

Fixes bug 16157517.

Change-Id: I0a94af70b4748592e94673b958ee824cfb3d7ec0
5a399490c2185ebfd458b1a1d9394f3a68c5fde2 15-Jul-2014 Alan Viverette <alanv@google.com> Use activity for brightness dialog

Also fixes brightness controller failure to unregister callbacks.

BUG: 15512088
Change-Id: Ia665e006d93391d5a66d4ace614660c4e6d2d5b5
749bd5d322e35b24d4a8fd42f40d865e1f88dac6 15-Jul-2014 Ying Wang <wangying@google.com> Fix docs build.

Change-Id: I03b87aedcd5aedd8be665aa480fdeae8eafbde0e
af8cf374f7009f2e7647f4963f49d7f741d73442 15-Jul-2014 Ying Wang <wangying@google.com> Fix build.

Change-Id: Ibb12a50823c6e1ea396a3f3dbf3d3b83ab762dac
42feda4229a7c14b86d479af73bb1c39fcd7ddd7 11-Jul-2014 Jay Civelli <jcivelli@google.com> Add new intent to prompt user for their device credential.

Change-Id: I152c5efda7186d59f63c341b046896c65e37de1b
a228ae95ea2f842c0e84f237c64bf032689410dd 09-Jul-2014 Craig Mautner <cmautner@google.com> Add task affiliation

Introduces new flag Intent.FLAG_ACTIVITY_LAUNCH_BEHIND which
causes the newly launched task to affiliate with the launching task.
(Later this flag will also launch the task behind the current task).
This shows up in a new member of the RecentTaskInfo class. This also
causes the recents list returned by getRecentsInfo to be rearranged
so that affiliated tasks are together.

Fixes bug 16157517.

Change-Id: Ia1386af50da2f01809278b62d249f05c6a0de951
63d9ae1e75a151a90a1e8bdf9c61f74a5ee340aa 20-Jun-2014 Christopher Tate <ctate@google.com> Collapse a bunch of verbose boilerplate

Objects.equals() is your friend!

Change-Id: I728bbff6c20309b42ec31f2d87748d9fa19aa00f
43e52ed32e2d55ef4aee18c4b4bc13b7fdef9cc4 17-Jun-2014 Craig Mautner <cmautner@google.com> Fix persistent tasks and expand scope

- Fixed missing tag closure on the xml for storing Intent categories.
- Shortened timeout for flushing tasks to persistent storage from
one minute to ten seconds.
- Made persistency the default except for those tasks on the home
stack and those tasks that exclude themselves from the recent task
- Fixed deletion of tasks after restoring. Tasks now survive a second
reboot, not just the first reboot.
- Fixed sort order so most recent tasks will be restored at front.

Fixes bug 15672002.

Change-Id: I16d87d58c6fd2e879cfd0c0b18b2694432a79b71
7683baad6c437af2931020423bf227f97a3ce0ba 10-Jun-2014 Craig Mautner <cmautner@google.com> am a7c5791a: Merge "Redefine FLAG_ACTIVITY_NEW_DOCUMENT without NEW_TASK" into lmp-preview-dev

* commit 'a7c5791a95bf732c2381f698d78930ee61efd36b':
d734c698e3d0f9e9b6313185af264a2aa786e355 10-Jun-2014 Jeff Sharkey <jsharkey@android.com> am 99f4fe07: Merge "Refactor directory API to "opening document tree."" into lmp-preview-dev

* commit '99f4fe0797adb8350f92c7d1ba11776d1947e768':
Refactor directory API to "opening document tree."
ef2b37ea87552f90af7bfb8d2b0e00d0e1091e0b 10-Jun-2014 Kenny Guy <kennyguy@google.com> Merge "Api review: Make ACTION_MANAGED_PROFILE_REMOVED registered only."
df8e542a8a638c18074221f47c4e4afcd3502810 10-Jun-2014 Craig Mautner <cmautner@google.com> Merge "Redefine FLAG_ACTIVITY_NEW_DOCUMENT without NEW_TASK" into lmp-preview-dev
f357c0ca514d73273a18b3896e565b2272e608ad 09-Jun-2014 Craig Mautner <cmautner@google.com> Redefine FLAG_ACTIVITY_NEW_DOCUMENT without NEW_TASK

Change definition of FLAG_ACTIVITY_NEW_DOCUMENT from

Also add new documentLaunchMode of "never" to allow activity
writers to keep their activity from being launched in document mode.

Fixes bug 15468528.

Change-Id: Ied11adf97e85c5d3f99f4c0bbbb4a2905dcfb24e
b9fbb7290b02de1ce621deaa2d28a5e42f2e0937 05-Jun-2014 Jeff Sharkey <jsharkey@android.com> Refactor directory API to "opening document tree."

Cleans up API so it consistently refers to opening or working with a
subtree of documents. Also separates isChildDocument() support from
the concept of directory tree selection.

Bug: 15429194
Change-Id: Ice66a751ff4bd0cc4d34c44c5da13a0dc4186dc9
01df1c680abdce58d873220cfce9163b59eacbd2 09-Jun-2014 Daniel Sandler <dsandler@android.com> Move CATEGORY_NOTIFICATION_PREFERENCES to Notification.

It sprouts an additional INTENT_ prefix to distinguish it
from the Notification.category constants in the same file.

Bug: 15022240
Change-Id: Icbc09bfc5ce78964272def66934fe4a7c848e12b
d4b584ea7f6da5c06b7ba9b1ea75428dcc5fe7b2 09-Jun-2014 Adam Connors <adamconnors@google.com> Api review: Make ACTION_MANAGED_PROFILE_REMOVED registered only.

And update the javadoc to explain use-case.

Bug: 15025562
Change-Id: I8eb2666c8480f873e042687223b1a1f82e7919c9
026596b938e4f078b2db95a523bf55dd0704c1dd 22-May-2014 Craig Mautner <cmautner@google.com> Improve DocCentric documentation. DO NOT MERGE

Fixes bug 15025461.

Change-Id: I34cc13105072cf054f125a7963294165258fec0e
21d24a21ea4aaadd78e73de54168e8a8a8973e4d 23-Apr-2014 Craig Mautner <cmautner@google.com> Add code for persisting tasks and activities to disk DO NOT MERGE

Recent tasks that have the persistable flag set are
saved to /data/system/recent_tasks/ on shutdown and in the
background. Their thumbnails are saved to

Change-Id: Ifb820a01c412fe1f8c0f6e41aa655fafd89eaa8d
dbcd3aa22a086472f0addff761d3d97e133557ba 24-May-2014 Craig Mautner <cmautner@google.com> Merge "Improve DocCentric documentation."
deec695253aa5856135be3ffdcd35eaafed9e526 24-May-2014 Craig Mautner <cmautner@google.com> Merge "Add code for persisting tasks and activities to disk"
2d74ce309fddebd208e7a8452d4d7e6c3b91e3e0 22-May-2014 Craig Mautner <cmautner@google.com> Improve DocCentric documentation.

Fixes bug 15025461.

Change-Id: I34cc13105072cf054f125a7963294165258fec0e
ef73ee1dd98acfc4a19561367cfc3e4d8bbe06ea 23-Apr-2014 Craig Mautner <cmautner@google.com> Add code for persisting tasks and activities to disk

Recent tasks that have the persistable flag set are
saved to /data/system/recent_tasks/ on shutdown and in the
background. Their thumbnails are saved to

Change-Id: Ifb820a01c412fe1f8c0f6e41aa655fafd89eaa8d
fb052926b84d69fdc4bebcb0373e33388c7bcbb7 21-May-2014 Dianne Hackborn <hackbod@google.com> Revert "Hide voice interaction APIs."

This reverts commit a677a9b9367bcf8c81c36dc59b53554cb347b438.
dcff99598f16737e75278e8ea9dbfe92579ea234 16-May-2014 Dianne Hackborn <hackbod@google.com> Hide voice interaction APIs.

Change-Id: I961b6399a6edca239caaba9bbd1dd5e03bc612bd
d85fc72fb810858f7502e7e7f1bad53e1bf03edd 16-Apr-2014 Nicolas Prevot <nprevot@google.com> Resolving resources across users.

When an intent is sent to another profile:
For content uris contained in this intent:
The userId of the source user is added to the userInfo part.
The ActivityManagerService has been modified to resolve resources in the user specified by the uri.
The user id to which the uri belongs to is stored in the UriPermission.

Change-Id: I43dc76895aba692bf148d276253aeaf9c75fce34
2dac05617952e1341f9c522e4c05936d7ef07399 06-May-2014 Craig Mautner <cmautner@google.com> Add attributes and flags for DocCentric.

Add Intent flag and attribute for auto removal of task from recents
once task completes.

Add manifest attribute for auto launching into doccentric. Equivalent

Fixes bug 14586473.

Change-Id: I04acc9333c3725b4db94a954358eb78df507ff53
7c433b3d9c7ca4486f392bb82f56251c69ba6cf4 07-May-2014 Tim Kilbourn <tkilbourn@google.com> DO NOT MERGE Hide more leanback stuff.

- leanback intent category

Bug: 14116162
Change-Id: I5665dda4c47e24a06707df4989ee117b4e91c246
91097de49b0f683b00e26a75dbc0ac6082344137 05-Apr-2014 Dianne Hackborn <hackbod@google.com> Initial implementation of new voice interaction API.

This gives a basic working implementation of a persist
running service that can start a voice interaction when
it wants, with the target activity(s) able to go through
the protocol to interact with it. It may even work when
the screen is off by putting the activity manager in the
correct state to act like the screen is on.

Includes a sample app that is a voice interation service
and also has an activity it can launch.

Now that I have this initial implementation, I think I
want to rework some aspects of the API.

Change-Id: I7646d0af8fb4ac768c63a18fe3de43f8091f60e9
21de56a94668e0fda1b8bb4ee4f99a09b40d28fd 06-Apr-2014 Jeff Sharkey <jsharkey@android.com> Add directory selection to DocumentsProvider.

Introduce new ACTION_PICK_DIRECTORY that allows users to grant access
to an entire document subtree. Instead of requiring grants for each
individual document, this leverages new prefix URI permission grants
by defining new "via"-style URIs:


This references document 24 by using a prefix grant given for
document 12. Internally, we use isChildDocument() to enforce that
24 is actually a descendant (child, grandchild, etc) of 12. Since
this is an optional API, providers indicate support with

Extend DocumentsUI to support picking directories. Expose
createDocument() API to work with returned directories.

Offer to canonicalize via-style URIs into direct URIs, generating
exact permission grants along the way. Override openAssetFile()
to pass through CancellationSignal. Move testing code into ApiDemos.

Bug: 10607375
Change-Id: Ifffc1cff878870f8152eb6ca0199c5d014b9cb07
846318a3250fa95f47a9decfbffb05a31dbd0006 04-Apr-2014 Jeff Sharkey <jsharkey@android.com> Allow prefix-based Uri permission grants.

Define new FLAG_GRANT_PREFIX_URI_PERMISSION which indicates that a
Uri permission grant should also apply to any other Uris that have
matching scheme, authority, and path segments. For example, a prefix
grant for /foo/ would allow /foo/bar/ but not /foo2/.

Allow persistable and prefix grants to be issued directly through
grantUriPermission(). Relaxing persistable is fine, since it still
requires the receiver to actively take the permission.

Since exact- and prefix-match grants for the same Uri can coexist,
we track them separately using a new UriGrant key. (Consider the
case where an app separately extends READ|PREFIX and WRITE for
the same Uri: we can't let that become READ|WRITE|PREFIX.)

Fix revoke to always take away persisted permissions. Move prefix
matching logic to Uri and add tests. Add new flags to "am" tool, and
various internal uses around Intent and Context. Switch some lagging
users to ArraySet.

Bug: 10607375
Change-Id: Ia8ce2b88421ff9f2fe5a979a27a026fc445d46f1
66e5d96cf9e689148b202787bdc269519c4b6f8f 09-Apr-2014 Robin Lee <rgl@google.com> Allow ProfileOwner apps to manage app restrictions

Simple wrapper around the UserManager.{get|set}ApplicationRestrictions
APIs. Also added a new Intent to signal to running apps that the set
of restrictions has changed since startup.

Change-Id: Ifd108108a73f87325b499d9de2e1b2aacc59b264
4e5c089ef3e62e7f658e71c0be262d09bd3e399b 11-Apr-2014 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of 337e764d to master

Change-Id: I8168dbf42b68c2f7b5ccb300e0080dddc627af26
337e764debde56b1462fb5f2794b3e917d8a42e2 11-Apr-2014 Jeff Brown <jeffbrown@google.com> am f24687e2: Merge "Plumb display power state through display manager." into klp-modular-dev

* commit 'f24687e2731811fd0e3803b691fd47a659f89329':
Plumb display power state through display manager.
037c33eae74bee2774897d969d48947f9abe254f 09-Apr-2014 Jeff Brown <jeffbrown@google.com> Plumb display power state through display manager.

Declare a new method, Display.getState() to retrieve the actual
power state of a display.

Improved documentation for Intent.ACTION_SCREEN_ON and
Intent.ACTION_SCREEN_OFF to clarify what they really mean in
terms of the interactive state of the device.

Deprecated PowerManager.isScreenOn() and replaced it with
PowerManager.isInteractive() with a more suggestive name and
better documentation.

Redirect display power state changes to go through the display
manager first and only then head over to the power manager for
legacy compatibility.

Eliminated the bright here and woke here policy flags since they
were unused. Simplified the input dispatch policy somewhat.

Ensure that screen wake locks are respected up until the point
when dozing really begins.

Fixed a regression in DreamService where onDreamingStarted
might be called before onWindowAttached.

Bug: 13133142
Bug: 13472578
Bug: 13929355
Bug: 13760290
Change-Id: Iabef96921dd554ce3768fb18619cefc3230b5fb0
c17d7e0d6470e1141314c00e4a1ea66cf21643af 04-Apr-2014 Alexandra Gherghina <alexgherghina@google.com> Introduces intents for adding and removing a managed profile.

Change-Id: I6b8b7a314ea52bfd0c750da94066156e73a0f2f5
6c3051c4224e72e58e217d9080c9ce3599ff5740 28-Mar-2014 Dan Sandler <dsandler@android.com> Merge "Introduce CATEGORY_NOTIFICATION_PREFERENCES."
a55734aaed35bc15dd604d9364b1aec4f191cb7a 26-Mar-2014 Dan Sandler <dsandler@android.com> Introduce CATEGORY_NOTIFICATION_PREFERENCES.

Allows applications to advertise to the system an Activity
where the user can configure the app's notifications. Will
be used by the Settings app.

Change-Id: Iafe7de79e20046d5655fda3f3a3cba9f5db059c4
79867f598108e8c3f088bd69d3f042d72a3d8655 26-Mar-2014 Matt Casey <mrcasey@google.com> Update doc for ACTION_HEADSET_PLUG to mention explicit register.

Copied the documentation from other similar actions that have the
same behavior.

AudioService.java has
for this action.

Change-Id: I79736f8146bd6b72d01034be428e83b5841c73fa
d00f47402cb886a43a3448128bdcd9dd2f348a2a 12-Mar-2014 Craig Mautner <cmautner@google.com> Launch new tasks with Doc Centric flag.

Introduction of new Intent flag FLAG_ACTIVITY_NEW_DOCUMENT. When
this flag is set the target activity will be launched in its own
task. This is the start of the new Doc Centric mode of working.

Change-Id: I719168532134ab2c5ea3300df676c2b2a0e81795
9d50ea90f7072a7fa87d022663f2d25b906ed2ad 12-Mar-2014 Jose Lima <joselima@google.com> am c770e064: am dd0db799: am 5f0c0498: Merge "Added LEANBACK_LAUNCHER Intent category" into klp-modular-dev

* commit 'c770e064effb79c33472f54652bd95aa14a8d6ec':
Added LEANBACK_LAUNCHER Intent category
dd0db799ee25833a8989a823299f039ac31fef58 11-Mar-2014 Jose Lima <joselima@google.com> am 5f0c0498: Merge "Added LEANBACK_LAUNCHER Intent category" into klp-modular-dev

* commit '5f0c0498a1382ef955cccca95920ec878fe2a64c':
Added LEANBACK_LAUNCHER Intent category
38b75b6126de76b68ac64cfa15f559148ba85e76 11-Mar-2014 Jose Lima <joselima@google.com> Added LEANBACK_LAUNCHER Intent category

Change-Id: I4f5ccfa9725106f558972c73abbe3f9435267c75
ca35c18a374c143831cc282987c762507c0ffc34 07-Mar-2014 Narayan Kamath <narayan@google.com> am cd4874cf: am d265bcc4: Merge "Inform libcore of time format pref. changes."

* commit 'cd4874cfdc00d17454529b5dca85a487c7c2de77':
Inform libcore of time format pref. changes.
ccb2a086fe0de77a4e3277454cb4a66f8e7dc57d 19-Dec-2013 Narayan Kamath <narayan@google.com> Inform libcore of time format pref. changes.

- Introduce a boolean extra for intent TIME_CHANGED that
specifies if the user wants a 24 hour format or not.
- Have the ActivityManagerService inform running processes
of changes to this preference.
- Add plumbing in ActivityThread to inform j.t.DateFormat

(cherry-picked from dd491cc756233c088fd26eba4918671fcc9cfc30)

Change-Id: Ib90636bda4bc8332cfa22def831877b524b5c486
27ad525c7e91bde38d6c9e3e67ab38b97eb7eed0 19-Dec-2013 Narayan Kamath <narayan@google.com> Inform libcore of time format pref. changes.

- Introduce a boolean extra for intent TIME_CHANGED that
specifies if the user wants a 24 hour format or not.
- Have the ActivityManagerService inform running processes
of changes to this preference.
- Add plumbing in ActivityThread to inform j.t.DateFormat

Change-Id: I05fafb903ae54e39c03a048b7a219dc5a93fd472
624e98f53962377f00104a50d9fc8e3044cbcd79 31-Jan-2014 Craig Mautner <cmautner@google.com> am d5f1fcb7: am 56bf2f67: Merge "Clarify FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET usage" into klp-modular-dev

* commit 'd5f1fcb7a4d6cc11b727bdf79fab7693a5dd7117':
e1f3fa2482a00274a632384a388c7dda8c10a49f 25-Jan-2014 Craig Mautner <cmautner@google.com> Clarify FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET usage

Fixes bug 12592453.

Change-Id: Ib64559727d59b3433c3753f9fda88329effc7e26
88926a5482552ddf2f4906df581bbbf1cc9d03aa 14-Jan-2014 John Spurlock <jspurlock@google.com> am 4b67b88e: am cce06eda: am b3436359: am e05190ea: am 85f98508: Merge "Docfixes: three typos and escape */*." into klp-docs

* commit '4b67b88e344a147317fc6b32e5364d4cfabf1e1d':
Docfixes: three typos and escape */*.
3390018c6b45acffa6edf97a4174ca49f1e8c76d 02-Jan-2014 John Spurlock <jspurlock@google.com> Docfixes: three typos and escape */*.

Change-Id: I418d855b5d08a1a20eaca3d8e4d2e5d0fca23dd5
cce137733bf9e28e430826a4bdaaf9ab84951845 25-Nov-2013 John Spurlock <jspurlock@google.com> am e4f96e28: am 56979b22: am 125d133b: Fix bad @see links in Intent.java.

* commit 'e4f96e281f85078d5420fdc52e00da3c6392ba1a':
Fix bad @see links in Intent.java.
125d133bcce56403a9b4d1cdbbc61a7cb1d7f8e1 25-Nov-2013 John Spurlock <jspurlock@google.com> Fix bad @see links in Intent.java.

Change-Id: Ifa283214798f8d2de4f8bdb17ed78609a7d43293
0e4655800b96caa297d2dc55e064ee061c8c0f89 16-Oct-2013 Jeff Sharkey <jsharkey@android.com> am f53c1a68: am f82a387c: am e3924ca4: Merge "Improve OPEN/CREATE_DOC docs." into klp-dev

* commit 'f53c1a6841b4c6a1541e9548f425e54c486031d1':
Improve OPEN/CREATE_DOC docs.
adef88a0a9d65e7f5ae812594e8c039747388cdd 15-Oct-2013 Jeff Sharkey <jsharkey@android.com> Improve OPEN/CREATE_DOC docs.

Bug: 10936473
Change-Id: I4378aaaf927f114982191efd4f9887dad075390d
5023a4df732693fdaff64da551f6b088e7ba4456 26-Sep-2013 Jeff Sharkey <jsharkey@android.com> resolved conflicts for merge of 687c6221 to master

Change-Id: I9e8a24d9151f31bc3284ad7f8686fa7f3c25c0d9
e66c1778f80f4b18e29e018eca3a338f125f23b9 20-Sep-2013 Jeff Sharkey <jsharkey@android.com> Require that persistable Uri permissions be taken.

Change our Intent flag to indicate that a Uri permission grant is
persistable, but don't actually persist it until explicitly taken by
the receiving app. This prevents apps from spamming each other if
persisted permissions aren't really required.

Remember the last time a persisted grant was taken by an app, and
use this to prune away the oldest grants when the number of grants
grows too large. Allow apps to query persisted grants they are
holding, and allow them to release previously persisted grants. Add
public UriPermission class to return grant details and timestamp.

Track various permission strengths separately, and combine together
after each mutation pass. Persistable grants are currently treated
like global grants, but they could be moved to have owners in the
future. Require that grant holders trying to extend a persistable
permission actually hold a persistable permission themselves.

Bug: 10835779
Change-Id: I95b2f797c04ce7fd2612f9a644685dbd44e03759
b5a14f0fc9c17f1543315f83f01f099bd53faf52 18-Sep-2013 Kenny Root <kroot@google.com> resolved conflicts for merge of 1995a7de to master

Change-Id: I9915ae06d460696b24cbee935738267911baa580
6285a32f74890b761579b4f67afde1b08763fd0a 18-Sep-2013 Dianne Hackborn <hackbod@google.com> Finish issue #10779747: Calendar Storage crash observed...

...while setting up a new user from settings.

We can now delay broadcasts when there are enough background services
currently starting (still set to 1 for svelte devices, 3 for normal

Add new intent flag to not allow receivers to abort broadcasts, which
I use to fix an issue with the initial BOOT_COMPLETED broadcast not
actually requesting pss data at the right time -- it can now be sent
as an ordered broadcast without the ability for the receivers to cancel

Change-Id: I51155bbbabe23e187003f3e2abd7b754e55d3c95
b6a3ef18342e6671d9674312b66a015d6caa80ed 13-Sep-2013 Tor Norbye <tnorbye@google.com> Merge "Add typedefs and nullness annotations."
d9273d6f289d9b55da3fd0db2f659fdfb48106a8 31-May-2013 Tor Norbye <tnorbye@google.com> Add typedefs and nullness annotations.

This changeset adds in typedef annotations (custom annotations
marked with @IntDef) for various int parameters and return values
in the API. It also adds nullness annotations for cases where the
documentation explicitly mentioned null policy, or where it was
blindingly obvious from the context. Also fixed some typos in the

Change-Id: Ica27c01368895818e26237544edd8483007155bb
7140a25f0135f473b66d01eb042471b2f0ebc836 11-Sep-2013 Adam Skory <skory@google.com> Revert services assist context in KitKat

Reverts extension to assist context API to query
foreground services for assist context data.

Also hides Intent.ACTION_VOICE_ASSIST because
nobody's actually using it yet.

Bug: 10461702
Change-Id: Idf6836adc659b434e11ebb2b98e8b814c94a7227
d304af69891483aad808356af1ac5f00e90c8edf 05-Sep-2013 Amith Yamasani <yamasani@google.com> Remove unused APIs and rename others based on API review

Restrictions challenge is only to be used by device admins.

Bug: 10461761
Change-Id: I3db1249e2ce99f386602de59ed930302bb0a97fb
d318e0b19f44697712b2824b8d685349a5b92000 03-Sep-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10461469: KLP API Review: EXTRA_SHUTDOWN_USERSPACE_ONLY

Maybe adding more words will make it more clear. :)

Change-Id: Ie729eaba1df542d4ffcd0502ccba3807d641fd72
aeb16e2435f9975b9fa1fc4b747796647a21292e 28-Aug-2013 Jeff Sharkey <jsharkey@android.com> Stronger DocumentsProvider contract.

Using a contract class requires that a provider implement it exactly
with little help. This change introduces a DocumentsProvider abstract
class that provides a client-side implementation of the contract that
greatly reduces developer burden, and improves correctness.

This also moves to first-class DocumentRoot objects, and moves calls
with complex side effects to be ContentProvider.call() invocations,
offering more granular permission control over Uri operations that
shouldn't be available through Uri grants.

This new design also relaxes the requirement that root information be
burned into every Uri. Migrate ExternalDocumentsProvider and
DocumentsUI to adopt new API.

Bug: 10497206
Change-Id: I6f2b3f519bfd62a9d693223ea5628a971ce2e743
511cd35fcc0b8ab048f284a6af374de8ccc69865 24-Aug-2013 Jeff Brown <jeffbrown@google.com> Docs changes pursuant to API review feedback.

Change-Id: I74c51791192f7fefad4e299d25c91438cbf6ab73
bd3b902567b09379e1b62c60b3319ad82102efad 21-Aug-2013 Jeff Sharkey <jsharkey@android.com> Add CancellationSignal support to file operations.

Since ContentProvider file operations can end up doing substantial
network I/O before returning the file, allow clients to cancel their
file requests with CancellationSignal.

Ideally this would only be needed for openFile(), but ContentResolver
heavily relies on openAssetFile() and openTypedAssetFile() for common

Also improve documentation to mention reliable ParcelFileDescriptors
and encourage developers to move away from "rw" combination modes,
since they restrict provider flexibility. Mention more about places
where pipes or socket pairs could be returned.

Improve DocumentsContract documentation.

Bug: 10329944
Change-Id: I49b2825ea433eb051624c4da3b77612fe3ffc99c
a5599ef636e37cb0b6474349936999be1afe6987 16-Aug-2013 Jeff Sharkey <jsharkey@android.com> Documents management mode; API adjustment.

Create documents manage mode to support Downloads and transient
storage devices. Locks user into requested backend root, and forces
file sizes on and sorting by last modified.

Separate API constants for Documents versus Roots, and give concrete
MIME types for roots.

Treat null sizes as unknown. Documents are always enabled in list
so that divider is drawn. Mark external storage file as writable.

Bug: 10329983, 10332993, 10332952
Change-Id: I05f4fdf5b04041a38e1ba7fb30202a3b0c615bf6
dfc7fd7818cda46b914c8a9d69d1ba00443ffe5b 06-Aug-2013 Adam Skory <skory@google.com> Extend assist context to foreground services

Add Service.onProvideAssistData(Bundle) which will be
called on foreground Services that have the new attr
in their manifest of provideAssistData = true;

Rename private reference to e.g. "getTopActivityExtras"
as "getAssistContextExtras" - do not rename the relevant
permission, since it is already public.

In ActivityManagerService, request extras both from the
top activity and from any foreground services with the
above attribute. Extend PendingActivityExtras as
PendingAssistExtras with a list of Services from which
extras are expected.

Reduce the timeout to or reporting extras from 4 sec to
just 500 ms.

Bug: 9526331
Change-Id: Ia03b96e8189033a68ae9c514c8cea0199a19bce8
221ea892dcc661bd07d6f36ff012edca2c48aed4 05-Aug-2013 Dianne Hackborn <hackbod@google.com> Start restricting service calls with implicit intents.

The bindService() and startService() calls have always had
undefined behavior when used with an implicit Intent and there
are multiple matching services. Because of this, it is not
safe for applications to use such Intents when interacting with
services, yet the platform would merrily go about doing... something.

In KLP I want to cause this case to be invalid, resulting in
an exception thrown back to the app. Unfortunately there are
lots of (scary) things relying on this behavior, so we can't
immediately turn it into an exception, even one qualified by the
caller's target SDK version.

In this change, we start loggin a WTF when such a call happens,
and clean up some stuff in Bluetooth that was doing this behavior.

Change-Id: I62e25d07890588d2362104e20b054aebb6c0e007
89a8250e242ee1d0b5b853154723b448d732b356 03-Aug-2013 Elliott Hughes <enh@google.com> am 710f3e2c: am 60ae2617: Merge "If frameworks wants ASCII casing, it should explicity ask for it."

* commit '710f3e2cc6bc2cdc2f2cddb2190823ea31efd52a':
If frameworks wants ASCII casing, it should explicity ask for it.
cb64d430627b71221c588ef5f23599dd34a89ee9 02-Aug-2013 Elliott Hughes <enh@google.com> If frameworks wants ASCII casing, it should explicity ask for it.


Bug: https://code.google.com/p/android/issues/detail?id=58359
Change-Id: Iaab02e718a7be7bda22e626dca05d79bfd2a8fc4
57a7f5954cf1f9cbe99c70133863049a4be2e983 23-Jul-2013 Dianne Hackborn <hackbod@google.com> Add "adb shell am restart" command.

So you can restart the system without being root.

Change-Id: I89770f497833ecbe2b69e3a0cfafae7ef472a9f5
add005cf94dcc815d29b54588c76fd87929075b3 18-Jul-2013 Dianne Hackborn <hackbod@google.com> Mmmmmmm... lovely, lovely ArrayMap.

And ArraySet, too.

Change-Id: I72ea28cbb2286b01b6e1be082f8e7ec17e99074e
6098c5d3555860f272d8ddbd353a42f4c8474e1c 17-Jun-2013 John Spurlock <jspurlock@google.com> Docfixes in IBinder, Context, View, and Intent.

Fix links in @throws clauses, typos, redundant "returns"
and use @code for true + false in returns.

Change-Id: Ic3c4c75d6061732d997a386dc3232475c992c188
655d0e2029e6ae77a47e922dce4c4989818b8dd1 12-Jun-2013 Amith Yamasani <yamasani@google.com> Single-user restrictions

Introduces a new "blocked" state for each package. This is used to temporarily
disable an app via Settings->Restrictions.

PIN creation and challenge activities for use by Settings and other apps. PIN
is stored by the User Manager and it manages the interval for retry attempts
across reboots.

Change-Id: I4915329d1f72399bbcaf93a9ca9c0d2e69d098dd
eb47aac14c584bb7326f48082b37cb0e0d0b500f 01-Jun-2013 Dirk Dougherty <ddougherty@google.com> am 0f70bcfc: am 8ebfb8c9: am fdc0c861: am b18c7254: am a404a629: am 6fe992d8: am 4fad5c17: Merge "Doc change: restore warning not to abort NEW_OUTGOING_CALL." into jb-mr1.1-docs

* commit '0f70bcfce3eb291e95e2a70f9d353efa862796da':
Doc change: restore warning not to abort NEW_OUTGOING_CALL.
8ebfb8c9c34caa80cd0d2451d950170c1b522f2a 01-Jun-2013 Dirk Dougherty <ddougherty@google.com> am fdc0c861: am b18c7254: am a404a629: am 6fe992d8: am 4fad5c17: Merge "Doc change: restore warning not to abort NEW_OUTGOING_CALL." into jb-mr1.1-docs

* commit 'fdc0c8618b4e51c322f747202ff94508124e7c9c':
Doc change: restore warning not to abort NEW_OUTGOING_CALL.
fdc0c8618b4e51c322f747202ff94508124e7c9c 01-Jun-2013 Dirk Dougherty <ddougherty@google.com> am b18c7254: am a404a629: am 6fe992d8: am 4fad5c17: Merge "Doc change: restore warning not to abort NEW_OUTGOING_CALL." into jb-mr1.1-docs

* commit 'b18c725442e498a6447de37c3b9428b09837eda9':
Doc change: restore warning not to abort NEW_OUTGOING_CALL.
4fad5c176a245203c1f8d26397ef6cc838753357 31-May-2013 Dirk Dougherty <ddougherty@google.com> Merge "Doc change: restore warning not to abort NEW_OUTGOING_CALL." into jb-mr1.1-docs
8f114bb2ae9e84c53bb6eaaf6d0641dff09cb0e3 30-May-2013 Dirk Dougherty <ddougherty@google.com> am 2bf15756: am 91ea7882: am f64588a2: am de8ac602: am 963e3ec5: am 71d1af4a: am a284e201: Merge "Doc change: adjust description of NEW_OUTGOING_CALL." into jb-mr1.1-docs

* commit '2bf15756cc416644a4777d76a94947bee75d8b3b':
Doc change: adjust description of NEW_OUTGOING_CALL.
932fbcc817caba5e0825d13b800c423980910ca2 30-May-2013 Dirk Dougherty <ddougherty@google.com> Doc change: restore warning not to abort NEW_OUTGOING_CALL.

Change-Id: Icdd4ae184b2a989ac2967420cb5b471aac70808f
91ea7882cdba6bef7918fcd4ff645a9693fdc861 29-May-2013 Dirk Dougherty <ddougherty@google.com> am f64588a2: am de8ac602: am 963e3ec5: am 71d1af4a: am a284e201: Merge "Doc change: adjust description of NEW_OUTGOING_CALL." into jb-mr1.1-docs

* commit 'f64588a2ce6a0e4e76d7d48c47f82785553b13f3':
Doc change: adjust description of NEW_OUTGOING_CALL.
f64588a2ce6a0e4e76d7d48c47f82785553b13f3 29-May-2013 Dirk Dougherty <ddougherty@google.com> am de8ac602: am 963e3ec5: am 71d1af4a: am a284e201: Merge "Doc change: adjust description of NEW_OUTGOING_CALL." into jb-mr1.1-docs

* commit 'de8ac602e3d74dbcb87dfc4c1cc54fb0553e5f17':
Doc change: adjust description of NEW_OUTGOING_CALL.
57f0de12912c7412820b74e119c4a5e3ad2bc203 29-May-2013 Santos Cordon <santoscordon@google.com> am d8754689: am c72949c6: am 7999c228: am 7fb15ce7: Update documentation of NEW_OUTGOING_CALL

* commit 'd8754689595ab4b5e4e43a89178080d344374869':
Update documentation of NEW_OUTGOING_CALL
a284e2013af9624f0093d58ea8d14994c8eda316 29-May-2013 Dirk Dougherty <ddougherty@google.com> Merge "Doc change: adjust description of NEW_OUTGOING_CALL." into jb-mr1.1-docs
367ce906c84f68621663aa8bbcf24af7e024adfa 29-May-2013 Dirk Dougherty <ddougherty@google.com> Doc change: adjust description of NEW_OUTGOING_CALL.

Change-Id: If2bcfa7410759e08958029578a9b3d0a60a1de4e
7fb15ce74bbc06c88660440f84845a1f3108c3d3 17-May-2013 Santos Cordon <santoscordon@google.com> Update documentation of NEW_OUTGOING_CALL

Adds call-handling as a use case for NEW_OUTGOING_CALL

Change-Id: Ie511438bd8d9aa245881f050d32221c81e898745
5c6370a405581e1e4da084dac1ca0e5171ce6574 18-May-2013 Santos Cordon <santoscordon@google.com> am 8e3f01e9: am c1de2404: Merge "Update documentation of NEW_OUTGOING_CALL" into jb-mr2-dev

* commit '8e3f01e90ed51b055e0addb7d5114b732bd514b9':
Update documentation of NEW_OUTGOING_CALL
ba70136713ce121acede4e97af996e7fb4de14fd 17-May-2013 Santos Cordon <santoscordon@google.com> Update documentation of NEW_OUTGOING_CALL

Adds call-handling as a use case for NEW_OUTGOING_CALL

bug: 8987211
Change-Id: Icd9c53a2dd1a5948a749e133600db21c2560fd1f
ecd5afe1ef4aa2a5d11ad4fa356fb6d5f461efb4 10-May-2013 Amith Yamasani <yamasani@google.com> resolved conflicts for merge of 069d7e9b to master

Change-Id: Ia8fd5de3d4cc275fd358132bcb2c198d1e7b6877
6fc1d4e8e6549b0d58ea23b4dd3f26329ec19f38 09-May-2013 Amith Yamasani <yamasani@google.com> Cache the scaled avatar drawables in the keyguard user switcher

Loading the avatar icons and drawing them into the sized bitmap
turns out to be quite expensive and the cost increases with number
of users. Caching them shaves off several hundred milliseconds from
Keyguard inflation time during user switching on the lockscreen.

For instance, 15ms vs. 750ms with 3 avatars on a certain 7" tablet.

Bug: 7986933
Change-Id: I3e2065bfa25aa263133ba204ca364c3b04d7c0ff
100ed154b79b96348087222550a59a8f3b944fa1 06-May-2013 Svetoslav <svetoslavganov@google.com> am b0675df8: am faa47b52: Merge "Idle maintenance scheduling broken." into jb-mr2-dev

* commit 'b0675df8fd377230edc392e02ba0eba275b57992':
Idle maintenance scheduling broken.
6a08a12b8e8ef6fa04932c7a1c5255e3f158a3c8 03-May-2013 Svetoslav <svetoslavganov@google.com> Idle maintenance scheduling broken.

1. The scheduling was relying on receiving battery level broadcasts
which however are not sent if the device is asleep. The maintenance
window was not bound and we could miss a frame if the user did
not interact the device longer than the min time between two
maintenance windows.

2. Hide the idle maintenance intents since this will be rewritten
to user services.


Change-Id: I17b421b09823cb46ec218cabda19e02432d94f8c
9ab3fd4565c105a983c61a0598b75b81323b4437 02-May-2013 Jeff Sharkey <jsharkey@android.com> Unhide extra to fix docs build.

Change-Id: Ib757b5d62e6ff7f4623680fb5faba337de46aa02
9ecfee03fa188aebfbd9778b4e020323903495ee 19-Apr-2013 Jeff Sharkey <jsharkey@android.com> Start fleshing out new storage APIs.

Introduces new DocumentsContract which storage backends must
implement. Backends surface a simple directory-like organizational
structure that enables a document to appear at multiple locations in
that hierarchy. Querying a document or the contents of a directory
will return a Cursor populated with DocumentColumns, which includes
simple metadata.

Adds new OPEN_DOC and CREATE_DOC Intents, and permission to protect
storage backends.

Change-Id: Ib4984bc980182b2cedbe552908e5be94604ef085
8dc25e068071759fc57629f3ea112083e6ac6f2c 19-Apr-2013 Amith Yamasani <yamasani@google.com> am ba567014: am e37c8f78: Merge "Improve API and documentation" into jb-mr2-dev

* commit 'ba56701493ede3f5f338a03173da0327a215b223':
Improve API and documentation
3b458ad9ee5f2d6b7cf28a13bc29123cdf540763 19-Apr-2013 Amith Yamasani <yamasani@google.com> Improve API and documentation

API for querying accounts visible to a specific package.

Improve API and docs for device owner.

Bug: 8657158
Change-Id: I01b8701534f64b383391508a49ae93ed21f22ae0
c1ce6e1a795935a9dfb34878370706e301758baf 17-Apr-2013 Amith Yamasani <yamasani@google.com> am ac16c21d: am a0042742: Merge "Modify restrictions bundle per api council recommendations" into jb-mr2-dev

* commit 'ac16c21d11c1545efb8deafbcb7c120a5e0821a1':
Modify restrictions bundle per api council recommendations
7e99bc02c8e2f44dd92d70bfa6e654297e5286d8 17-Apr-2013 Amith Yamasani <yamasani@google.com> Modify restrictions bundle per api council recommendations

Use a Bundle for persisting and passing to the application, but use a
list to return data back from an application that's exposing restrictions.

Changed the xml reading/writing code to store the value type in the Bundle
so that it can be reproduced when reading. Earlier we were assuming only
String and String[].

Bug: 8633967

Change-Id: I523d5553728edcf28a1e9d432f490b4956f34215
328ebf222167ee1d25a54fd34c8293e183303752 22-Mar-2013 Jeff Sharkey <jsharkey@android.com> Support persistable Uri permission grants.

When granting a Uri permission with new PERSIST_GRANT_URI_PERMISSION
flag, persist that grant across device reboots until explicitly
revoked. Adds new persistedModeFlags dimension to UriPermission,
and moves all flag mutation into UriPermission for clarity. Adds
flag documentation. Only inflate HashSet as needed.

Write persisted grants into XML file, saving based on source and
target package name and user handle. Sanity check grants when

Wipe all grants from/to a package when uninstalled, and wipe any
transient grants when a package or user is force stopped.

Persistable grants are always considered "needed."

Change-Id: I3f001571b498fd607456a1257a6383f904d19497
5c1994eeff841ab6c44113d7138bc4e34e6694dd 04-Apr-2013 Jeff Sharkey <jsharkey@android.com> am 04e740a6: am 0f8e8b03: Merge "Warn when exposing file:// Uris beyond a process." into jb-mr2-dev

* commit '04e740a65e2399c4a4b211408bd84f2d545d9f4a':
Warn when exposing file:// Uris beyond a process.
0f8e8b03ebb35040c299079adc1c351f37ce4885 04-Apr-2013 Jeff Sharkey <jsharkey@android.com> Merge "Warn when exposing file:// Uris beyond a process." into jb-mr2-dev
a14acd20b8d563319ea1a5974dca0e9a29f0aaef 03-Apr-2013 Jeff Sharkey <jsharkey@android.com> Warn when exposing file:// Uris beyond a process.

Check for file:// Uris inside Intents, ClipData, Notifications and
RemoteViews when StrictMode option is enabled.

Also introduces Intent.prepareToLeaveProcess() to uniformly handle
Intents about to leave an app process.

Bug: 8529070
Change-Id: I8efb43877cbc5f21eb029fc6492b3ee1415059ef
ab089d48704b2ff5f89adca8c51d87b983a9c6c9 03-Apr-2013 Justin Koh <justinkoh@google.com> am 9d4ed1ec: am ddd168d6: Merge "Add global key configuration file" into jb-mr2-dev

* commit '9d4ed1ec62a392e4b73ab7d3cd548e09bc792ab2':
Add global key configuration file
d378ad74c61b9bd3fdaa32951c4c470fcd579ade 01-Apr-2013 Justin Koh <justinkoh@google.com> Add global key configuration file

Add global key configuration file. A global key is one that is handled by
PhoneWindowManager before dispatching and sent to a given component via
broadcast instead of going to the foreground app.
Bug: 8510681

Change-Id: Ic6a8e559680d005613ed22874b27eb78bbfc4499
8d01846130f3631eb12b6b322bf71a80aa620be5 30-Mar-2013 Amith Yamasani <yamasani@google.com> am 5c98b904: am 9e8ba8f2: Merge "Improve RestrictionEntry API" into jb-mr2-dev

* commit '5c98b9046506cc69b261dd6ac2ae39b2de0afacb':
Improve RestrictionEntry API
86118baa4fef80c485ba51c6985a6fa082b7310c 28-Mar-2013 Amith Yamasani <yamasani@google.com> Improve RestrictionEntry API

More getters and setters, better naming.
New extra defined for returning a custom intent that handles showing the
restrictions UI.

Change-Id: I2ee0cdb4edd99e71a9004ff5e929dbe243b45557
e32011e8c06b994d840e6d568b5ffa8915320909 21-Mar-2013 Amith Yamasani <yamasani@google.com> resolved conflicts for merge of 99755cd3 to master

Change-Id: I752c387c013c3deaad836df9b0c2294e7149a32a
df2e92a535e19c00edd37318d974dab992ccc2c1 02-Mar-2013 Amith Yamasani <yamasani@google.com> Application restrictions API

Adds the ability for apps to export some restrictions. The restrictions
are presented in Settings based on the restriction type. The user's
selections are stored by UserManagerService and provided to the
target user's application as a list of RestrictionEntry objects which
contain the key, value(s).

Also introduce a manifest entry for system apps to request that the
app be automatically installed in all users, so that they cannot be
deselected by the owner user.

Shared account filtering for non-whitelisted apps.

Change-Id: I15b741e3c0f3448883cb364c130783f1f6ea7ce6
964e7d2549bc321236565dfb4c3f2c492e5a68b4 12-Mar-2013 Bjorn Bringert <bringert@android.com> Hide VOICE_ASSIST intent DO NOT MERGE

Bug: 8289964
Change-Id: I49874f379647ff4e85402a298b4181923212a0aa
bc086862e216bbe8ffc2dfb68f09a872505d9d48 01-Mar-2013 Bjorn Bringert <bringert@android.com> Declare VOICE_ASSIST intent

Bug: 8289964
Change-Id: I241b5166a98a7a462691f0169bf1b6f4fe7b2e0f
c49f47220ae21efe8888537d5403b8bfa011715a 21-Feb-2013 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #8228463: contradicting public documentation on what..."
a53ee35754d22e58978c9fd81396e599e00bac18 20-Feb-2013 Dianne Hackborn <hackbod@google.com> Fix issue #8228463: contradicting public documentation on what...

...Intents match an IntentFilter that has no action specified

And various other doc improvements.

Change-Id: I6d881c8aed56c552e36d5db5df4f74c6aa718da7
1fd2ed58da3e578df0cd0c326c719cf1c282b793 21-Feb-2013 Michael Wright <michaelwr@google.com> Merge "Add brightness dialog to SystemUI"
0087a14d4b4bcfe57c6f6e36c70eec966088d7bb 06-Feb-2013 Michael Wright <michaelwr@google.com> Add brightness dialog to SystemUI

Change-Id: If31406c9144bb2583876f08dd54b259d1dfa3601
b3038ec7cfc5d26eb0be18ae65c62825556bca0f 13-Feb-2013 Svetoslav <svetoslavganov@google.com> Adding idle maintenance service.

It is beneficial that there is a mechanism on the platform
to notify applications whether it is safe to perform somehow
expensive operations while the user is not using the device.
Thus, user experience will not be degraded. An example is
discarding of unused blocks on a mounted file system instead
of doing this on every write operation.


Change-Id: I708bad9d3ce6c8f1d5a1c05c0abf46f81a3d464b
fdb3f094ca967f8267f5bd30635063dc294d176f 29-Jan-2013 Dianne Hackborn <hackbod@google.com> Add GET_CONTENT protocol for allowing multiple selection.

Change-Id: I4c14d32112523d7ab603b2a4e374849dd1c3eff6
d8ba6cc9217e2e042106870e9d2e70cfd80426d6 23-Jan-2013 Dianne Hackborn <hackbod@google.com> Merge "Add new API to propagate contextual data to the assist action"
f9c5e0fe837a3090820da502ecaabc5accc00ace 23-Jan-2013 Dianne Hackborn <hackbod@google.com> Add new API to propagate contextual data to the assist action

When launching an assist, we have a new API allowing the
current foreground activity/application to provide additional
arbitrary contextual information that is stuffed in the
assist intent before it is launched.

Change-Id: I0b2a6f5a266dc42cc0175327fa76774f814af3b4
fd7adedebf88427162a3ce27fcc9cfd3893c869d 23-Jan-2013 Dianne Hackborn <hackbod@google.com> Add new disabled state for "optional" built-in apps.

The disabled state allows you to make an app disabled
except for whatever parts of the system still want to
provide access to them and automatically enable them
if the user want to use it.

Currently the input method manager service is the only
part of the system that supports this, so you can put
an IME in this state and it will generally look disabled
but still be available in the IME list and once selected
switched to the enabled state.

Change-Id: I77f01c70610d82ce9070d4aabbadec8ae2cff2a3
be7af838295044462b2b0f9fc11ba89c7e97889e 04-Jan-2013 suyi Yuan <yuan.suyi@gmail.com> Correcting typo in doc of MEDIA_XXX intents

Correcting typo in documents of MEDIA_MOUNTED,
may be confusing to APP developers.

Change-Id: Id909b7bfad98e305b8054978f054f4fb9b705311
db6a14cc85cede0769735fdac4da70766989a3ce 18-Oct-2012 Amith Yamasani <yamasani@google.com> Fix crashes when quickly adding and removing users

Make USER_REMOVED an ordered broadcast and send it before the user's
state is completely removed from the system. This gives services the
opportunity to clean up their state, while still having access to the
user's directory and UserInfo object (such as serial number).

Tell SyncManager to skip over dying/partially created users.

Improve UserManager tests, waiting for users to be removed fully.

Bug: 7382252

Change-Id: I93cfb39c9efe6f15087bf83c569a2d154ef27168
36d337adffa6d1c4c953e83730ad58747f554877 08-Oct-2012 Dianne Hackborn <hackbod@google.com> Framework side of issue #7302511: GCM client needs to use new framework API...

...to fix background->shutdown delivery race

Add ACTION_STOPPING and ACTION_STARTING to allow such apps to keep track of
which users are started/stopped, and be involved in the process of stopping
a user.

Also get rid of the scale part of the wallpaper transitions, since it seems
like I have still failed at getting the user switch to wait until the new
wallpaper is displayed.

Change-Id: If7e8fdae3544a9d7987a1b9274dc8b49022f6f62
2e7d25b91f6f9185d447c99b2eabeab6bf735079 01-Oct-2012 Daniel Sandler <dsandler@android.com> Introduce ACTION_QUICK_CLOCK for the QS time tile.

By default it will still go to Date/Time Settings (see
change Ib430f0c5) but 3Ps can hook it for other useful

Bug: 7264806
Change-Id: Ic561dbeb5cc0738372c079b3eb52749c44b3cf0d
be87e2f5885b28145a788fd31d1fb5ae88a71100 29-Sep-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7255954: API Review: rename Dream to DreamService

Change-Id: I89ecf2c3ec4fef09c0495aa68de11576f9cfd872
37d83a3caf138e35fa1a355787d20c351f6b37a6 27-Sep-2012 Ben Gruver <bgruv@google.com> Pass the originating uid to the package verifier

Bug: 6923241
Change-Id: I85a3e0d53b469543cb0551d3a440d2663b5d0697
c72fc674a33b8d17585764d09d3bb6c77d7d947e 20-Sep-2012 Dianne Hackborn <hackbod@google.com> Implement multi-user PackageMonitor.

New APIs let you indicate what user(s) to monitor, and tell you
what user is changing when receiving a callback.

Fix package manager to only deliver package brpadcasts to the
running users. (This isn't really a change in behavior, since
the activity manager would not deliver to stopped users anyway).
Make sure all broadcasts that package monitor receives also include
user information for it to use.

Update wallpaper service to (hopefully) now Really Correctly
monitor package changes per user.

Change-Id: Idd952dd274abcaeab452277d9160d1ae62919aa0
390392ff3ef0114544eab3db4093c1c7aba825da 19-Sep-2012 Dianne Hackborn <hackbod@google.com> Merge "Changes to support side-loading of apps from other users." into jb-mr1-dev
eba784ff4ab2a080ddc1d41b90db0e3729ee1ea3 19-Sep-2012 Dianne Hackborn <hackbod@google.com> Changes to support side-loading of apps from other users.

Change-Id: I5b7c0aa0dc9566b29d5980dc7f42a508a61a58d3
e928d7d95dbb64627e6ff3a0572190c555b59d96 18-Sep-2012 Amith Yamasani <yamasani@google.com> Pass Bitmap instead of ParcelFileDescriptor in UserManager

Add a USER_INFO_CHANGED intent for lockscreen and quicksettings to use
to monitor changes to the user name or icon.

Bug: 7164040
Change-Id: Id6fb8b6d38ce04ccd02bbadcf0c10699783d6c03
6d235d8265a45bbc56c058ca1a9eca4eff69636a 17-Sep-2012 Dianne Hackborn <hackbod@google.com> New uninstall option to uninstall for all users.

Change-Id: Ie8eb59564078069633a89fc8a92d4f8531baa1aa
d65afc65ea5b2bf83889dd88a9c94f895da8aece 16-Sep-2012 Dianne Hackborn <hackbod@google.com> Merge "More multi-user stuff." into jb-mr1-dev
5dc5a00e7ebadc085ded7e29feacd17e53698486 16-Sep-2012 Dianne Hackborn <hackbod@google.com> More multi-user stuff.

- New public APIs to find out when a user goes to the foreground,
background, and is first initializing.
- New activity manager callback to be involved in the user switch
process, allowing other services to let it know when it is safe
to stop freezing the screen.
- Wallpaper service now implements this to handle its user switch,
telling the activity manager when it is done. (Currently this is
only handling the old wallpaper going away, we need a little more
work to correctly wait for the new wallpaper to get added.)
- Lock screen now implements the callback to do its user switch. It
also now locks itself when this happens, instead of relying on
some other entity making sure it is locked.
- Pre-boot broadcasts now go to all users.
- WallpaperManager now has an API to find out if a named wallpaper is
in use by any users.

Change-Id: I27877aef1d82126c0a1428c3d1861619ee5f8653
d0c6ccbafdebc73d03cf3cd47f02f9f6c78a69ff 15-Sep-2012 Jeff Sharkey <jsharkey@android.com> Move NetworkPolicy from apps to UID.

For multi-user devices, switch to storing policy per-user instead of
per-app. Also watch for user added/removed broadcasts to clean up
policies and apply global restrictions.

Bug: 7121279
Change-Id: Ia7326bd0ebe0586fa4ec6d3a62f6313dc8814007
d1b5cfc94ae940f42be352e7ed98c21c973471b2 29-Aug-2012 rich cannings <richc@google.com> Notify verifiers that verification is complete

Send the Intent.ACTION_PACKAGE_VERIFIED to all verifiers when
verification is complete (either one verifier verified the package or a
timeout occurred). Details of what occurred is in a new extra,

Bug: 7048930
Change-Id: I4f9855a29b0eb6d77f469891402c69e2e8922945
80a4af2bbc6af42ae605e454bf89558e564f5244 28-Aug-2012 Dianne Hackborn <hackbod@google.com> Start implementing concept of "running" users.

The activity manager now keeps track of which users are running.

Initially, only user 0 is running.

When you switch to another user, that user is started so it is
running. It is only at this point that BOOT_COMPLETED is sent
for that user and it is allowed to execute anything.

You can stop any user except user 0, which brings it back to the
same state as when you first boot the device. This is also used
to be able to more cleaning delete a user, by first stopping it
before removing its data.

There is a new broadcast ACTION_USER_STOPPED sent when a user is
stopped; system services need to handle this like they currently
handle ACTION_PACKAGE_RESTARTED when individual packages are

Change-Id: I89adbd7cbaf4a0bb72ea201385f93477f40a4119
706e8ba26bf0de19ad5f736516dae40c4c88c2d7 20-Aug-2012 rich cannings <richc@google.com> Pass URLs to package verifiers

This change passes the originating URL and accompanied referrer to
package verifiers, when available.

Bug: 6544677
Change-Id: I9ebc71bc13f549bd88267e444816151a99bda000
2a00329c6d55c6cd9166e01963d7410e95d80d21 15-Aug-2012 Amith Yamasani <yamasani@google.com> UserHandle to UserSerialNo mapping

Use AtomicFile for usermanager files.

Added a MANAGE_USERS permission that apps (signature permission) can use
to create/query/modify/remove users.

Change-Id: I5cf232232d0539e7508df8ec9b216e29c2351cd9
e1d7c711df3e3a2d2f195457882aa4ddb5626167 08-Aug-2012 Rich Cannings <richc@google.com> Revert "Pass URLs to package verifiers"

This reverts commit 24713907fe4632d263aea82f7a35c8fb08918a09

Change-Id: Ie04ba73475b813635c4a74915c45e83250801b6b
24713907fe4632d263aea82f7a35c8fb08918a09 26-Jul-2012 rich cannings <richc@google.com> Pass URLs to package verifiers

This change passes the originating URL and accompanied referrer to
package verifiers, when available.

Bug: 6544677
Change-Id: If9ff6663ad7f3426b7aea2aceb1413b689788138
e6c2d62efb65fa7b4681d29ad0710df56bf9002b 26-Jun-2012 Dianne Hackborn <hackbod@google.com> am 9906e784: am 17990395: Merge "Fix issue #6717667: expanded notification actions don\'t work on the lock screen" into jb-dev

* commit '9906e784faca2cc8388a04fdc544722ea93d51be':
Fix issue #6717667: expanded notification actions don't work on the lock screen
1927ae8a56a010919a7535231fa0f7db70f7e152 23-Jun-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6717667: expanded notification actions don't work on the lock screen


Instead, and the infrastructure for the status bar to take care
of closing and hiding things itself when you press these buttons,
just like it does for the main Intent of the notification.

Bug: 6717667
Change-Id: I1b22186e0cedc05f46a1a3ec78053a72afaf61b1
6009dc014f8fa0aefc68e7265761960c5433d108 20-Jun-2012 Jean-Michel Trivi <jmtrivi@google.com> am b92d2a13: am 18ddb6ce: Merge "Remote volume handling in MediaRouter" into jb-dev

* commit 'b92d2a13c4ab34862968f47191d2713de3701757':
Remote volume handling in MediaRouter
1357012968f9066ea3051d83995e9bac69526c3c 19-Jun-2012 Jean-Michel Trivi <jmtrivi@google.com> Remote volume handling in MediaRouter

Extend MediaRouter.UserRouteInfo to enable setting playback
information, which includes volume. When the user route instance
has a RemoteControlClient, forward any playback information to it.
Enable specifying a callback to be notified of volume events
on the route.
Extend MediaRouter.RouteInfo to enable retrieving playback

Update RemoteControlClient javadoc to reflect which parts of the
API are not intended to be made public.

Change-Id: I59d728eb61747af6c8c89d53f0faeb07940594c3
629f051f7d061f4db4a174dbd267a96f0c8113df 19-Jun-2012 Jean-Michel Trivi <jmtrivi@google.com> am 586b8ee6: am 2f442304: Merge "Remote volume handling" into jb-dev

* commit '586b8ee62e0245e3c88ce9db51e1c1c3b4f1fb2c':
Remote volume handling
3114ce3861f20f9a5c2c59dd2629197a1f4874a8 12-Jun-2012 Jean-Michel Trivi <jmtrivi@google.com> Remote volume handling

Extend RemoteControlClient class to enable an applicaton to
specify more information about how it's playing media, now covering
usecases where media playback happens "remotely". This playback
information can be used to set the volume and maximum volume
used remotely.
Declare a new intent and associated extras in Intent,
ACTION_VOLUME_UPDATE, so an application can be notified that
the volume it handles should be updated. It can then use
the new RemoteControlClient.setPlaybackInformation() method
to notify AudioService what the volume is.
Extend AudioService to maintain playback information associated
with the RemoteControlClient information in the stack of
media button event receivers (mRCStack). The information
about the active remote is cached so the stack doesn't have
to be iterated over in order to retrieve remote playback info.
Events to "adjust" the remote volume based on hardware key
presses cause the client application to be notified of
volume updates, and the volume panel to display the volume
set by the app.
Revise which stream type is controlled when none is specified
according to latest guidelines for remote playback.
Update VolumePanel class to support a new pseudo stream type,
AudioService.STREAM_REMOTE_MUSIC, that corresponds to the
remote playback volume, and uses the new "media route" icon.
Enable it to receive asynchronously new volume values for
the remote that will be displayed if the UI is still up,
and ignored otherwise.
Now supports hiding/showing sliders dynamically so remote
volume only appears when AudioService has a remote control
client handling remote volume.
Define new java symbols for the two media route icons.
Modify lockscreen behavior: don't automatically control music
volume when music is active, consider also remote playback.

Still to do:
- playback information set by RemoteControlClient should post
a message for AudioService to update playback information
instead of updating it synchronously

Change-Id: I557aa687239f9acfe33a609f05876c67fa7eb967
368ed010ee0d86742fab46edaef8b205bb8ab262 08-Jun-2012 rich cannings <richc@google.com> Add Intent extras to pass to package verifiers

Adding extras to identify the:

- URL from which the APK originated

- the HTTP referrer associate with the URL

Bug: 6544677
Change-Id: Ie3d2244d9befa7161eeceb458573d6b0f8206cc7
1c29700c5fe261f6829d95f22bd8c1fe6daf362e 18-May-2012 Jeff Sharkey <jsharkey@android.com> Guard against apps breaking CHOOSER contract.

Bug: 6520937
Change-Id: I677a644cf7765bbb046f9c82e1ebd8a40968cee6
e302a162359e191633e966520a6bab4ad569390c 15-May-2012 Dianne Hackborn <hackbod@google.com> A few odds and ends.

- Add documentation on "television" UI mode.
- Tweak new documentation and implementation around propagating
URI grants through choosers.
- Add new activity launch flag for closing system dialogs.

Change-Id: I978c05f0dc3d16e1c55d43631828b9efa6335b19
3b7d1ef4be2af83eecde3a7577b783355a9cd7c1 15-May-2012 Jeff Sharkey <jsharkey@android.com> Migrate stream extras in CHOOSER intents.

When sending CHOOSER intent, inspect its target for any EXTRA_STREAM
needing migration. If any migration happens, copy the ClipData to
the CHOOSER intent and set GRANT_READ flag. Also update CHOOSER docs.

Bug: 6463773
Change-Id: I66a7adf7bf6f2f173866925cb7e048f4c7a63222
abc43ddd8ae098de7a56afc55909f904cd933016 10-May-2012 Jesse Wilson <jessewilson@google.com> Rename Uri.normalize() to Uri.normalizeScheme().

Change-Id: I67839656c7c1c16a5376c9894d699d2bad3c7a5c
0799440ab3ce50ffa6acb762cb7677abdffb3f74 02-May-2012 Jim Miller <jaggies@google.com> Fix 6414061: Add new ACTION_ASSIST intent.

Change-Id: I3d334f67723ac89f6001267e0f06ad76190b929f
0e128bb2e03dafdabc06710a6b0ea93f0e62a188 01-May-2012 Dianne Hackborn <hackbod@google.com> New permissions UI.

Had to keep around a little of the old API for the device
admin settings UI to continue to use.

Change-Id: I84c5666a7f3fec0495eae196a0ffc2223c9e6f82
dd471e6a6fcea7e7c43b68554f92d875e9f65165 01-May-2012 Jeff Sharkey <jsharkey@android.com> Catch CCE when migrating to ClipData.

Bug: 6231948
Change-Id: I51bc272d29a17881b3d4908fda549da20aa7e6b3
c5bf7584422adca286c1f27a073df925c06f068d 26-Apr-2012 Dianne Hackborn <hackbod@google.com> Update process importance documentation.

Also be more direct about some of the wallpaper APIs.

Change-Id: I2112898c0cd4415d6c5fd47923de682d59b8291f
ac4243f177efb66f15df2f818418eac2b7abcec7 14-Apr-2012 Dianne Hackborn <hackbod@google.com> Make ACTION_SEND and ACTION_SEND_MULTIPLE build full clip items.

The current code was just for transferring URI grants. This change
makes it so it propagates all of the relevant extra data into the
ClipData, so developers can just retrieve the ClipData for all of
their data needs.

Change-Id: I36a050c7beae325aceb84518337f878c337d8b86
acb69bb909d098cea284df47d794c17171d84c91 14-Apr-2012 Dianne Hackborn <hackbod@google.com> Add direct support for HTML formatted text in ClipData etc.

When using the clipboard, ACTION_SEND, etc., you can now supply
HTML formatted text as one of the representations. This is exposed
as a set of methods on ClipData for building items with HTML
formatted text, and retrieving and coercing to HTML (and styled)
text. In addtion, there is a new EXTRA_HTML_TEXT for interoperating
with the old ACTION_SEND protocol.

Change-Id: I8846520a480c8a5f829ec1e693aeebd425ac170d
59f482764e346a5c5ac118ee1f7b24da645c2559 06-Apr-2012 Eric Laurent <elaurent@google.com> Added support for USB audio devices

Two types of USB audio devices are defined:
- USB audio device: the audio device in USB device mode while
the Android device is in USB host mode.
- USB audio accessory: the audio device in USB host mode while
the Android device is in USB device mode.

Renamed intents for analog and digital docks to avoid confusion:

Factorized code in AudioService broadcast receiver.

Change-Id: I1b6d0257a9d68ecb9495c78c98bac8c67fec7891
9d5a4be05b6d51ebb768e5fbcfa27ed9a39269b3 06-Apr-2012 Mike Lockwood <lockwood@google.com> Add Intents to notify when USB audio devices or accessories are attached

In this change, only the USB audio accessory support is implemented.

Change-Id: Id9b411319b07a96dc56649ca74cc5f3f89a55a7c
Signed-off-by: Mike Lockwood <lockwood@google.com>
8b5bce8d9060c1b68b5605da8f6978d8fb5ea1d3 27-Mar-2012 Amith Yamasani <yamasani@google.com> Merge "User management and switching"
135936072b24b090fb63940aea41b408d855a4f3 23-Mar-2012 Amith Yamasani <yamasani@google.com> User management and switching

Broadcast intents that get sent out when users are added/removed/switched.

More work on generating user-specific information in package manager queries.
APIs to update user name and query a user by id.
Removed Package.mSetStopped and mSetEnabled, since they're not user specific.

User removal:
- Cleanup ActivityManager, PackageManager, WallpaperManager, AppWidgetService
and AccountManager.
- Shutdown processes belonging to the user.

Don't show vibrate option in long-press power if there's no vibrator.

Lock the screen when switching users, to force unlocking.

Change-Id: Ib23a721cb75285eef5fd6ba8c7272462764038fa
f27ea66114569d233c65cb895543668f3202ca19 27-Mar-2012 Jeff Sharkey <jsharkey@android.com> Avoid ClassCast when migrating ACTION_SEND extras.

Bug: 6231948
Change-Id: I008195fa973517446b2400ed3f59af0cbf0fc925
678d04f1b6d189b2d867d518065f90dce7292863 23-Mar-2012 Jeff Sharkey <jsharkey@android.com> Copy EXTRA_STREAM into ClipData and grant.

When sending SEND or SEND_MULTIPLE intents, copy any EXTRA_STREAM
Uris to ClipData and set GRANT_READ_URI_PERMISSION flag.

Bug: 6216357
Change-Id: I3c9b0d1d4b7e0c4655b47c4192150b0c3641e0e8
f76a50ce8fdc6aea22cabc77b2977a1a15a79630 09-Mar-2012 Ken Wakasa <kwakasa@google.com> Fix obvious typos under frameworks/base/core

Change-Id: Ia5fc3db1bb51824e7523885553be926bcc42d736
21c241e061de29a538008ca42df9c878184bcfb8 08-Mar-2012 Dianne Hackborn <hackbod@google.com> Add new Intent API for associating a ClipData with an Intent.

Allows applications to propagate multiple URI grants through an

Later on, we should probably redefine the share actions to be
based on this ClipData with the old extras-based approach only
there for compatibility. Even if we don't do that, though, this
allows you to do a multi-select share that grants multiple URI
permissions by stuffing the URIs in a ClipData.

Also add some documentation in various places telling people how
they can grant URI permissions.

Change-Id: Id4ba8e72c11caf7e1f1f438cb7af058d1586a37c
e61cad321d2888f2b6b7e0322158211e3b3e0c46 08-Mar-2012 Dirk Dougherty <ddougherty@google.com> resolved conflicts for merge of 532679a5 to master

Change-Id: Id60d047c0e1f288acff97526c016cca632873b6b
4d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219 28-Jan-2012 Dirk Dougherty <ddougherty@google.com> Doc change: String changes for Android Market

Change-Id: I823812a4fd24021bec906ad856479c92a8d2a759
f46723b41f723ebfc9ed18c7c409b319f4b5e539 26-Jan-2012 Christopher Tate <ctate@google.com> Implement background vs foreground broadcasts

Before now, receiving a broadcast would cause a process to be hoisted
to foreground priority / cgroup. This is no longer the case: broadcasts
by default are handled in the background, with a suitably increased
timeout interval. When a given broadcast needs to be dealt with in a
more timely manner, the issuer can set the new FLAG_BROADCAST_FOREGROUND
flag on the Intent, which will produce the old foreground-priority

To avoid priority inversions, foreground broadcasts are tracked on a
separate outgoing queue and can be in flight simultaneously with a
background-priority broadcast. If there is already a background-level
broadcast in flight to a given app and then a foreground-level one is
dispatched to that app, the app [and its handling of both broadcasts]
will be properly hoisted to foreground priority.

This change is also essentially the first step towards refactoring the
broadcast-handling portions of the Activity Manager into a more
independent existence. Making BroadcastQueue a top-level class and
regularizing its operation viz the primary Activity Manager operation
is the next step.

Change-Id: If1be33156dc22dcce318edbb5846b08df8e7bed5
ccae412deda8b0c165c86f395752c0667a3411a6 09-Jan-2012 Nick Pelly <npelly@google.com> Add API's for normalizing MIME's and URI's.

Helps developers create well-behaved intents:
- lower case MIME data type
- strip parameters from MIME content types
- lowercase URI scheme

The new API's are

Change-Id: Ib5c907897f39b1f705bcc4c9103ba1e6f316380b
251fe263756988a6d6207fe73bb0f64bf2abacda 15-Dec-2011 Dianne Hackborn <hackbod@google.com> Fix some java docs.

Change-Id: I0eeba6f9108db74418063fba522ed3ef1c27ae95
f5b8671c340f189c50b41c53622f979b6d5e0a57 06-Dec-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5714517: App shortcuts can result in bad task intents

New API to let you build an Intent whose base configuration is correct,
but has an additional "selector" to pick out the specific app that you
would like launched.

Change-Id: Ide9db6dc60e2844b7696cfe09b28337fe7dd63db
6651a638348c15e89e265b0a53c775cac9beafa2 28-Nov-2011 Jeff Brown <jeffbrown@google.com> Fix application launch shortcuts.

Improved quick launch bookmarks to support category-based shortcuts
instead of hardcoding package and class names for all apps.

Added a set of Intent categories for typical applications on the

Added support for some of the HID application launch usages to
reduce reliance on quick launch for special purpose keys. Some
keyboard vendors have hardcoded launch keys that synthesize
"Search + X" type key combos. The goal is to encourage them
to stop doing this by implementing more of HID.

Bug: 5674723
Change-Id: I79f1147c65a208efc3f67228c9f0fa5cd050c593
a5b58df09753bd13744381c54c8b2663eb4f256f 13-Oct-2011 Daniel Lehmann <lehmannd@google.com> Allow clearing out the source bounds

Change-Id: Id49f4a3ac397cf17c5704d298b6a9a376f6a5c23
cac15eb21cab68e5b76fe06f9aff273978c92054 04-Oct-2011 Joe Fernandez <joefernandez@google.com> Merge "docs: add developer guide cross-references, Project ACRE"
b54e7a3d9f60ac605f404f9eb3c5e92ca51bbd23 04-Oct-2011 Joe Fernandez <joefernandez@google.com> docs: add developer guide cross-references, Project ACRE

Change-Id: I5df1c4e13af67ff4c4a5b22f3cb1247bf0103b09
9ecebbfbf768fd63e9a6c9a09c86d81c7737ee2d 29-Sep-2011 Dianne Hackborn <hackbod@google.com> Add mechanism for Parcel to not allow FDs to be written to it.

This is to help implement issue #5224703.

Change-Id: I026a5890495537d15b57fe61227a640aac806d46
90c52de28691ca0bbbf7c039ef20f85ce46882cc 23-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5173952: Opening a Notification From Lock Screen...

...Should Skip Unsecure Lockscreen (ICS)

Also while I am in there, clean up logging of intent objects to include
even less sensitive information, while showing the true Intent in dump
output (since apps can't get to that).

Change-Id: I35fed714645b21e4304ba38a11ebb9c4c963538e
3a9b5fbb97e65019abec97f172b4cbf2100d1225 20-Sep-2011 Kenny Root <kroot@google.com> Unhide new PackageManager APIs for API 14

Change-Id: I83110285ccee39a4cd872a1c2af8357f541833d4
93d77b633e7888b425443f544b2732485adee45e 01-Sep-2011 David Brown <dab@google.com> Don't log PII when launching intents with "sms:" or "sip:" URIs

We were already redacting phone numbers from "tel:" and "smsto:" URIs.

Now, do that for "sms:" and "sip:" too, since those schemes are equally
likely to contain PII in the scheme-specific part.

TESTED: Received incoming call; selected "Respond via SMS" -> "Custom
message"; confirmed no PII in the system log.

Bug: 5244735
Change-Id: If2444c8901249aac9fd8e6b809d6da01db2e27c1
5ab2157bf1f105b02d3e2913cd3a33f9765b74ca 27-Jul-2011 Kenny Root <kroot@google.com> Infrastructure to support package verifier

Allow a package verifier to approve or disapprove of a package being

Change-Id: Ibfea0f2b1aaa4ab1589a4e59f96144702b9bf94b
f9abb405903cab1fcd379388a96925524840c607 11-Aug-2011 Dianne Hackborn <hackbod@google.com> New broadcast telling when an app is fully removed.

Change-Id: Ia516d826f302a01881fa92d9ffdc0adfbf669a4b
271c2fe0eb36fbf872535bedf3ee8156e3087847 10-Aug-2011 Dianne Hackborn <hackbod@google.com> New extended Intent protcols for installing/uninstalling apps.

Change-Id: I13be1cc58c91f51d521a1f0f734d2b2db7b2980b
7f86827af44eb5267c8d21f355d109ff71b04f10 06-Jun-2011 Jeff Sharkey <jsharkey@android.com> Intent to manage application network data usage.

Will be launched by Settings when presenting detailed network data
usage for a specific application. Offers easy access into application
settings to change behavior.

Change-Id: I4ee0fdbc69f6a800ad59aca8db6b21f15ca71a66
7e4db3767b1338dd9f2c09a3f6453abd656c977f 07-Jun-2011 Mike Lockwood <lockwood@android.com> Add comment for deprecation of Intent.ACTION_UMS_CONNECTED and ACTION_UMS_DISCONNECTED

Change-Id: I3c42393c79424217d6b44cccef9de9e06da58193
Signed-off-by: Mike Lockwood <lockwood@android.com>
da85e524c7d2dc3b7524cddd12ad0461602a1cbb 07-Jun-2011 Mike Lockwood <lockwood@android.com> Deprecate Intent.ACTION_UMS_CONNECTED and Intent.ACTION_UMS_DISCONNECTED

Change-Id: I7261959462422cf241a46a5ada6fbd98d655db3d
Signed-off-by: Mike Lockwood <lockwood@android.com>
eb6b9e649e0e8a9d8f7bcfaac38bc244825e911a 22-Apr-2011 Marco Nelissen <marcone@google.com> Fix javadoc.

Change-Id: I6de2ac39626cb8749a525c51234018986dd95969
9cdffa1788e2f24a674f185307000946aeb3760f 07-Apr-2011 Joe Onorato <joeo@google.com> A system setting for "advanced settings."

Change-Id: I622bc5fa7e5cba41362acd3b25ed9d3f119c72a2
e7f972122db87dc54e41ed1a6e417534d43bca3a 24-Feb-2011 Dianne Hackborn <hackbod@google.com> Implement issue #3426299: Introduce application "stopped" state

The package manager now keeps track of whether an application is
stopped. There are new intent flags to control whether intent
filters in a stopped application will match the intent. This is
currently used in one place, sending broadcasts, so that stopped
apps can not be launched due to background processes.

The package manager during first init makes sure no applications
are in the stopped state. When new applications are installed,
that begin in the stopped state. When the activity manager is
launching a component of an application, it ensures the application
is taken out of the stopped state.

The "force stop" button in manage applications will now put an
application back in to the stopped state; it can't go back out
of the stopped state until one of its components is launched by
the activity manager.

There will probably be a few more places where we need to filter
stopped applications out of intent matches, but doing this for
broadcast is a very big first step.

This also introduces a new broadcast that is sent to an application
after it is replaced with a new .apk. But only if the app is not
in the stopped state. This makes it a lot easier for developers to
implement code to get their application back in proper running shape
after an upgrade.

Finally another new broadcast is added that is sent to a package's
installer at the first time it is launched. This allows the installer
to tell the package about it being installed only when it is first
actually used.

Change-Id: I589c53ff0e0ece868fe734ace4439c0d202dca2d
121370d25c7c7113fb7913ab90f45c667b26af57 09-Feb-2011 Scott Main <smain@google.com> am 3c565377: am b508d6e2: Merge "docs: fix links to revised fundamentals documents" into honeycomb

* commit '3c5653773d6b48f27aa52d746a7a6f8728d5ba36':
docs: fix links to revised fundamentals documents
7aee61f5a96e94e158bf5ad3d8e192c4d4f7eff6 08-Feb-2011 Scott Main <smain@google.com> docs: fix links to revised fundamentals documents

Change-Id: Ie2a660cce1d00f924c9fde5c6a00776307e5e1c7
2c376fc46cd01b12e003a7bf83d82f527f6efaf1 29-Jan-2011 Jeff Brown <jeffbrown@google.com> Optimize IntentResolver to reduce lookup time by 50%.

IntentResolver frequently iterates over hundreds of different IntentFilters
and spends much of its time creating iterators and comparing strings.
This change avoids reduces the amount of garbage created by eschewing
iterators where possible. The FastImmutableArraySet type on its own
provides a 2.5x speed boost compared to repeatedly iterating over a HashSet.

In absolute terms, during orientation changes we spent about 160ms resolving
11 intents and performing 1129 calls to IntentFilter.match. Now we spend
half of that time.

Change-Id: Ia120e0082c8cf0b572a0317b9ef4a22c766dbad6
c4d0e6fceafbf8b2f3e4e09bc2fc69af3c4eb92b 25-Jan-2011 Dianne Hackborn <hackbod@google.com> New extra for GET_CONTENT.

Change-Id: Ib367c02619ee301d9651dd70d35f7d57aa8a0cbc
4d29b2f11d4ea3b0cf60f1a1bf394740d64ef416 16-Dec-2010 Eric Laurent <elaurent@google.com> Fix error in HDMI and digital dock intent strings

where mistakenly using the same string.

Change-Id: Iede1896196585396dcc7e00aad06ad60e9a87875
30d7189067524000c738c188c4ff91f84f474d25 11-Dec-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3274841: Orientation change problem with a paused activity

Plus a bunch of debug output improvements.

And some new Intent helpers for dealing with restarting an app.

Change-Id: I50ec56bca6a86c562156b13fe8a6fdf68038a12e
621e17de87f18003aba2dedb719a2941020a7902 23-Nov-2010 Dianne Hackborn <hackbod@google.com> Implement issue #3221502: New APIs to support new back stack / task navigation

What this adds:

- A new Intent activity flag to completely replace an existing task.
- A new Intent activity flag to bring the current home task up behind
a new task being started/brought to the foreground.
- New versions of startActivity() that take an array of Intents to be
started, allowing applications to start a task in a specific state.
- A public moveTaskToFront() method on ActivityManager, with a new flag
that allows the caller to have the task moved to the front with the
current home task immediately behind it.

Change-Id: Ie8028d09acffb5349d98043c67676daba09f75c8
03595d01188d88c169e8c9dd51b357fd545e69cc 02-Nov-2010 Robert Greenwalt <rgreenwalt@google.com> Tell each VM to flush their DNS cache.

Change-Id: I93de24e3e5a7d8b94d55f4facfffc863a2b8c202
26e37349831476d3225570af2dfbf1e459374c6b 03-Nov-2010 Praveen Bharathi <pbharathi@motorola.com> frameworks/base: switch audio to hdmi when cable is plugged in

Change-Id: I01c4ee968bc0ffbb6ce75370935571cc1ff6f8c7
Signed-off-by: Iliyan Malchev <malchev@google.com>
21e941bf43362ddc6639a9f2d0828053360f53d7 06-Oct-2010 Praveen Bharathi <pbharathi@motorola.com> Added support for dock headset observer

Change-Id: I06b2e65e3bfa10735e6c7fd3349afa9ae7d45292
Signed-off-by: Praveen Bharathi <pbharathi@motorola.com>
b079a106524c8028a1602b6df9be5d273a6552cf 15-Oct-2010 Wink Saville <wink@google.com> am 94980e0f: am 07e1be62: Merge "Fix NPE caused by Change I4df27119." into gingerbread

Merge commit '94980e0f76295de53bd168608d11dba3c39cca9d'

* commit '94980e0f76295de53bd168608d11dba3c39cca9d':
Fix NPE caused by Change I4df27119.
1b422d8cd8ed83b79e977a3afb99969cea4a6700 14-Oct-2010 Wink Saville <wink@google.com> am 090ac9f7: am a3100314: Merge "Remove some PII." into gingerbread

Merge commit '090ac9f7dd883aa75c899745182471d409a2b762'

* commit '090ac9f7dd883aa75c899745182471d409a2b762':
Remove some PII.
c491ee02237fc5c0e6a4ad81ebc899d97c9778b5 13-Oct-2010 Wink Saville <wink@google.com> Fix NPE caused by Change I4df27119.

This change caused Music APP to throw an NPE the fix
is to test that scheme is not null before using it.

Bug: 3092886
Change-Id: Ib29f944cbd9a9ff628462bdd6f4b68a308468536
a42880749b368e60caee77dd682d434e48ca96bd 12-Oct-2010 Wink Saville <wink@google.com> Remove some PII.

Change-Id: I4df27119b6bbd28bf950516fd6f44676a8e04f06
94bf9431e5464c7757890abfe0716997151f153f 08-Sep-2010 Jake Hamby <jhamby@google.com> am e7578344: am 5872e9d7: Merge "Allow incoming SMS until internal storage is almost full." into gingerbread

Merge commit 'e75783440a55fb0a5ef75066be94a11898f652f0'

* commit 'e75783440a55fb0a5ef75066be94a11898f652f0':
Allow incoming SMS until internal storage is almost full.
bb3716332321e22537a5015be13e2229fb9b90bc 24-Aug-2010 Jake Hamby <jhamby@google.com> Allow incoming SMS until internal storage is almost full.

Fix for bug 2382830: new incoming SMS should not be rejected when
running low on internal phone storage.

Testing revealed that the /data partition should have at least 256 KiB
available in order to prevent random app crashes (including system apps)
due to SQLite transaction failures. With 256 KiB free, the device should
safely boot without storage full errors. This takes into account the
36-40 KiB that the YAFFS2 filesystem reports as available even after
the partition has been completely filled. I've set the default full
threshold to 1 MiB to provide a generous safety margin.

For this bug, I changed the DeviceStorageMonitorService demon to send
two new hidden notifications for device storage "full" and "not full",
when the free space falls below the full threshold (default 1 MiB,
but configurable as a system setting), in addition to the existing
storage low/okay notifications sent when the storage crosses the threshold
of 90% full (also configurable).

The SMS code was changed to use these new notifications so that it can
accept messages until the data partition has been filled to the maximum
safe capacity rather than stopping when it hits 90% full. There should
be no negative impact on battery life because the additional check in
the storage polling service should be offset by an optimization to cache
the free threshold values which were previously being computed every time
through the loop.

While testing this change, I discovered that SMSDispatcher was being
instantiated twice, the first time in GSMPhone/CDMAPhone, and the second
time in SimSmsInterfaceManager / RuimSmsInterfaceManager. Changed the code
to pass the original SMSDispatcher to the Sim/RuimSmsInterfaceManager

Change-Id: Ie0c6d05294778ab6ee42e0fa01313af96d824c77
6dabe240ed0adcf74d0b5eed37d7085095e20ffd 30-Aug-2010 Patrick Dubroy <dubroy@google.com> Add an Intent category for apps that provide an app market.
23fdaf6fb62a9b5154b2508916a21c678462c5d0 06-Aug-2010 Dianne Hackborn <hackbod@google.com> Add new ContentProvider for doing conversions to data streams.

This introduces basic infrastructure that should allow content
providers holding complex data to perform on-demand conversion
of their data to streams of various types. It is achieved through
two new content provider APIs, one to interrogate the possible
stream MIME types the provider can return, and the other to
request a stream of data in a particular MIME type.

Because implementations of this will often need to do on-demand
data conversion, there is also a utility intoduced in ContentProvider
for subclasses to easily run a function to write data into a
pipe that is read by the client.

This feature is mostly intended for cut and paste and drag and
drop, as the complex data interchange allowing the source and
destination to negotiate data types and copy (possible large)
data between them. However because it is fundamental facility
of ContentProvider, it can be used in other places, such as for
more advanced GET_CONTENT data exchanges.

An example implementation of this would be in ContactsProvider,
which can now provider a data stream when a client opens certain
pieces of it data, to return data as flat text, a vcard, or other

Change-Id: I58627ea4ed359aa7cf2c66274adb18306c209cb2
8d83f9e31bfff0281b522c53e035dffc7dd00ba9 13-May-2010 Costin Manolache <costin@google.com> Bug 2680071: Rename the Cloud to Device

Change-Id: I12ab32de393e44a499e3f9e3a0b38f4682156ff5
161c75a0f3ca5255001f7d737a02a4f9d728f1f4 11-May-2010 Costin Manolache <costin@google.com> Bug 2673557: rename datamessaging

Change-Id: I583ac61c7b8fce69d60801dc76aeca9f13d250b2
89e0c1a9f5a86d47c20b1bf9b9c78507ffbafd1f 20-Apr-2010 Suchi Amalapurapu <asuchitra@google.com> Fix 2610961
Unhide broadcast intents that are sent when sdcard gets mounted/unmounted.

Change-Id: Ibb5700178e98f657f1c2b6a2f83e722151c4a44f
aea4b678b5f59f63ba6810f94dbc40ea4139e708 31-Mar-2010 Bernd Holzhey <holzhey@google.com> Add a new intent category used for activities running in carmode.

Change-Id: I4702538c9f53cc0b64eae72298e27232cdfb3548
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. :(
8a051a4ec34680dc93554457fec84677cb2cdcbf 04-Mar-2010 Joe Onorato <joeo@android.com> Fix typo. According to grep, this is the only place in the tree that has it.
bf2dd44a6f86d13efd55d1e690822fba11187bf8 03-Mar-2010 Mike Lockwood <lockwood@android.com> MountService: Send ACTION_MEDIA_UNSHARED Intent a volume is no longer shared via UMS.

Change-Id: I21c887ae76eccabcc5d8449aa0a38e98758e8958
Signed-off-by: Mike Lockwood <lockwood@android.com>
08bbffb049c135c5dfd40d261118c90d1a6dc111 25-Feb-2010 Bjorn Bringert <bringert@android.com> Support CharSequence lists+arrays in Bundle+Intent

Fixes http://b/issue?id=2468093

Change-Id: Id82686f6ca8c9501f6db8a07018278a78ddacd05
2269d1572e5fcfb725ea55f5764d8c3280d69f6d 25-Feb-2010 Dianne Hackborn <hackbod@google.com> Re-arrange android-common so framework no longer links with it.

This is the framework part, moving classes around so the framework
no longer needs to link to android-common. Makes some APIs public,
others that didn't need to be public are private in the framework,
some small things are copied.
21f1bd17b2dfe361acbb28453b3f3b1a110932fa 20-Feb-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2438980: Implement package watcher for voice recognizer service setting

I am getting tired of writing package monitor code, realized this is missing in
a number of places, and at this point it has gotten complicated enough that I
don't think anyone actually does it 100% right so:

Introducing PackageMonitor.

Yes there are no Java docs. I am still playing around with just what this
thing is to figure out what makes sense and how people will use it. It is
being used to fix this bug for monitoring voice recognizers (integrating the
code from the settings provider for setting an initial value), to replace
the existing code for monitoring input methods (and fix the bug where we
wouldn't remove an input method from the enabled list when it got
uninstalled), to now monitor live wallpaper package changes (now allowing
us to avoid reverting back to the default live wallpaper when the current
one is updated!), and to monitor device admin changes.

Also includes a fix so you can't uninstall an .apk that is currently enabled
as a device admin.

Also includes a fix where the default time zone was not initialized early
enough which should fix issue #2455507 (Observed Google services frame work crash).

In addition, this finally introduces a mechanism to determine if the
"force stop" button should be enabled, with convenience in PackageMonitor
for system services to handle it. All services have been updated to support
this. There is also new infrastructure for reporting battery usage as an
applicatin error report.
154f7a1cc2d4f0468a7cc8dfa36e837c84cd9f7e 17-Feb-2010 Tobias Haamel <haamel@google.com> Show car mode notification in status bar.

The notification is an ongoing event and can be used to get out of car mode.
63cfebf2dbe628508cccc10f47754fdacd48c1a0 05-Feb-2010 Costin Manolache <costin@google.com> Switch from REMOTE_INTENT to the new push messaging, add the required permission.
27b28b3f62bd3b54fa13acd5d035940b9be464f3 09-Feb-2010 Tobias Haamel <haamel@google.com> Introduce special UI modes for night and car usage.

The device mode is now called ui mode. Furthermore is the order of
precedence for the resources now in such a way that the ui mode needs
to be specified after the orientation and before the density.

The ui mode can be set, like it is done for the locale, as follows:

IActivityManager am = ActivityManagerNative.getDefault();
Configuration config = am.getConfiguration();
config.uiMode = Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;

To allow users to disable the car mode and set the night mode the IUiModeManager
interface is used.

The automatic night mode switching will be added in a separate change.
b56ae20b22fd7283df32072a431ab6d4965f3c1b 05-Feb-2010 Suchi Amalapurapu <asuchitra@google.com> Rename media resource broadcasts
Add checks for fwdlocked and updated system apps
add more tests
remove duplicate adds
08675a3376819a82aa5ab344bc3e7b1635c30b05 28-Jan-2010 Suchi Amalapurapu <asuchitra@google.com> Apps on sdcard: Add new broadcasts

PackageManagerService when sdcard gets mounted/unmounted
by MountService so that packages on sdcard get recognized by
various system services as being installed/available or
removed/unavailable by the system.
The broadcasts are sent before the actual package cleanup which includes
mounting/unmounting the packages and we force a gc right after so
that any lingering file references to resources on sdcard get
a94e7afb28c6bd9af6f2b0142a577086399066b2 13-Jan-2010 Bjorn Bringert <bringert@android.com> Remove Intent.ACTION_GLOBAL_SEARCH

I added Intent.ACTION_GLOBAL_SEARCH a little while ago, since
I thought we needed it to be different from the old
SearchManager.INTENT_ACTION_GLOBAL_SEARCH. Since GlobalSearch is
no longer built, reusing SearchManager.INTENT_ACTION_GLOBAL_SEARCH
should be fine.

Change-Id: If3a11a77a8e1d9940cf2b20817a60888cdd9d69f
f0108cda21bec61418b24aa6217406072780b5d5 22-Dec-2009 Tom Taylor <tomtaylor@google.com> resolved conflicts for merge of ad2fa35d to master

Change-Id: Ia4362cd48ac0689b91003943a4cd9660da72ff90
ee0511d76ce0ceae2f54782ca33e400e62d08137 22-Dec-2009 Dianne Hackborn <hackbod@google.com> Fix issue #1154972: clone defined, but class doesn't implement Cloneable
d4a4729c0cac582a2dcec7c8cfb316b81885a0f0 21-Dec-2009 Tom Taylor <tomtaylor@google.com> Update imports to android-common

Several files were moved to android-common. Update all the references
to import those files from the new location.
1c633fc89bae9bf0af6fe643ac7ad2e744f27bed 09-Dec-2009 Dianne Hackborn <hackbod@google.com> Implement API to have new broadcasts replace existing broadcasts.

Use this in various places where it should serve no purpose to deliver
both broadcasts. This is intended to reduce somewhat the flurry of
broadcasts that we churn through during boot.
3c50ef6f665ab22cdb50c76bb31283e6bac47fc6 09-Dec-2009 Bjorn Bringert <bringert@android.com> Use unbundled QSB for global search

This obsoletes the following:
- The need to run SearchDialog in the system process.
- The global search mode code in SearchDialog.
- The GlobalSearch package.
- The search widget built into Launcher.

I will remove these in future changes.

Change-Id: I154386b1d6be73cfeab8376b6959a1dc5483e5f0
d59fb6e7435b57d83662b196f5430e6f2bc5427b 20-Nov-2009 Trevor Johns <tjohns@google.com> Updating list of standard Intents in android.content.Intent
c7a63eea8d3d346addaaf892b5bbe0aa80651640 03-Dec-2009 Joe Onorato <joeo@android.com> Add a new field to Intent that allows you to give a hint about what on screen caused the intent to
be sent.
1d62ea9d8c2646d198b6967e2c6ae3dad5c18f9e 17-Nov-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2249821: Unable to start passion in safe mode

Holding down the trackball now works.

Also fix a little API check warning from Intent.

Change-Id: Icb1f901535cb521917bf7f847a93c4ff7861d20e
923d7d721d37f6ba5148e7d79d61a4fa48e79df2 12-Nov-2009 Eric Laurent <elaurent@google.com> Fix issue 2242614: Wired headset not recognized: bogus "state" in ACTION_HEADSET_PLUG broadcast.

The headset state indicated by HeadsetObserver in the broadcast intent ACTION_HEADSET_PLUG was not 0 or 1 as specified in the java doc but contained a bit field indicating the type of headset connected.

Modified HeadsetObserver to broacast a state conforming to java doc.
Added an extra to intent ACTION_HEADSET_PLUG to indicate if headset has a microphone or not.
Removed handling of non standard headset indications from HeadsetObserver.
Removed platform specific devices from output devices defined in AudioSystem.
Modified AudioService to use new ACTION_HEADSET_PLUG intent extra instead of bitfield in state.
86a72dacbea3331cd5423c1f2f6ecbfae535e57c 12-Nov-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2256270: Package manager sends bad broadcasts when components change

Also reworks this intent protocol a little bit to be much more efficient, only
requiring one broadcast per package.

Change-Id: I580de4843ebd3c7f2e6df7295a2f80d2937cef7c
362d5b9b6429a2766f5b980d2010262135788ad8 12-Nov-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2256032: Change CONFIGURATION_CHANGED and add a locale changed broadcast

You can no longer receive CONFIGURATION_CHANGED in a manifest, which is really really
bad (launching apps every time the screen is rotated!). A new LOCALE_CHANGED broadcast
is sent that you can receive in a manifest.

Change-Id: I80022375f0716db2e672382a29db3cea1af74702
8b2e000c43f5a93209be269a0b9e08943fad8d3c 30-Sep-2009 Scott Main <smain@google.com> add class description and revise descriptions for
get*Drawable and peek*Drawable methods for clarity.
also fix some links.
9bfb707597898f54722460b48588007b682f3e2a 22-Sep-2009 Dianne Hackborn <hackbod@google.com> Various fixes and improvements to window, activity.

- New meta-data you can add to a dock activity to have it launched by the
home key when the device is in that dock.

- Fix a deadlock involving ActivityThread's internal content provider lock.

- New window flag to have a non-secure keyguard entirely dismissed when a
window is displayed.

- New WindowManagerPolicy APIs to allow the policy to tell the system when
a change it makes during layout may cause the wall paper or
overall configuration to change.

- Fix a bug where an application token removed while one of its windows is
animating could cause the animating window to get stuck on screen.

Change-Id: I6d33fd39edd796bb9bdfd9dd7e077b84ca62ea08
bfe319e06aa56c081d0d94d64a8181291d7f7388 21-Sep-2009 Dianne Hackborn <hackbod@google.com> Turn animations on by default.

Add API to skip the animation for a particular start activity, so that
a latter better one can be used.

Fix Theme.NoDisplay to actually work.

Fiddle with various animations: don't do a different animation for task
switching, try a scale animation for switching in/out of the wallpaper.

Adjust the animation duration so that at normal speed we have something
more like the slower animation option (so slow is now the default).

Change-Id: Ieba9f3db0bd9a762a19b327a3ecccbc7b547893d
6cca1599f78549716ef120245e54fa1961976dda 20-Sep-2009 Dianne Hackborn <hackbod@google.com> Fix issue #1862317: Browser does not appear to honor anchors (#es) in links

Also a little improved debugging output of bad resource identifiers.

Change-Id: I054064ef22855608ffd722e4ccf12ce57d1992b2
edd9316ca9b3b24d54e8a2468927da7e813098fc 19-Sep-2009 Dianne Hackborn <hackbod@google.com> Add better APIs for the battery status, and other cleanup.

Also add new configs for keeping screen on while docked, which will
be used elsewhere.

Change-Id: Ifaa1118f14fd850ac809895f9a5c9e8c413259b8
fa82f22f1d8c4c828bdf9b670006be4f4fec772e 18-Sep-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2093608: Calendar widget takes a few seconds to launch

Avert your eyes!

The key change here is that RemoteViews can now call a Context API to
start its pending intent, which inside of the activity manager we can
use to determine to cancel the timeout delay for external entities
to disrupt the home screen.

Change-Id: If097cf7478cbed7a3c04a304050bd7fd5703d197
9092ab4d458ad60b459d5fad52368bde5d25f665 16-Sep-2009 Mike Lockwood <lockwood@android.com> Add support for launching activities when attaching to a car or desk dock.

Categories CATEGORY_CAR_DOCK and CATEGORY_DESK_DOCK can be assigned to
activities to make them launchable on docked events.
This is a better mechanism than listening for ACTION_DOCK_EVENT with a broadcast receiver.

Change-Id: Ic5f3ab3555ce02ca922bc31ebba41978cefe8bda
Signed-off-by: Mike Lockwood <lockwood@android.com>
eb034652c2037a47ebfd99779e8383bb8bb528af 07-Sep-2009 Dianne Hackborn <hackbod@google.com> Implement all of the infrastructure for configuring wallpapers.

Actually being able to configure a wallpaper relies on additional
work in the launcher and wallpapers that will be in another change.
Also note that this breaks all existing wallpapers, since they now
need to include a meta-data item about themselves. This also
will be fixed in another change.

Change-Id: I97d2c2bd07237abc32f92b9147c32530a2f73c71
5962d279f9f231add9a2ad436eb432ac95ab0706 04-Sep-2009 Chih-Chung Chang <chihchung@google.com> Add more documents on the ACTION_SEND_MULTIPLE intent.

Change-Id: Ic3d7b74299611158470b729be654fbadde1691ff
dd9b82c283815747b75fe4434c65e4b6c9c9b54f 03-Sep-2009 Dianne Hackborn <hackbod@google.com> Add better service reporting.

This will be used elsewhere.

Change-Id: Id561fa7fed5eb65446312cb697813483903d33a6
32f589046b4105f1a1b7cc2231d334e3971549e6 03-Sep-2009 Suchi Amalapurapu <asuchitra@google.com> Make new attribute EXTRA_CHANGED_COMPONENT_NAME in
broadcast intent ACTION_PACKAGE_CHANGED public so that
apps like launcher can find out the changed component name
when loading changes made in components.
0214e9475fa3b9aa00a784b5152bf4f1939c941e 02-Sep-2009 Suchi Amalapurapu <asuchitra@google.com> For intent ACTION_PACKAGE_CHANGED, there could be a lot of broadcasts related to enabling/disabling
components by apps which could result in thrashing on the PackageManager. For apps that
do not want to be restarted when such a broadcast is sent, we can just aggregate these broadcasts and
handle them at one go.
Changes include:
New structure to hold pending broadcasts by class name. If a component is enabled or disabled frequently
aggregate component enabled/disabled settings in this structure in a 10 second window and then
send out the accumulated list of broadcasts to the ActivityManager.
A new Handler implementation handles this message
Add new attribute name EXTRA_CHANGED_COMPONENT_NAME in broadcast intent Intent.ACTION_PACKAGE_CHANGED for
additional information for apps like Launcher.
Rename a couple of parameters, the names were too jarring.
aa52f9a7c63d4fdeba0fa16fe0aba3b47fef3738 26-Aug-2009 Dianne Hackborn <hackbod@google.com> Make SINGLE_TOP work with CLEAR_TOP.

Change-Id: Ie98b491dc4b1a2ae5e8fc8452c6410597bc9676b
fe240ecf85ba4b5e95caa602398587d4cce6459b 27-Aug-2009 Dianne Hackborn <hackbod@google.com> Change these string constants back to match donut.

Unfortunately we are stuck with the donut ones, can't change these in Eclair
to be the more correct names.

Change-Id: Id8aaa2e90cd21631b18a36bea3755a63d0e6d577
9acc030be474db2bc2371440a12cbdc478238689 25-Aug-2009 Dianne Hackborn <hackbod@google.com> Implement issue #2071750: add a pre-boot upgrade step.

Change-Id: I7133a03a6bf302dbac00c5f8b0420071d2453f89
725fcbf5ec0cbbe7fe9b899fe7acd01c9170c290 24-Aug-2009 Mike Lockwood <lockwood@android.com> Fix some Javadoc typos.

Signed-off-by: Mike Lockwood <lockwood@android.com>
c9f4eaf4388087f23aa97e55349850f0902a19d3 12-Aug-2009 Dan Murphy <D.Murphy@motorola.com> Dock changes:Docking station intents

Docking station intents for dock switch driver.
Add DockObserver and updated Intent.java and systemserver.jave

Signed-off-by: Dan Murphy <D.Murphy@motorola.com>

modified: core/java/android/content/Intent.java
new file: services/java/com/android/server/DockObserver.java
modified: services/java/com/android/server/SystemServer.java

Docking station updates

Add constants for the dock

Signed-off-by: Dan Murphy <D.Murphy@motorola.com>
Signed-off-by: Mike Lockwood <lockwood@android.com>
bad80e0dccdeaeea97991f7d092678ff0df1bc84 30-Jul-2009 Mike Lockwood <lockwood@android.com> Add Activity Intent.ACTION_REQUEST_SHUTDOWN for requesting a system shutdown.

The Intent.EXTRA_KEY_CONFIRM extra can be set to require user confirmation before shutting down.
The ACTION_REQUEST_SHUTDOWN Intent is protected by android.permission.SHUTDOWN.

Signed-off-by: Mike Lockwood <lockwood@android.com>
cdc0d941e8d34e63ef2f4b2eda6e040a7d902792 30-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 2bad713f: Merge change 8860 into donut

Merge commit '2bad713f31d642d5350949b90b3abe00fbd9ca55'

* commit '2bad713f31d642d5350949b90b3abe00fbd9ca55':
Fix bug 2017664
ed06578eddde07abe325fa4c92910bb7246cd49f 28-Jul-2009 Jean-Michel Trivi <jmtrivi@google.com> Fix bug 2017664
Removed the TTS_ prefix in the TextToSpeech class to follow the standard naming convention.
Moved the TTS-related intents from the Intent class to TextToSpeech and TextToSpeech.Engine.
Renamed the TextToSpeech.Engine constants that are used as extras for the
ACTION_TTS_CHECK_TTS_DATA intent to prefix them with EXTRA_.
Cleaned up the other TextToSpeech.Engine constant to remove superfluous mentions of
"TTS" in the name.
02f5228c3c224dc8804cbedd40899fa0c42bfd4a 29-Jul-2009 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of f0d83fd9 to master
7f2054392e9957d3ba8579ef08c29cfb27df564e 28-Jul-2009 Dianne Hackborn <hackbod@google.com> Updates from API review.

* AccessibilityService -- document onBind() to not be implemented.
* GestureLibrary.getLearner() -- needs to be hidden.
* IntentSender -- remove protected constructors, document that it is retrieved from a PendingIntent.
* Hide permissions: SHUTDOWN, STOP_APP_SWITCHES.
* Context -- hide BACKUP_SERVICE.
* ContextWrapper -- hide getSharedPrefs bla h blah
* Intent.parseUri() -- fix docs.
* ApplicationInfo.FLAG_TEST_ONLY?!?
* Hide MockContext.getSharedPrefs blah blah
078bc317b741b601b857f64393e639df0e9a7dc4 22-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 43f8d2e5: Merge change 8106 into donut

Merge commit '43f8d2e58ce75d1705ad3ee347ae4eaee5dc9b6a'

* commit '43f8d2e58ce75d1705ad3ee347ae4eaee5dc9b6a':
Add note to Intent.fillIn javadoc to describe component copying behavior.
3e391759d9e7e99fd5ab2d5400bf5acdd54dc808 22-Jul-2009 Brett Chabot <brettchabot@google.com> Add note to Intent.fillIn javadoc to describe component copying behavior.
bd3e0ce5a288d75e5e420f52da31c34be59063f4 17-Jul-2009 Charles Chen <clchen@google.com> resolved conflicts for merge of 3e522c45 to master
49a60157d1c4b49450410fc30b8fcd8ab0e3480b 16-Jul-2009 Charles Chen <clchen@google.com> Adding public intents for TTS to enable checking for TTS data,
installing TTS data, and finding out when the TTS queue has
finished processing.
6a294263f78ce8177de48cb9480bbe39d9e442cd 16-Jul-2009 Jean-Baptiste Queru <jbq@google.com> Merge commit 'goog/readonly-korg-master' into merge_korg_master

* commit 'goog/readonly-korg-master':
Fixed Android issue #400, where the Intent documentation was inaccurate in a number of places, undoubtedly causing untold grief to innumerable masses.
Bug Fixed for libagl.
602bee5bf2a4f688b050077291288b473a7cc6db 13-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am cf29e116: Merge change 6867 into donut

Merge commit 'cf29e116129f38309c18ba14b9893b079a712289'

* commit 'cf29e116129f38309c18ba14b9893b079a712289':
CLOSE_SYSTEM_DIALOGS can't be protected.
4554f30c834723db6946400bf1827be4419a3134 11-Jul-2009 Dianne Hackborn <hackbod@google.com> CLOSE_SYSTEM_DIALOGS can't be protected.
54a26bc85f4fe972e929e42b986c65a710a229b3 11-Jul-2009 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 889c2d37 to master
8ecb36eec61f119f500a805b82438aadb3396a19 10-Jul-2009 Yusuf T. Mobile <yusuf.saib@T-Mobile.com> Fixed Android issue #400, where the Intent documentation was inaccurate in a number of places, undoubtedly causing untold grief to innumerable masses.
854060af30f928c0a65591e9c8314ae17056e6b8 10-Jul-2009 Dianne Hackborn <hackbod@google.com> Fix bug #1873249i: Apps can DoS/brick device

This is the problem where various things are listening for broadcasts
(such as battery status, PIN/PUK/Network) that an application can send
to cause harm to the system.

Solving this is tricky because many of these broadcasts are sticky,
and I have never figured out how to do permissions with sticky
broadcasts in a sane way. So instead, I am going to punt on the
general problem and just brute force it:

There is new a way for system components to declare specific
broadcast actions to be protected, which means that only the system
and the phone can send them. This is good enough for now. None
of it is exposed in the public API so we can make something a little
less stupid in the future if we ever need to.
5d16cd046298ec9e009cfdd2056c64c1a9ac5ba3 03-Jul-2009 Dianne Hackborn <hackbod@google.com> am d7cd29da: Add facility to run setup wizard after an update.

Merge commit 'd7cd29da91ccc0aba1f1097e19366f9ca36c7ce1'

* commit 'd7cd29da91ccc0aba1f1097e19366f9ca36c7ce1':
Add facility to run setup wizard after an update.
8ec5b83fc8f8aa68805c4d5987f8f75bb28250ca 02-Jul-2009 Dianne Hackborn <hackbod@google.com> Merge commit '1dac277f' into manualmerge

Required rewriting the okay battery broadcast stuff.

d7cd29da91ccc0aba1f1097e19366f9ca36c7ce1 01-Jul-2009 Dianne Hackborn <hackbod@google.com> Add facility to run setup wizard after an update.

The system now keeps a tag of the last version (just an arbitrary string)
that the setup wizard was run for. If this is different than the current
one in the setup wizard, then setup is launched at boot.

This introduces a new intent action for the part of the setup wizard that
gets run for an ungrade, which the system uses to find its current version
tag for comparing against what was last stored. It is up to the launched
setup activity update the stored setting to reflect its current value,
once it is happy.
1dac277f93a80c53a870b8924508dd2af81293de 27-Jun-2009 Dianne Hackborn <hackbod@google.com> Implement issue #1943927 (need notification in status bar when adb is active)

This is a little hacky -- we just assume that if adb is enabled and power
is connected through usb, then it is active.

The icons and text are temporary until final design is provided.
69866cea4dff6dfc6ccf36878593ce949faab9ea 25-Jun-2009 Charles Chen <clchen@google.com> resolved conflicts for merge of 5158cc55 to master
0477954a6788138f8224b634fa1955cef56d47bc 24-Jun-2009 Charles Chen <clchen@google.com> Adding TTS_QUEUE_PROCESSING_COMPLETED action to the list of Intents
c13713519dd92f0008415bef8499d85bd7e3edb4 19-Jun-2009 Dianne Hackborn <hackbod@google.com> am 3d74bb4a: Add "why?" button to low battery dialog.

Merge commit '3d74bb4ab27ae9601f5c9c3706fad287845fb672'

* commit '3d74bb4ab27ae9601f5c9c3706fad287845fb672':
Add "why?" button to low battery dialog.
3d74bb4ab27ae9601f5c9c3706fad287845fb672 19-Jun-2009 Dianne Hackborn <hackbod@google.com> Add "why?" button to low battery dialog.

This takes the user to the power usage activity.
1e3fc65b1f86bc97f4f375ae747658b555978ca7 19-Jun-2009 Wu-cheng Li <wuchengli@google.com> am 649f99e8: Add Intent.ACTION_SEND_MULTIPLE

Merge commit '649f99e8347984c1e031dae302830f4c9ebd3df4'

* commit '649f99e8347984c1e031dae302830f4c9ebd3df4':
649f99e8347984c1e031dae302830f4c9ebd3df4 17-Jun-2009 Wu-cheng Li <wuchengli@google.com> Add Intent.ACTION_SEND_MULTIPLE

Activities can use this intent to send multiple data.
abb01dba70fa52b3576fa9f6a175f3840b959fde 18-Jun-2009 Dianne Hackborn <hackbod@google.com> am c14b9ccd: Extend Intent/Uri conversion for use by Browser

Merge commit 'c14b9ccdf13163cae5ce5d21bcf377010b37594b'

* commit 'c14b9ccdf13163cae5ce5d21bcf377010b37594b':
Extend Intent/Uri conversion for use by Browser
c14b9ccdf13163cae5ce5d21bcf377010b37594b 18-Jun-2009 Dianne Hackborn <hackbod@google.com> Extend Intent/Uri conversion for use by Browser

This introduces a new Uri form of Intent with an "intent:" scheme, and a
corresponding update to the parser to handle these, so that the browser
can use this generic facility for starting activities based on the links
that are clicked and allow for web pages to link to arbitrary intents.

There is also a new "package" field on Intent which allows you to limit
the components it finds to a given package. This replaces the new method
that was added to PackageManger for doing this when resolving activities,
and implements it for all Intent queries against the package manager.
31708d464546b0ae7ca147e1d2708b904ab88f32 18-Jun-2009 Romain Guy <romainguy@android.com> resolved conflicts for merge of 3571ff40 to master
4969af7d9f58f8e08b7beca20a87f4da2131f72a 17-Jun-2009 Romain Guy <romainguy@android.com> Fixes #1107690. Updates javadoc for Intent.java, android:value -> android:name.

Also fixes the <type android:value /> tags, they are now <data android:mimeType />
a64b860749ad7e5f9e887013d87b56b928c5d405 14-May-2009 Android (Google) Code Review <android-gerrit@google.com> am aa642c0c: Merge changes 1591,1596 into donut

Merge commit 'aa642c0cc20293137376d44f8221876c121e5be9'

* commit 'aa642c0cc20293137376d44f8221876c121e5be9':
Get the backup calling through to the file backup helper.
Fix typos.
Add a new feature to android.os.Debug to add the ability to inject only specific fields when calling setFieldsOn().
Fixes #1836075. Adds consistency checks for the View hierarchy. To enable them, you need a debug build and ViewDebug.sConsistencyCheckEnabled set to true in debug.prop. This change also lets you easily enable drawing and layout profiling in ViewRoot by setting ViewRoot.sProfileDrawing, ViewRoot.sProfileLayout and ViewRoot.sShowFps in debug.prop with a debug build.
97ecc9cbe7eccafc0923d7655daf07f4c2ea9791 12-May-2009 Wei Huang <weih@google.com> define Intent.ACTION_REMOTE_INTENT, which replaces the old GTalk data messaging intent "android.intent.action.GTALK_DATA_MESSAGE_RECEIVED".

The remote intent concept shouldn't be limited to Google or GTalkService. It should be owned by the Android platform.
86b6c530f96360cd13f0011af99d927a6e1f80fe 13-May-2009 Jacek Surazski <jaceks@google.com> Add Intent.ACTION_APP_ERROR

This intent is sent to the installer when an app it installed
7a6287a077837d41d47c3fbe0f6258c78d5ccbd4 11-May-2009 Android (Google) Code Review <android-gerrit@google.com> am 3b30d80: Merge change 1377 into donut

Merge commit '3b30d80f5ef10a3c5c596283ef1f15e9ff6a3aa4'

* commit '3b30d80f5ef10a3c5c596283ef1f15e9ff6a3aa4':
Fix typo in javadoc
c53fc4ec9ec2e808f25738b1bad3a21a87e28651 11-May-2009 Marco Nelissen <marcone@google.com> Fix typo in javadoc
3531fdb1d9a0ca536bd7a7a27d35b3e62c318ad9 08-May-2009 The Android Open Source Project <initial-contribution@android.com> merge 55280a9

Merge commit '55280a9'
55280a91884b9256e8db6af6a09f28b3feeaa9d8 08-May-2009 Dianne Hackborn <hackbod@google.com> Improve shutdown process to send broadcast for applications.

This introduces a new class in the base platform for performing a clean
shutdown (which was copied from the classes in the policies). It
includes new features to send a shutdown broadcast for applications
to do cleanup, and ot have the activity manager pause the current
activity before proceeding with the shutdown. These facilities are
also use to write at the most recent stat files for sync, battery
and user activity.
137b0c9d6430ccb519c82a1198048cf413e06c5e 29-Apr-2009 Android (Google) Code Review <android-gerrit@google.com> am 0b8ffd1: Merge change 460 into donut

Merge commit '0b8ffd17bc6641fc522db3e842a868b6cdbf6d82'

* commit '0b8ffd17bc6641fc522db3e842a868b6cdbf6d82':
More optimization of dumpsys output.
1d442e0d990b581357f33f5463c7c5cb49b551e8 21-Apr-2009 Dianne Hackborn <hackbod@google.com> More optimization of dumpsys output.

There are three major classes of changes here:

- Avoid writing lines where their values are often empty, false, or some other typical thing.
- Use partial writes to the PrintWriter to avoid creating temporary strings.
- Use StringBuilder where we need to generate real String objects (and where possible cache the result).
5e8c31ac31107c0cbc4a103e4f62342b07b5876b 15-Apr-2009 The Android Open Source Project <initial-contribution@android.com> Merge commit 'korg/cupcake'
81ddb7929fdb824c213509399968b8ddeeea6c74 14-Apr-2009 Dianne Hackborn <> Merge branch 'readonly-p4-master'
b3cddae4994128983b6bf7e808a7670f90cc30e4 14-Apr-2009 Dianne Hackborn <> AI 146011: am: CL 145859 am: CL 145561 Fix issue #1710534 (documentation doesn't mention that activity resolver (and others) handle MIME types as case-sensitive).
Original author: hackbod
Merged from: //branches/cupcake/...
Original author: android-build

Automated import of CL 146011
75534fbe246e5562779500bc7cf7f0ddfe9b8330 14-Apr-2009 Dianne Hackborn <> Merge branch 'readonly-p4-master'
935ae463d495d41155e27feb849768ad2b8b16db 14-Apr-2009 Dianne Hackborn <> AI 145994: Integrate #145778 from Donut.

Automated import of CL 145994
1710799c47c02aba18aef7693e38a84cd170560e 13-Apr-2009 Dianne Hackborn <> Merge branch 'readonly-p4-donut' into donut
06f36b401d5020190c3c8662c8ff50a9b7776387 13-Apr-2009 Dianne Hackborn <> AI 145859: am: CL 145561 Fix issue #1710534 (documentation doesn't mention that activity resolver (and others) handle MIME types as case-sensitive).
Original author: hackbod
Merged from: //branches/cupcake/...

Automated import of CL 145859
5f05afeeb6dd88a4f16b0a279afa3b4d0b631213 11-Apr-2009 Andy Stadler <> Merge branch 'readonly-p4-donut' into donut
f8a7ceaef2e7d5cd530c9426bde91b6fa9a40b75 11-Apr-2009 Andy Stadler <> AI 145778: Manual merge changes 145382-145384 from cupcake.

Automated import of CL 145778
1c004f0ae1fb2f0c113d7d34f61e3cddabad3815 10-Apr-2009 Dianne Hackborn <> AI 145561: Fix issue #1710534 (documentation doesn't mention that activity resolver (and others) handle MIME types as case-sensitive).

Automated import of CL 145561
06ba55476ee9703c876d223cd41bd73c5f85f42d 10-Apr-2009 Christopher Tate <ctate@google.com> Integrate new power connnect/disconnect broadcasts

Two new broadcasts, Intent.ACTION_POWER_CONNECTED and
Intent.ACTION_POWER_CONNECTED, that are issued when the device is plugged
and unplugged from USB or AC power. This pulls two changes from the
open-source Gerrit repo into the internal Donut codeline:

1241 fda6fae Added broadcasts for external power events.
9491 37f8ca1 Fix system service crash when booting while on battery power

The current.xml API description has also been updated to include the
new Intent fields; the new API was approved in the original OSS change.
48276ab989a4d775961ce30a43635a317052672a 09-Apr-2009 Dianne Hackborn <> AI 145383: API review: clean up a bunch of @hides that have been pending API review.
Either expose them, or official hide them with an explanation for why.

Automated import of CL 145383
a2debb356d857b2ee1ca26f95ed0136398393acd 28-Mar-2009 Ed Heyl <> AI 143278: Merge 142826: Add tutorial to platform. The tutorial can be launched with the new Intent ACTION_SYSTEM_TUTORIAL and
is available through Settings->About->System Tutorial

Automated import of CL 143278
e1861133d51b9e6a6f658eb366630ad4f4d3ff8f 27-Mar-2009 The Android Open Source Project <initial-contribution@android.com> Merge commit 'korg/cupcake'

303736d17de11dbc0a633cbfc130e9dadd50f6e2 26-Mar-2009 Jim Miller <> Automated import from //branches/donutburger/...@142826,142826
7e4ad355903797983c96f57ddd11bbb73a563b30 26-Mar-2009 Jim Miller <> Automated import from //branches/cupcake/...@142825,142825
f63220f58e29673eba1c6228c04b43fb680af5f2 25-Mar-2009 Dianne Hackborn <> Automated import from //branches/donutburger/...@140828,140828
04750b6b431b8a43c62ae06ec3201fbd30caa178 25-Mar-2009 Dianne Hackborn <> Automated import from //branches/master/...@140830,140830
c2ad241504fcaa12d4579d3b0b4038d1ca8d08c9 20-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@141571
105925376f8d0f6b318c9938c7b83ef7fef094da 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
2a73de7b21a89aa2ba4c254d28658b49793425b2 18-Mar-2009 Jean-Baptiste Queru <jbq@google.com> Merge commit 'remotes/korg/cupcake' into merge

ba87e3e6c985e7175152993b5efcc7dd2f0e1c93 13-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@138607
c39a6e0c51e182338deb8b63d07933b585134929 11-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137873
b2a3dd88a53cc8c6d19f6dc8ec4f3d6c4abd9b54 09-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137197
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
da996f390e17e16f2dfa60e972e7ebc4f868f37e 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
94cbba0933e50d593c1c462cff698dd3387ba95b 22-Jan-2009 The Android Open Source Project <initial-contribution@android.com> Merge branch 'cupcake'
f1e484acb594a726fb57ad0ae4cfe902c7f35858 22-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127436
e1dc1d6dc8064740b78562c3028ccc526a44597e 19-Dec-2008 Jean-Baptiste Queru <jbq@google.com> Merge commit 'remotes/korg/cupcake'

f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
1ef4564d4ad14f2c5dcb162636875ca8aed5e4d9 24-Oct-2008 Jean-Baptiste Queru <jbq@google.com> Change values of ACTION_POWER constants to better match established practice.

Trim code to 100 lines to match style guide.
fda6fae156e31a287e3cfbf66e51ea1405cdf479 23-Oct-2008 Cliff Spradlin <cliff_spradlin@htc.com> Added broadcasts for external power events.
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution