History log of /frameworks/base/core/java/android/app/ContextImpl.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9708669b2fe8ae6aae4274d78d712c276b6fad40 08-Jan-2015 Jeff Sharkey <jsharkey@android.com> Guard against MountService throwing NPE.

Fall through to below logic and return null instead of crashing the
entire app. We already tell developers the value may be null.

Bug: 17781998
Change-Id: I05dce90ae6bc547d74f8c16d30b3dc7888a937fe
/frameworks/base/core/java/android/app/ContextImpl.java
d09c4cad65c708f2c4810d24295456708a2000d2 22-Nov-2014 Wink Saville <wink@google.com> Additional changes to SubscriptionManager API as per API council.

bug: 17575308
Change-Id: Idd98aa46c15a9219ccf28091c62602ac8bf16c62
/frameworks/base/core/java/android/app/ContextImpl.java
816e19eb6d5795f98f072494c763b20fe3412c30 20-Nov-2014 Wink Saville <wink@google.com> Merge "Revert "Additional changes to SubscriptionManager API as per API council."" into lmp-mr1-dev
2d1ee982276f5dbd0e035778b731b48e4ef34515 20-Nov-2014 Wink Saville <wink@google.com> Revert "Additional changes to SubscriptionManager API as per API council."

This reverts commit baf21da1e17ef358632c078128d381b3be218a08.

Change-Id: I73cbdfadf07ca3cf20b042781b62aafcc72b17d6
/frameworks/base/core/java/android/app/ContextImpl.java
4a57e908177c86819ade1ebb813677698f1a526a 20-Nov-2014 Wink Saville <wink@google.com> Merge "Additional changes to SubscriptionManager API as per API council." into lmp-mr1-dev
baf21da1e17ef358632c078128d381b3be218a08 20-Nov-2014 Wink Saville <wink@google.com> Additional changes to SubscriptionManager API as per API council.

bug: 17575308
Change-Id: I7773965094510999bfce8fc6b2b31ba6ce496653
/frameworks/base/core/java/android/app/ContextImpl.java
ff17024e583b170312d82089fd358d278ce16c9a 19-Nov-2014 Dianne Hackborn <hackbod@google.com> Fix issue with call backs from media process.

All but a few lines of this is for issue #16013164, which allowed
apps to do some operations as the media uid by having it call
back to them to open a file. The problem here is with the tempory
identity stuff in the activity manager, allowing us to make the open
call as the original caller... ideally we should figure out a way
to just get rid of all of that, but the solution here is actually
easier (even though it doesn't look it) -- we now hand a token over
to the openFile() call that it can use when doing permission checks
to say "yes I would like the check to be against whoever is responsible
for the open". This allows us to do the uid remapping for only this
one specific set of permission checks, and nothing else.

Also fix issue #17487348: Isolated services can access system services
they shouldn't be able to. Don't send any system service IBinder objects
down for the first initialization of an isolated process.

Change-Id: I3c70e16e0899d7eef0bae458e83958b41ed2b75e
/frameworks/base/core/java/android/app/ContextImpl.java
955d8d69ea6caabce1461dc25b339b9bf9dc61a6 08-Oct-2014 Dianne Hackborn <hackbod@google.com> Put in real "code" (aka marketing) name.

Change-Id: Idb3976edfae37293ed75cb5b869b4b42d8042bbe
/frameworks/base/core/java/android/app/ContextImpl.java
ef9f6f957d897ea0ed82114185b8fa3fefd4917b 13-Sep-2014 Tyler Gunn <tgunn@google.com> Renaming Telecomm to Telecom.

- Changing package from android.telecomm to android.telecom
- Changing package from com.android.telecomm to
com.android.server.telecomm.
- Renaming TelecommManager to TelecomManager.

Bug: 17364651
Change-Id: I192cb5d189f55db012ea72ee82ccc5aedbc21638
/frameworks/base/core/java/android/app/ContextImpl.java
2bcb97bfb5908f1e843a8d02b5bf6df4d32b1c9f 10-Sep-2014 Xin Guan <a18772@motorola.com> Using the correct package name for ContentResolver

Change-Id: I0518391f7262c78043fbd42ddfefef0f2451382c
/frameworks/base/core/java/android/app/ContextImpl.java
c2a4060005cc55e8261103becbd49607b09ced45 08-Sep-2014 Kenny Guy <kennyguy@google.com> Revert "Ensure ApplicationInfo is for correct user for system/android package."
Cache in ActivityThread means this still doesn't make sure we will
get an ApplicationInfo for the user being requested. So reverting.

This reverts commit 4a3b8aa08d743b28d53b327597abf03a925641f2.

Bug:17002733
Change-Id: Ie40eb31c4074cea09de3d6a41fe38b14e00eb059
/frameworks/base/core/java/android/app/ContextImpl.java
6df8d523b289c6ff94eacffb874fc926be82a862 05-Sep-2014 Kenny Guy <kennyguy@google.com> Ensure ApplicationInfo is for correct user for system/android package.

createPackageContextAsUser shortcuts creating the context for
system and android packages, however it should still make sure
the ApplicationInfo for the package is for the correct user.

Bug: 17002733

Change-Id: Ie10008449f13a4464a9797937c4413d6aa119fbe
/frameworks/base/core/java/android/app/ContextImpl.java
1b012d302b56b4adf950035136d1d191a1936d5a 20-Aug-2014 Jeff Hao <jeffhao@google.com> Add sample profiling option to am.

Also bundles all profiling options into a class.

Bug: 17040932
Change-Id: I85d675ee1494bdc7308caffdf94145d27c996e9d
/frameworks/base/core/java/android/app/ContextImpl.java
7aea15a08eaf22f0e42adf9d93d45705660a787d 26-Aug-2014 vandwalle <vandwalle@google.com> Merge "remove passpoint - DO NOT MERGE" into lmp-dev
808079bd27fc1fa7fb834567d70546b6c68684d2 25-Aug-2014 vandwalle <vandwalle@google.com> remove passpoint - DO NOT MERGE

This CL is dependent on I3d2a230b0362520b9f1b2bc3792260116971e106

Change-Id: I1a0d655877d9368d833d62e231797af4b2560862
/frameworks/base/core/java/android/app/ContextImpl.java
0eb1e402c7e612887e38dc5516f11506b11fd835 22-Aug-2014 Nancy Chen <nancychen@google.com> API review PhoneManager -> TelecommManager. Rename methods (6/6)

PhoneManager
- handlePinMMI docs should explain what a Pin is and what MMI is
- rename isInAPhoneCall to isInCall
- rename showCallScreen to showInCallScreen
- merge this class into TelecommManager, we don't need both

Bug: 16960458

Change-Id: I7d573e27ed093f2ddb7849703cc62f9916835393
/frameworks/base/core/java/android/app/ContextImpl.java
29564cd24589867f653cd22cabbaac6493cfc530 07-Aug-2014 Narayan Kamath <narayan@google.com> Remove system_server classes from the boot image.

We set the system_server classpath in the environment
(like we do with BOOTCLASSPATH). After the zygote forks
the system_server, we dexopt the classpath (if needed)
and then launch the system server with the correct
PathClassLoader. This needed several small / medium
refactorings :

- The logic for connecting to installd is now in a separate
class and belongs in the system_server.
- SystemService / SystemServiceManager have now moved to
classes.jar. They are only used from there, and since they
use Class.forName, we want them to be loaded by the
system_server classloader, and not the bootclassloader.
- BootReceiver now moves to frameworks.jar, because it is
used by ActivityThread and friends.

bug: 16555230

Change-Id: Ic84f0b2baf611eeedff6d123cb7191bb0259e600
/frameworks/base/core/java/android/app/ContextImpl.java
976e8bd2017d0263216c62111454438cc0f130e3 17-Jul-2014 Svetoslav <svetoslavganov@google.com> Allow adding widgets from user profiles.

The goal of this change is to enable support for appwidget from
user profiles to the user main profile. A user profile is a user
which is associated as a child of the main user profile. For example,
a user may have a personal (parent) and corporate (child) profile.
The device policy should be able to control whether adding a widget
from a child profile and given packages is allowed. This change
assumes that all packages from managed profiles are white listed.
Another change will add the device policy changes.

Change-Id: I267260b55d74c48b112a29979a9f59eef7a8194e
/frameworks/base/core/java/android/app/ContextImpl.java
783645e99f909ffc7a2d5d2fca9324cc0e9b7362 28-Jul-2014 Jae Seo <jaeseo@google.com> TIF: Merge TvParentalControlManager into TvInputManager

This change addresses the following API council feedback.

TvParentalControlManager:
-- Replace the listener interface with a broadcast Intent with well-known
action, something like ACTION_BLOCKED_RATINGS_CHANGED.
-- TvParentalControlManager goes away, and two remaining methods move to
TvInputManager.

== Implementation changes ==
-- The user-selected rating preferences should be stored in an XML file, and
loaded at boot by your internal system service. It should _not_ be stored in
a Secure/Global setting.

Bug: 16542165
Change-Id: I278df963576652ec9163a66c1ef99419fcdb36c2
/frameworks/base/core/java/android/app/ContextImpl.java
03666c705ddabe0e7c5869ab69c2ca8b964164e9 20-Jul-2014 Sreeram Ramachandran <sreeram@google.com> Cleanup: Delete dead code.

Bug: 15413389
Change-Id: I315468832ef18ffc84174e54774ab63b86d284dc
/frameworks/base/core/java/android/app/ContextImpl.java
1e586e08bfcac5c5edafd9ec31e76930449bbee7 21-Jul-2014 Andres Morales <anmorales@google.com> Don't register PDBService if not available on device

Bug: 16455896
Change-Id: If576ce8e837ba498f10848795706efb29e76974a
/frameworks/base/core/java/android/app/ContextImpl.java
0debc9aff4c0cbc28e083a948081d91b0f171319 17-Jul-2014 Adam Lesinski <adamlesinski@google.com> First iteration of a public UsageStats API

UsageStats API that allows apps to get a list of packages that have been
recently used, along with basic stats like how long they have been in
the foreground and the most recent time they were running.

Bug: 15165667

Change-Id: I2a2d1ff69bd0b5703ac3d9de1780df42ad90d439
/frameworks/base/core/java/android/app/ContextImpl.java
54a463498316594ba7e0567db5d4f541a7a1e827 18-Jul-2014 Jae Seo <jaeseo@google.com> Merge "TIF: Add TvParentalControlManager" into lmp-dev
6057102dbb746593a7d59cf377c969b62e38c664 15-Jul-2014 Jae Seo <jaeseo@google.com> TIF: Add TvParentalControlManager

Each TV input service is now required to query the system whether the
user is allowed to watch the current program before showing it to the
user if the parental control is turned on, which can be checked by
calling TvParentalControlManager.isEnabled(). Whether the TV input
service should block the content or not is determined by invoking
TvParentalControlManager.isRatingBlocked() with the content rating for
the current program. Then the TvParentalControlManager makes a judgment
based on the user blocked ratings stored in the secure settings and
returns the result. If the rating in question turns out to be blocked,
the TV input service must immediately block the content and call this
method with the content rating of the current program to prompt the PIN
verification screen.

Each TV input service also needs to continuously listen to any changes
made to the parental control settings by registering a
TvParentalControlManager.ParentalControlCallback() to the manager and
immediately reevaluate the current program with the new parental control
settings.

Bug: 13172379
Change-Id: I8e1900d4b8d28c56798986d5c3906bd418ab97ac
/frameworks/base/core/java/android/app/ContextImpl.java
c39d47a8e7c74bd539104b0efab898ef6fc43ddf 09-Jul-2014 Michael Wright <michaelwr@google.com> Add MediaProjection APIs.

The new MediaProjection infrastructure allows the system to hand out
tokens granting the ability to capture the screen's contents, audio,
etc. at a granular level. It's intended to be used both for screen
casting, via the cast APIs, as well as screen sharing via third party
applications.

The screen sharing case is implemented, but all of audio capturing
is still forthcoming.

Change-Id: I4b24669bed7083e11413c10ed8d6b025f5375316
/frameworks/base/core/java/android/app/ContextImpl.java
fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7 17-Jul-2014 Dianne Hackborn <hackbod@google.com> Implement issue #16330060: Inform ActivityManager about WebView...

...state changes.

Add a new API to tell the activity manager about a new dependency
one process has on another package. Start using it already for
when apps is Context.createPackageContext() to load code from another
app.

Also do some work on getting the monitoring of proc/uid states
in shape so it can be used by unundled code, along with an
AppImportanceMonitor class for doing so.

Some small fixes and additions to VoiceInteractionService.

Improve handling of unaccounted/overcounted battery use so that
they aren't shown to the user unless they are significant.

Change-Id: I22dd79a73f4e70103d3f8964494aebc8a31f971c
/frameworks/base/core/java/android/app/ContextImpl.java
7686c061b7c5c981c79e566e3b31f68b9e21c730 01-Jul-2014 Vinit Deshpande <vinitd@google.com> Introduce RTT Manager

Change-Id: Ic9a16d587897b272f85cdb2b8c52b51bca060d18
/frameworks/base/core/java/android/app/ContextImpl.java
4ed745d359ada6986ac15d8718452e5c55f40170 16-Jul-2014 Jeff Sharkey <jsharkey@android.com> Add code cache directory for apps.

This provides a directory where apps can cache compiled or optimized
code generated at runtime. The platform will delete all files in
this location on both app and platform upgrade.

Bug: 16187224
Change-Id: I641b21d841c436247f35ff235317e3a4ba520441
/frameworks/base/core/java/android/app/ContextImpl.java
a5a2cf419d72b28d0ce3948199d6f6874d6dbf9b 15-Jul-2014 Santos Cordon <santoscordon@google.com> Merge "Implement multi-SIM capabilities (1/6) [DO NOT MERGE]" into lmp-dev
a7835b6b6b00923b608a6bc3194e7840f67de7a8 12-Jul-2014 Christopher Tate <ctate@google.com> Add Context.getNoBackupFilesDir()

This is an app-private filesystem space exactly like the one
reported by Context.getFilesDir(), with one exception: files
placed here are never backed up by the full-backup infrastructure.
If an app attempts to back up any of its contents via the normal
API it's immediately ignored with a logged warning.

The restriction is also enforced on the restore side, because
apps using support libraries might wind up creating full backup
archives containing no_backup subdirs on pre-L devices (via
adb backup, Helium, &c.). We check for this before passing the
restore data to the app, and drop it if we detect the situation
so that the app never sees the bits.

Bug 16240573

Change-Id: I11216a391f1d32117ec7ce15aafc9cd93d0337de
/frameworks/base/core/java/android/app/ContextImpl.java
807fe0a19a710ae4e053e80f610807ff5718f1a1 09-Jul-2014 Ihab Awad <ihab@google.com> Implement multi-SIM capabilities (1/6) [DO NOT MERGE]

- Split PhoneAccount into PhoneAccount & PhoneAccountMetadata
- Move PhoneAccount methods from TelephonyManager to TelecommManager

Bug:16292368
Change-Id: Ib440368d6bd0572b63c942360450fde5c27d84b9
(cherry picked from commit 936b3552b4a3569be9904c826b95b632886fb45d)
/frameworks/base/core/java/android/app/ContextImpl.java
f3e83e45034d99521d748e21ba2a8d3de60e968a 10-Jul-2014 Santos Cordon <santoscordon@google.com> Dynamically obtain telecomm service from PhoneManager.java

Bug: 16206418
Change-Id: Ie8845f4baf8956d03fcaf26cb899f5fb056df6cc
/frameworks/base/core/java/android/app/ContextImpl.java
68d4acd205e8c2da524e62734ca42847306cc029 02-Jul-2014 Andres Morales <anmorales@google.com> Service for reading and writing blocks to PST partition

Permits apps with permission
android.permission.ACCESS_PERSISTENT_PARTITION to obtain
a read and write data blocks to the PST partition.

Only one block ever exists at one time in PST. When
a client writes another block, the previous one is
overwritten.

This permits storing a block of data that will live
across factory resets.

Change-Id: I8f23df3531f3c0512118eb4b7530eff8a8e81c83
/frameworks/base/core/java/android/app/ContextImpl.java
f90186d93effe424128bc0e39699ab05f80d025b 01-Jul-2014 Santos Cordon <santoscordon@google.com> Add PhoneManager to expose functionality to phone/dialer apps.

Eventually, this will house the TelecommManager methods.

Change-Id: Id8b08d88a06a7b4e90a4a7f702ba56526e108ca5
/frameworks/base/core/java/android/app/ContextImpl.java
05d38d28b622036a7a1f6dd7e751af023a37e876 18-Jun-2014 Jim Miller <jaggies@google.com> Merge "Hide IFingerprintService and IFingerprintServiceReceiver"
06e658f324a937bec1c5ddbe9c3100c3d2fec371 18-Jun-2014 Jim Miller <jaggies@google.com> Hide IFingerprintService and IFingerprintServiceReceiver

The @hide was being ignored because they were being used by the
constructor. Fixed by making the FingerprintManager constructor
hidden.

Change-Id: I3cd409df5055579f5004b08d00d5d951b8e5afd3
/frameworks/base/core/java/android/app/ContextImpl.java
2c43c339de5aaf4fef58aa9b5ac3af48609263a8 13-Jun-2014 Jeff Brown <jeffbrown@google.com> Resolve boot time dependencies related to the power manager.

This change fixes a bug where native daemons may try to communicate
with the power manager before it was fully initialized due to a race
between publishing the binder service and completing init().

The solution was to simplify the dependencies related to the power
manager. It turns out that most services that were passed in
init are not actually needed until systemReady. What remained
was a dependency on the activity manager to check permissions for
incoming calls. So now we start activity manager first.
However, the activity manager also depends on power manager for
wakelocks. To break the cycle, we now defer initializing the activity
manager's wakelocks until after the power manager has been started.

Cleaned up a bunch of boot-time service dependencies so that we
can have better confidence that they are correctly maintained.

Bug: 13884219
Change-Id: If08e2d7ccd44e7026a72441bb6bd5afd7bb9fffe
/frameworks/base/core/java/android/app/ContextImpl.java
a7596147b43940cad3f76c53ed154ef088b9269b 07-Jun-2014 Jim Miller <jaggies@google.com> First pass at FingerprintService integration with HAL.
Move FingerprintService to framework services directory
Fix merge conflicts.

Tested: scanning, enrolling, removing.

Change-Id: I58b2b902cb671dc82cdaa54a195ba5f1a154622c
/frameworks/base/core/java/android/app/ContextImpl.java
8a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3 16-Jun-2014 Jeff Sharkey <jsharkey@android.com> Plumb split APKs into public API.

Introduces new ApplicationInfo fields to surface zero or more split
APKs for an application. Splice these APKs into both the class
loader and resource system. Cleaner building of these paths.

Run dexopt() on all split APKs found after a parse, and populate
into ApplicationInfo.

Change-Id: I4a376bf4492d84ea95aafa866e106ea43a43e492
/frameworks/base/core/java/android/app/ContextImpl.java
b4ce1432c62a691111f1c355d744998a48b55a93 09-Jun-2014 Yorke Lee <yorkelee@google.com> Add TelecommManager to system services

Change-Id: I48a75c578a99aca1149fbae84a5d0f9ac0a457f3
/frameworks/base/core/java/android/app/ContextImpl.java
0188bee2c526270c178a0b1f918b2a09999de25f 11-Jun-2014 Christopher Tate <ctate@google.com> am d8f71d34: Merge "Out with the old; in with the new" into lmp-preview-dev

* commit 'd8f71d34c3c7fb161a1586de8edb52161c32d672':
Out with the old; in with the new
7060b04f6d92351b67222e636ab378a0273bf3e7 10-Jun-2014 Christopher Tate <ctate@google.com> Out with the old; in with the new

Switch to the official "JobScheduler" etc naming.

Bug 14997851

Change-Id: I73a61aaa9af0740c114d08188bd97c52f3ac86b7
/frameworks/base/core/java/android/app/ContextImpl.java
5adb67d4ce228a3afa6512e87d61c4d581dfd1e3 09-Jun-2014 Ed Heyl <edheyl@google.com> merge 4ce22057, regen api/current.txt

Change-Id: I39186b5c4d41753c729c5d1ee7ee96b03a45c514
3f48068d782b81dc1c8a0190b91fbb2862007244 06-Jun-2014 Jinsuk Kim <jinsukkim@google.com> Remove HdmiCecService

The service is replaced with HdmiControlService. Removing all the related
classes and the initialization of the service.

Change-Id: Ic7baaddffb9873613ddd1096e874f226da983939
/frameworks/base/core/java/android/app/ContextImpl.java
4c9e57f156d3cbd86b38e9897dfdab81964efe90 03-Jun-2014 Jae Seo <jaeseo@google.com> resolved conflicts for merge of ebe661c4 to master

Change-Id: Ic25dc762ee43654b439de3ec237ead007bee3df4
d5cc4a281e7ce29d1e8687ff3394b57a3a549260 31-May-2014 Jae Seo <jaeseo@google.com> Put TV Input Framework under android.media.tv, including TvContract

Bug: 15345342
Change-Id: I665ca23f0f074ce29cb2e047109b209178532107
/frameworks/base/core/java/android/app/ContextImpl.java
af9d45e88b173a30cd20db854731e0e5eb207afa 29-May-2014 Jinsuk Kim <jinsukkim@google.com> DO NOT MERGE: Register HdmiControlService

Register the new service that will replace HdmiCecService.
The old one will be removed once the client of the old service
finishes migration to the new service.

Change-Id: I3906292fcf0a7c8286bc89af21a03bd11d3a0e72
/frameworks/base/core/java/android/app/ContextImpl.java
f20d640fa2b155a971ddfe0965fc803a73b5e53c 25-May-2014 Amith Yamasani <yamasani@google.com> Restrictions Manager

Mechanism to register a provider for requesting an
administrator to respond to permission requests.

Request format and response format constants.

Description of manifest template for static restrictions.
Int type introduced in RestrictionEntry.

Needs more javadoc and better description of manifest templates,
including specifying the XML attributes.

Change-Id: I5a654d364e98379fc60f73db2e06bf9a8310263d
/frameworks/base/core/java/android/app/ContextImpl.java
43e15653706d667a722a3b813ea89917d00ed42a 31-May-2014 Jeff Sharkey <jsharkey@android.com> am 9a78d4de: Merge "Per-app media directories on external storage." into lmp-preview-dev

* commit '9a78d4deb2d00dc67b2c11daf76b389e0712b535':
Per-app media directories on external storage.
2ee3c1e189819cc6efb4d7de24f1438bdb824087 31-May-2014 Jeff Sharkey <jsharkey@android.com> Per-app media directories on external storage.

This change defines per-app directories on external storage that
will be scanned and included in MediaStore. This gives apps a way
to write content to secondary shared storage in a way that can
easily be surfaced to other apps.

Bug: 14382377
Change-Id: I4cb367c870509e76f0c2c598f01e2f699780030a
/frameworks/base/core/java/android/app/ContextImpl.java
dfed4bc99f9f3d48ee7bf9e8ea051a8d5bc4f299 30-May-2014 Narayan Kamath <narayan@google.com> am f7871c31: am b9b31f4b: am bd4d3203: Merge "Support an ABI flag for instrumentation."

* commit 'f7871c31469c6245c1b232a15104704f7481103c':
Support an ABI flag for instrumentation.
f7871c31469c6245c1b232a15104704f7481103c 30-May-2014 Narayan Kamath <narayan@google.com> am b9b31f4b: am bd4d3203: Merge "Support an ABI flag for instrumentation."

* commit 'b9b31f4b8eda123e7b544d1a0fa886576064adca':
Support an ABI flag for instrumentation.
b9b31f4b8eda123e7b544d1a0fa886576064adca 30-May-2014 Narayan Kamath <narayan@google.com> am bd4d3203: Merge "Support an ABI flag for instrumentation."

* commit 'bd4d320344833ce67dad3a4e10a61d0502a81d0e':
Support an ABI flag for instrumentation.
7f01f8e76ffec6f6006759ebf6ac5bd689004e9b 29-May-2014 Jinsuk Kim <jinsukkim@google.com> Register HdmiControlService

Register the new service that will replace HdmiCecService.
The old one will be removed once the client of the old service
finishes migration to the new service.

Change-Id: I3906292fcf0a7c8286bc89af21a03bd11d3a0e72
/frameworks/base/core/java/android/app/ContextImpl.java
fa380e982e41b0dcbbcf2201803abf26808016b5 19-May-2014 Christopher Tate <ctate@google.com> DO NOT MERGE - Run the task manager service at startup

Also moves most of it into android.app.task rather than android.content.

(Cherrypick from master)

Change-Id: Ic07a664bf54bc3e40aa0b892946edba4bf37262a
/frameworks/base/core/java/android/app/ContextImpl.java
8f64f80888ab6cc2a4e3f8a65d8b54650e07fc5c 19-May-2014 Christopher Tate <ctate@google.com> Run the task manager service at startup

Also moves most of it into android.app.task rather than android.content.

Bug 14993295
Bug 14997851

Change-Id: I9b5738d026ea2526cdfbc96d0239c74687c51611
/frameworks/base/core/java/android/app/ContextImpl.java
521d8cdae0be5c7d33715e0fa7b5b85367c5de09 22-May-2014 Lorenzo Colitti <lorenzo@google.com> Merge "Make the EthernetManager available."
f9ff2c9ae5595a20d77b10a41386932de1fc2da2 22-May-2014 Lorenzo Colitti <lorenzo@google.com> Make the EthernetManager available.

Change-Id: I7a60e977d7a40a5d0367168f2f6633ccae591ac4
/frameworks/base/core/java/android/app/ContextImpl.java
7fee7232ee2ae45fb3cd4fcce314e8f1101ae8db 15-May-2014 Roger Chang <roger.chang@mediatek.com> Hotspot 2.0 framework - add implementation

Bug: 5485670
Change-Id: I4d0f728f4c20676232f2d61bbf49691f6e21a100
/frameworks/base/core/java/android/app/ContextImpl.java
0261b9b1cc580f9ca238c33a9b87803f260fe73a 21-May-2014 Amith Yamasani <yamasani@google.com> Pass along the appOp param to broadcastIntent

Forgot to pass that along in the original CL

Change-Id: I3aaa7de9cf5c73ab5cbff367e5889429e9ac2301
/frameworks/base/core/java/android/app/ContextImpl.java
b19c19265448a6252b1c14f3da85d52e50be34c3 19-May-2014 RoboErik <epastern@google.com> Merge "Rename session classes to have media prefix, hide routes"
a4864472313208e4f1de02f45d3eadad237c54af 10-Apr-2014 Yuhao Zheng <yuhaozheng@google.com> Hotspot 2.0 framework APIs -- initial implementation

Cherry-picked from klp-wireless-dev-mirror
SHA1: e73969fac45aaca72528226dc8c0c5e54fb2cdd4

Bug: 5485670
Change-Id: If3250a2fae181a3774d3158e341220006ad6ebe5
/frameworks/base/core/java/android/app/ContextImpl.java
42ea7eecd149161ed192d3029f0d77d1d08a4aa5 17-May-2014 RoboErik <epastern@google.com> Rename session classes to have media prefix, hide routes

This renames several of the core session classes to be prefixed
with Media. It also adds @hide to all route references for now.

Change-Id: Idb42897d490cf24626e4e93ca975b2cb93ec054c
/frameworks/base/core/java/android/app/ContextImpl.java
3cf75729d5a27b8ddd1ea174626dbcf0349a1d07 16-May-2014 Amith Yamasani <yamasani@google.com> Variant of sendBroadcast with appOp flag for cross-user.

Needed for delivering SMS notifications to multiple users.

Change-Id: Ib772292699aba37144621742e6f0ee5c68aadd78
/frameworks/base/core/java/android/app/ContextImpl.java
8dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21 15-May-2014 Narayan Kamath <narayan@google.com> Support an ABI flag for instrumentation.

Allows us to choose what ABI a process uses when
launching it with "adb shell am instrument", for eg.

adb shell am instrument --abi arm64-v8a component/runner

Note that we only perform very basic validation of the
ABI. In general, there is no guarantee that the app will
launch with the instruction set we choose, for eg. if it
has native libraries that are for a different ABI.

bug: 14453227

Change-Id: Ifb7e89b53675080dc87941091ee5ac360f218d7f
/frameworks/base/core/java/android/app/ContextImpl.java
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
/frameworks/base/core/java/android/app/ContextImpl.java
e22b3b143240f0f18e3d6d3c06686ad3c23b131b 08-May-2014 Dianne Hackborn <hackbod@google.com> Usage stats!

Start reworking the usage stats service to be able
to have an API we can publish.

The basic information it keeps is still the same, though
that will be changing in the future. The one big addition
here is that we are also now collecting configuration usage
stats.

Also introduce the start of an access model for usage stats,
using app ops. There is an new app op that gives an application
access to usage stats even if it normally wouldn't have it,
disabled by default.

Change-Id: I6ead28e18a7f08eafd057d6ff37dd9cb216358f4
/frameworks/base/core/java/android/app/ContextImpl.java
011e1b35a64180d6f0234af8a3c2b70777eb9f39 08-May-2014 Vinit Deshapnde <vinitd@google.com> Initial implementation of WifiScanner

This change implements basic functionality of WifiScanner. Following
functionality is enabled

1. Scanning - specify a list of channels to scan
2. Significant change detection
3. AP hotlist

Change-Id: Ieef75b96bdbbd3c7d9b9e698bd16e64d3b465254
/frameworks/base/core/java/android/app/ContextImpl.java
08fa40c5cb5229b7969b2a5146855a337870f45a 30-Apr-2014 Jim Miller <jaggies@google.com> First pass at adding FingerprintManagerService

This adds a new service for monitoring and enrolling fingerprints
to the platform.

Fixed documentation links.

Change-Id: I66013be5e09be9c5f9746c46aacf32d3e26c3b73
/frameworks/base/core/java/android/app/ContextImpl.java
5effd7e89f83824ac8982a6cbcebbf5cc331e436 05-May-2014 Alan Viverette <alanv@google.com> Partial revert "Load device default theme mapping from resources"

This reverts commit e4ab72d54cf41d16819b72e94d9b0d0d51289647.

Change-Id: Id17170312c75993fc1f7859d52c7e050b2aeaf80
/frameworks/base/core/java/android/app/ContextImpl.java
0810b63739c9981f993063749f804b54faed0ba5 01-May-2014 Alan Viverette <alanv@google.com> Load device default theme mapping from resources

Also adds a few missing styles and reorganizes some XML files. Makes
stackViewStyle public since it's defined in DeviceDefault.

Change-Id: I8f6a0f93410948b38619594474d60dc40ece5917
/frameworks/base/core/java/android/app/ContextImpl.java
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
/frameworks/base/core/java/android/app/ContextImpl.java
07c7077c54717dbbf2c401ea32d00fa6df6d77c6 20-Mar-2014 RoboErik <epastern@google.com> Add RouteProviders to the new Media APIs

Compiles and works with OneMedia. This currently is a rough test of
the system for finding, connecting to, and sending messages to routes.
This will just connect to the first route it finds when a request to
open the route picker is made (and disconnect when another request is
made).

Change-Id: I5de5521a079471b9e02664be4654c0591dfd9a6d
/frameworks/base/core/java/android/app/ContextImpl.java
b51e0a6c4b249e0d6f404fafef007645221be0d3 09-Apr-2014 Jeff Davidson <jpd@google.com> Stub APIs for network scoring.

NetworkScoreManager defines all interactions between the framework and
the scorer app. An ACTION_SCORE_NETWORKS broadcast is sent to the
default scorer with any unscored networks, which responds by calling
updateScores() with scores for those networks. An app may also check
whether they are currently the default scorer with
getDefaultScorerPackage() and request to become the default via the
ACTION_CHANGE_DEFAULT broadcast.

Bug: 13786258
Change-Id: Id3dc0f7c1109f0e3afd73356e2475b7f34167419
/frameworks/base/core/java/android/app/ContextImpl.java
e35872da97ac6bd07d2d9ac5af8a7c18ad290718 10-Dec-2013 Todd Poynor <toddpoynor@google.com> BatteryManager: Add API and service for battery property retrieval

Add service "batterymanager" and method getProperty to retrieve
battery properties. This is a public API.

Make BatteryProperty public. Cleanups for public-facing API.

Change-Id: I3637d131aabe4811dff40661728d5353eaf854c4
/frameworks/base/core/java/android/app/ContextImpl.java
5784b39843bd3d6112352ff3b736a6498107911c 09-Apr-2014 Amith Yamasani <yamasani@google.com> Merge "Launcher APIs and broadcasts for managed profiles"
3957091ba8f08c02b5e781098cb955a5f697a1ff 21-Feb-2014 Jae Seo <jaeseo@google.com> Initial round of Television Input Framework

This provides APIs to control and create individual television inputs on
the system which will later be hosted by television applications.

Change-Id: I6866d28e78175a1bff2c32a85c5d77e94d0cd60c
/frameworks/base/core/java/android/app/ContextImpl.java
4f58263d02f296430a9653126d28501e95c7bb6c 19-Feb-2014 Amith Yamasani <yamasani@google.com> Launcher APIs and broadcasts for managed profiles

UserManager
- Corp badging
- Querying list of managed profiles

Launcher API
- LauncherApps and Service to proxy changes in managed profile
to the launcher in the primary profile
- Querying and launching launchable apps across profiles

Change-Id: Id8f7b4201afdfb5f414d04156d7b81300119289e
/frameworks/base/core/java/android/app/ContextImpl.java
6259933ec99dee566f200c5fdfe1756ee72b1513 01-Apr-2014 Alan Viverette <alanv@google.com> Switch framework Holo references to Quantum.Light

Change-Id: Ib545a143f1959b6104adbc9d594dd626851d90b3
/frameworks/base/core/java/android/app/ContextImpl.java
82142c21dd333307682d5f4bb09de3ab3ccfa06c 27-Mar-2014 Adrian Roos <roosa@google.com> Define trust agent framework components

Adds the TrustManager system service that allows
registering for changes to the trust status and
reporting events that are important to trust agents.

Bug: 13723878
Change-Id: I7d0d2ea86fd755702d31aa5d49cac038a6cd4301
/frameworks/base/core/java/android/app/ContextImpl.java
10bf6354a536152719bf4524429aa5739836c541 25-Mar-2014 Yuhao Zheng <yuhaozheng@google.com> Wifi hotspot stack initial hook up

Add a dummy wifi hotspot service for futher development use. This is to
resolve the different between master branch and kwd branch, such that future
development can go into kwd and being auto-merged to master.

bug: 5485670
Change-Id: Ica58de445dd050a9f0b817f8e4accaa2478299c5
/frameworks/base/core/java/android/app/ContextImpl.java
de898ff42912bd7ca1bfb099cd439562496765a4 30-Jan-2014 Adam Lesinski <adamlesinski@google.com> Shared library resource support

Shared libraries can now export resources for applications
to use.

Exporting resources works the same way the framework exports
resources, by defining the public symbols in res/values/public.xml.

Building a shared library requires aapt to be invoked with the
--shared-lib option. Shared libraries will be assigned a package
ID of 0x00 at build-time. At runtime, all loaded shared libraries
will be assigned a new package ID.

Currently, shared libraries should not import other shared libraries,
as those dependencies will not be loaded at runtime.

At runtime, reflection is used to update the package ID of resource
symbols in the shared library's R class file. The package name of
the R class file is assumed to be the same as the shared library's
package name declared in its manifest. This will be customizable in
a future commit.

See /tests/SharedLibrary/ for examples of a shared library and its
client.

Bug:12724178
Change-Id: I60c0cb8ab87849f8f8a1a13431562fe8603020a7
/frameworks/base/core/java/android/app/ContextImpl.java
1c855178e497f7ba788dadb87167f1e6735d10cb 24-Mar-2014 Jinsuk Kim <jinsukkim@google.com> am 775a097f: am 3c34e5db: am c01e1aeb: Merge "Add HdmiCecManager" into klp-modular-dev

* commit '775a097f01a349548d2124ae9d7dd562c72eaa27':
Add HdmiCecManager
3c34e5dbbb99d3d66f71eea5db6e001cc5495263 24-Mar-2014 Jinsuk Kim <jinsukkim@google.com> am c01e1aeb: Merge "Add HdmiCecManager" into klp-modular-dev

* commit 'c01e1aeb0d86bd626684c97d709d4a8e995fddfb':
Add HdmiCecManager
fbcd503645d9527fd7c700b3e4e8f170c46a7eba 21-Mar-2014 Jinsuk Kim <jinsukkim@google.com> Add HdmiCecManager

Introduces HdmiCecManager/HdmiCecClient to provide apps/system components
with the way to access HdmiCecService via Context.getSystemService(HDMI_CEC_SERVICE).

Change-Id: I39da071a328074a4b7b049947943688bd7779c26
/frameworks/base/core/java/android/app/ContextImpl.java
10ad98223fd1fabb7b893de55d1384fd012aed7b 17-Mar-2014 Dianne Hackborn <hackbod@google.com> Start enforcing explicit intents for Context.bindService()

No longer prints a warning, now throws an exception.

Also fix a bug in UserManagerService that was causing an
exception while booting.

Change-Id: I3b43cfe08067da840b6850b9bed58664d36d34f1
/frameworks/base/core/java/android/app/ContextImpl.java
ba6b8978169e5d974e0e363e25b5ef4646eb693e 14-Mar-2014 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of 825dd9dd to klp-dev-plus-aosp
.
Change-Id: I2363c40f641e7e60487354e1710312db2cbbc89a
7f68f7f4a128538c1bbd33c82a40f0cc15994bf9 13-Mar-2014 Chad Brubaker <cbrubaker@google.com> am f5729a6a: am 1011960c: am decfd707: Merge "Add the calling package name to requestRouteToHost" into klp-dev

* commit 'f5729a6a1573ba27f69a5c5dc144be3f8f60b026':
Add the calling package name to requestRouteToHost
f5729a6a1573ba27f69a5c5dc144be3f8f60b026 13-Mar-2014 Chad Brubaker <cbrubaker@google.com> am 1011960c: am decfd707: Merge "Add the calling package name to requestRouteToHost" into klp-dev

* commit '1011960c44a4f84d53d05199fe1ca09be9473822':
Add the calling package name to requestRouteToHost
73bd57f7abdb9eaf9239aa13945990acc6c97cd2 13-Mar-2014 Jeff Brown <jeffbrown@google.com> Merge "Retain display when creating specialized contexts. (DO NOT MERGE)" into klp-dev
95441201338285b666da4bae206b48c1ba20ed56 13-Mar-2014 Chad Brubaker <cbrubaker@google.com> am 1011960c: am decfd707: Merge "Add the calling package name to requestRouteToHost" into klp-dev

* commit '1011960c44a4f84d53d05199fe1ca09be9473822':
Add the calling package name to requestRouteToHost
ec463b96e188f2c68cbef2362e570118a3a460ed 12-Mar-2014 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of cc9894c8 to klp-modular-dev-plus-aosp

Change-Id: I0fa4486ed300a35de3af8748e01300b01f03ec01
f86c3a44f2af2dedd3c1d3a3c630a51f83984605 11-Mar-2014 Jeff Brown <jeffbrown@google.com> Retain display when creating specialized contexts. (DO NOT MERGE)

Fixed a bug that cause Context.createPackageContext() to discard
display information. Likewise also fixes issues where the
activity token, override configuration, user handle, and
restriction state might be discarded.

As part of this change, reworked how Contexts are created to make
initialization easier to understand and less error-prone.
The init() methods have been removed and most of the state is
now stored in final variables.

Bug: 12015587
Change-Id: If795851f1cd078bef889b76a52e00d9b3c06ab11
/frameworks/base/core/java/android/app/ContextImpl.java
089886058a9c56ce1921082ad682231a504ac832 11-Mar-2014 Jeff Brown <jeffbrown@google.com> Retain display when creating specialized contexts. (DO NOT MERGE)

Fixed a bug that cause Context.createPackageContext() to discard
display information. Likewise also fixes issues where the
activity token, override configuration, user handle, and
restriction state might be discarded.

As part of this change, reworked how Contexts are created to make
initialization easier to understand and less error-prone.
The init() methods have been removed and most of the state is
now stored in final variables.

Bug: 12015587
Change-Id: If795851f1cd078bef889b76a52e00d9b3c06ab11
/frameworks/base/core/java/android/app/ContextImpl.java
defd4a6b0448bf13606695eb086c77aa099684a2 11-Mar-2014 Jeff Brown <jeffbrown@google.com> Retain display when creating specialized contexts.

Fixed a bug that cause Context.createPackageContext() to discard
display information. Likewise also fixes issues where the
activity token, override configuration, user handle, and
restriction state might be discarded.

As part of this change, reworked how Contexts are created to make
initialization easier to understand and less error-prone.
The init() methods have been removed and most of the state is
now stored in final variables.

Bug: 12015587
Change-Id: If795851f1cd078bef889b76a52e00d9b3c06ab11
/frameworks/base/core/java/android/app/ContextImpl.java
18dd015e6edfb5f46e364f89f84e43d356d58c4a 14-Feb-2014 Chad Brubaker <cbrubaker@google.com> Add the calling package name to requestRouteToHost

The calling package name will be used to check if an application is a
system application when deciding if a route should be exempt from VPN
routing rules.

Bug: 12937545
Change-Id: I2c09c875fe9bb9685871a0a801ddcbb32fc17405
/frameworks/base/core/java/android/app/ContextImpl.java
8fb4cf1ef4ca3b3c5ea1897cc1a4f9f5dc454877 26-Feb-2014 RoboErik <epastern@google.com> Merge "Move Session apis to android.media.session"
2f5b057da7d05d5d699a272aa24fd7c97cdda820 21-Feb-2014 RoboErik <epastern@google.com> Move Session apis to android.media.session

This is to make it easier to distinguish the new apis from the old
ones.

Change-Id: Ic5eaf65e8bd054a844f87b9118c4bb18f30ac8a7
/frameworks/base/core/java/android/app/ContextImpl.java
4845037a48aa4463028fbea912dcb982a56daaa2 24-Feb-2014 Chad Brubaker <cbrubaker@google.com> Merge "Add the calling package name to requestRouteToHost"
01fe661ae5da3739215d93922412df4b24c859a2 13-Feb-2014 RoboErik <epastern@google.com> Initial round of MediaSession APIs

This is far from complete but puts the basic components in place
for an app to interact with media sessions.

Change-Id: Icfe313f90ad76ae56badbe42b0e43fc5f68db36f
/frameworks/base/core/java/android/app/ContextImpl.java
f81daa986e3a2d75c6f2398a59b965790484e0a2 14-Feb-2014 Chad Brubaker <cbrubaker@google.com> Add the calling package name to requestRouteToHost

The calling package name will be used to check if an application is a
system application when deciding if a route should be exempt from VPN
routing rules.

Bug: 12937545
Change-Id: I2c09c875fe9bb9685871a0a801ddcbb32fc17405
/frameworks/base/core/java/android/app/ContextImpl.java
48d22323ce39f9aab003dce74456889b6414af55 31-Jan-2014 MÃ¥rten Kongstad <marten.kongstad@sonymobile.com> Runtime resource overlay, iteration 2

Support any number of overlay packages. Support any target package.

UPDATED PACKAGE MATCHING
------------------------
In Runtime resource overlay, iteration 1, only a single overlay package
was considered. Package matching was based on file paths:
/vendor/overlay/system/framework-res.apk corresponded to
/system/framework-res.apk. Introduce a more flexible matching scheme
where any package is an overlay package if its manifest includes

<overlay targetPackage="com.target.package"/>

For security reasons, an overlay package must fulfill certain criteria
to take effect: see below.

THE IDMAP TOOL AND IDMAP FILES
------------------------------
Idmap files are created by the 'idmap' binary; idmap files must be
present when loading packages. For the Android system, Zygote calls
'idmap' as part of the resource pre-loading. For application packages,
'idmap' is invoked via 'installd' during package installation (similar
to 'dexopt').

UPDATED FLOW
------------
The following is an outline of the start-up sequences for the Android
system and Android apps. Steps marked with '+' are introduced by this
commit.

Zygote initialization
Initial AssetManager object created
+ idmap --scan creates idmaps for overlays targeting 'android', \
stores list of overlays in /data/resource-cache/overlays.list
AssetManager caches framework-res.apk
+ AssetManager caches overlay packages listed in overlays.list

Android boot
New AssetManager's ResTable acquired
AssetManager re-uses cached framework-res.apk
+ AssetManager re-uses cached 'android' overlays (if any)

App boot
ActivityThread prepares AssetManager to load app.apk
+ ActivityThread prepares AssetManager to load app overlays (if any)
New AssetManager's ResTable acquired as per Android boot

SECURITY
--------
Overlay packages are required to be pre-loaded (in /vendor/overlay).
These packages are trusted by definition. A future iteration of runtime
resource overlay may add support for downloaded overlays, which would
likely require target and overlay signatures match for the overlay to
be trusted.

LOOKUP PRIORITY
---------------
During resource lookup, packages are sequentially queried to provide a
best match, given the constraints of the current configuration. If any
package provide a better match than what has been found so far, it
replaces the previous match. The target package is always queried last.

When loading a package with more than one overlay, the order in which
the overlays are added become significant if several packages overlay
the same resource.

Had downloaded overlays been supported, the install time could have been
used to determine the load order. Regardless, for pre-installed
overlays, the install time is randomly determined by the order in which
the Package Manager locates the packages during initial boot. To support
a well-defined order, pre-installed overlay packages are expected to
define an additional 'priority' attribute in their <overlay> tags:

<overlay targetPackage="com.target.package" priority="1234"/>

Pre-installed overlays are loaded in order of their priority attributes,
sorted in ascending order.

Assigning the same priority to several overlays targeting the same base
package leads to undefined behaviour. It is the responsibility of the
vendor to avoid this.

The following example shows the ResTable and PackageGroups after loading
an application and two overlays. The resource lookup framework will
query the packages in the order C, B, A.

+------+------+- -+------+------+
| 0x01 | | ... | | 0x7f |
+------+------+- -+------+------+
| |
"android" Target package A
|
Pre-installed overlay B (priority 1)
|
Pre-installed overlay C (priority 2)

Change-Id: If49c963149369b1957f7d2303b3dd27f669ed24e
/frameworks/base/core/java/android/app/ContextImpl.java
6a6f96a296679c23f61b58b34985c8b25960a151 03-Oct-2013 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #10378741: configupdater needs to be explicit when it calls startService()" into klp-dev
fd6c7b12c312bef3ab9de2a8fcdeef9260fd85f1 03-Oct-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10378741: configupdater needs to be explicit when it calls startService()

Not enough time to fix everything, so instead we'll make it a warning
in this release and finish up turning it into a target-SDK based
exception in the next release.

Change-Id: I5aae64a1225a145f03ba4162238b53d5e401aba2
/frameworks/base/core/java/android/app/ContextImpl.java
cc866da37db53df67e9b324815d6377bbd47d71b 03-Oct-2013 Christopher Tate <ctate@google.com> Fix cross-process race in initial files/cache dir creation

Apps that run components in separate processes, especially that
host providers in separate processes, can hit a race condition
where two processes simultaneously discover that the files/cache
dir must be created, then each calls mkdirs(). One of these will
fail not because the dir couldn't be created, but because it lost
the race and mkdirs() returned false to signal that it already
existed -- and this was assumed to be a hard failure.

We now recheck existence after a mkdirs() failure to discern this
case and proceed appropriately.

Bug 10515463

Change-Id: I13fbdd838921223f75ab11faa47291c82b21c650
/frameworks/base/core/java/android/app/ContextImpl.java
7aa7601c09ab5d87cc15a0ed9a8f511d494a4cbc 30-Sep-2013 Jeff Sharkey <jsharkey@android.com> Detect wedged ContentProviders, treat as ANR.

All ContentProvider calls are currently blocking, making it hard for
an app to recover when a remote provider is wedged. This change adds
hidden support to ContentProviderClient to timeout remote calls,
treating them as ANRs. This behavior is disabled by default.

Update DocumentsUI to use a 20 second timeout whenever interacting
with a storage provider.

Bug: 10993301, 10819461, 10852518
Change-Id: I10fa3c425c6a7225fff9cb7a0a07659028230cd3
/frameworks/base/core/java/android/app/ContextImpl.java
2d8b4e801332e02d6aad615b85cc9dd056ef805c 18-Sep-2013 Jeff Sharkey <jsharkey@android.com> Delegate mkdirs() to vold when lacking perms.

Apps without sdcard_r or sdcard_rw are still able to write to
their package-specific directory, but someone needs to first make
that directory on their behalf. This change will delegate the
mkdirs() call through to vold when an app fails to create directly.

MountService validates that the path belongs to the calling user, and
that it's actually on external storage, before passing to vold.

Update Environment to make app-vs-vold paths clearer.

Bug: 10577808
Change-Id: I43b4a77fd6d2b9af2a0d899790da8d9d89386776
/frameworks/base/core/java/android/app/ContextImpl.java
7563d42331ed7df7f026c8921ae990ce2fca9efd 11-Sep-2013 Alexander Ray <aray@google.com> Merge "Add consumer IR framework" into klp-dev
95d785346b4dae808a2d8f77356175e55a572d96 11-Sep-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10688644: Java crash in com.android.phone:

java.lang.SecurityException: Operation not allowed

There was a situation I wasn't taking into account -- components
declared by the system has a special ability to run in the processes
of other uids. This means that if that code loaded into another
process tries to do anything needing an app op verification, it will
fail, because it will say it is calling as the system package name but
it is not actually coming from the system uid.

To fix this, we add a new Context.getOpPackageName() to go along-side
getBasePackageName(). This is a special call for use by all app ops
verification, which will be initialized with either the base package
name, the actual package name, or now the default package name of the
process if we are creating a context for system code being loaded into
a non-system process.

I had to update all of the code doing app ops checks to switch to this
method to get the calling package name.

Also improve the security exception throw to have a more descriptive
error message.

Change-Id: Ic04f77b3938585b02fccabbc12d2f0dc62b9ef25
/frameworks/base/core/java/android/app/ContextImpl.java
51e95df8f24e9ea30775686b9e324b9a671213dc 26-Jun-2013 Erik Gilling <konkers@android.com> Add consumer IR framework

Change-Id: I786c00db0cce61ef75e4edc24e90f2cdcba6dbfb
/frameworks/base/core/java/android/app/ContextImpl.java
365632e8ee83db7492094292cea0c509c3447d4b 09-Sep-2013 Tom O'Neill <tomo@google.com> Explain what warnIfCallingFromSystemProcess() is about

- Helps the next person to hit a bug like b/10621831

Change-Id: Id44dc57472516ec5f574d22d4c131ab9870648db
/frameworks/base/core/java/android/app/ContextImpl.java
f6913597247dfbfc0a1c387c976ec9004cb1cccb 05-Sep-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10387684: ArrayIndexOutOfBoundsException in ArrayMap.put

Locking of sSharedPrefs was bad -- it was using a per-context lock
instead of a static lock.

Change-Id: Ib261a40619c43f7ea2e686057c0702fb5461d843
/frameworks/base/core/java/android/app/ContextImpl.java
e8222dddaf2e3da14380101e818d4254899e0c0d 05-Sep-2013 Chet Haase <chet@google.com> Change build version from KEY_LIME_PIE to KITKAT

Issue #10631619 Change build version to KitKat

Change-Id: I6ad13f6169ad74204078d36929479998b498ad8b
/frameworks/base/core/java/android/app/ContextImpl.java
69ce69b0e1500bcf0bfa87eaf0b89ae47f552f5c 29-Aug-2013 Alan Viverette <alanv@google.com> Update captioning APIs

CaptioningManager is now a first-class service in Context and can
have listeners added to it to monitor changes.

BUG: 10260603, 10461210
Change-Id: I2df5b2997537bb343d902b7ace3343ad483f3717
/frameworks/base/core/java/android/app/ContextImpl.java
1abdb7123025e52512b2ed7a518f8c754c35f50a 12-Aug-2013 Jeff Sharkey <jsharkey@android.com> APIs for multiple external storage devices.

Provide developer APIs to discover application-specific paths on
secondary external storage devices. Covers files, cache, and OBB
directories. Apps will not have write access outside their package-
specific directories on secondary devices, so only primary storage is
exposed through Environment.

Creation of .nomedia files will be handled by FUSE daemon in future
change.

Change-Id: Ifcce6201a686d80269d7285adb597c008cf8fa7c
/frameworks/base/core/java/android/app/ContextImpl.java
bd6a6e6019231621644e1701b6a95093abc40333 06-Aug-2013 Craig Mautner <cmautner@google.com> Use package CompatibilityInfo as default. DO NOT MERGE

Do not use CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO as default
if there is one for the package.

Partial fix for 10191318.

Change-Id: Ie218f0717398bb86e5c35066c8fe6a462b7d5273
/frameworks/base/core/java/android/app/ContextImpl.java
83524876e09bee871e03cd87c1f021f02228be90 06-Aug-2013 Dianne Hackborn <hackbod@google.com> Whoops, not yet time to be an error.

Change-Id: I869026e1ad33b891010d556150f0b83fa97c4ac4
/frameworks/base/core/java/android/app/ContextImpl.java
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
/frameworks/base/core/java/android/app/ContextImpl.java
2f1a2e423e0fbb64467d6fcfa4e82c6384f31210 26-Jul-2013 Eino-Ville Talvala <etalvala@google.com> Camera2 API: Rename package to android.hardware.camera2

Change-Id: I77b7939e199f9fe8e12a59393c24cff08097448c
/frameworks/base/core/java/android/app/ContextImpl.java
c0dfee29a85182a59380017c7bb7d9b69c38be92 19-Jul-2013 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #9925269: Naver app crashes on launch"
ff32f353f8f6974de80cd6979ce3047dc7133d96 19-Jul-2013 Dianne Hackborn <hackbod@google.com> Fix issue #9925269: Naver app crashes on launch

No comment.

Change-Id: I084cbbf21cacdce179c11528b7217fdc6006dceb
/frameworks/base/core/java/android/app/ContextImpl.java
e0a22b324d0e3157e570ea5f71cc682fa9696e01 11-Jul-2013 Christopher Tate <ctate@google.com> Batch alarms to reduce device wakeups

The default Alarm Manager behavior for KLP+ apps will be to aggressively
coalesce alarms, trading exact timeliness of delivery for minimizing the
number of alarm-delivery points, especially wakeup points.

There is new API in AlarmManager, setExact() and setExactRepeating(),
for use by apps that absolutely *must* get their alarms at a specific
point in time.

Bug 9532215

Change-Id: I40b4eea90220211cc958172d2629664b921ff051
/frameworks/base/core/java/android/app/ContextImpl.java
88c0589969b17e66559cd2f132094cdaa0ee351d 28-Jun-2013 Craig Mautner <cmautner@google.com> Refactor ActivityThread cache - Baby step 1.

Introduce ResourcesManager and ResourcesKey as standalone classes.
Move DisplayMetrics and Resources HashMaps from ActivityThread to
ResourcesManager.

Change-Id: I20cc6c0dd1b74667354839e5ac9a660f4ee2d00d
/frameworks/base/core/java/android/app/ContextImpl.java
e363fbb2647aeb5ef4c87160d84c6b9ae8d45598 25-Jun-2013 Igor Murashkin <iam@google.com> Partial CameraManager implementation

Bug: 9213377
Change-Id: I8f89fb94d7081a71b38e5cd0ad89116d219b4c33
/frameworks/base/core/java/android/app/ContextImpl.java
a858308ed2c950fe800abeefcb845b9c3197a2f3 25-Jun-2013 Igor Murashkin <iam@google.com> Revert "Partial CameraManager implementation"

This reverts commit e473f7d8f96b5682141522378b761913192d8114.

Change-Id: I23e92ca2def0ebf507f6c782442a4698745bc926
/frameworks/base/core/java/android/app/ContextImpl.java
e473f7d8f96b5682141522378b761913192d8114 11-Jun-2013 Igor Murashkin <iam@google.com> Partial CameraManager implementation

Bug: 9213377
Change-Id: I29864a5d1f7971ed589d1ffaddeefbb703e34018
/frameworks/base/core/java/android/app/ContextImpl.java
07f36c738e65b8cc2484107b4f8e3386d45d065d 24-Jun-2013 Craig Mautner <cmautner@google.com> Merge "Add activity token to display system."
48d0d1886731ff19ed3fb47a5997be5df0d1bba8 11-Jun-2013 Craig Mautner <cmautner@google.com> Add activity token to display system.

First step in adding activity specific information to displays.
Replace CompatibilityInfoHolder with DisplayAdjustmentsHolder that
holds an activity token in addition to the CompatibilityInfo.

Change-Id: Ie113cd8dd9c62e0b5311204e039a4829096bea68
/frameworks/base/core/java/android/app/ContextImpl.java
4b9a4d16872bbb50712e007b419ac0b35ff1582d 12-Jun-2013 Svetoslav Ganov <svetoslavganov@google.com> Print - platform APIs

Related changes:
Skia (inlcude PDF APIs): https://googleplex-android-review.googlesource.com/#/c/305814/
Canvas to PDF: https://googleplex-android-review.googlesource.com/#/c/319367/
Settings (initial version): https://googleplex-android-review.googlesource.com/#/c/306077/
Build: https://googleplex-android-review.googlesource.com/#/c/292437/
Sample print services: https://googleplex-android-review.googlesource.com/#/c/281785/

Change-Id: I104d12efd12577f05c7b9b2a5e5e49125c0f09da
/frameworks/base/core/java/android/app/ContextImpl.java
8e3ddab1fcc246442484c1b443810a1ba6f35296 18-Jun-2013 Jeff Sharkey <jsharkey@android.com> Use package name when caching SharedPreferences.

Otherwise multiple applications using the same process can end up
leaking SharedPreferences instances between the apps.

Change-Id: I2eb0e693cebea1daf87a9176eb8c5a22b9e9ec0b
/frameworks/base/core/java/android/app/ContextImpl.java
b2675542c2f414154125b534767ae0903fba581e 12-Dec-2012 Eino-Ville Talvala <etalvala@google.com> Initial commit of new camera API, mostly just the interface.

- New core API classes in android.hardware.photography
- android.media.Image and android.media.ImageReader classes for
application access to direct hardware image buffers.
- Additions to android.graphics.ImageFormat to describe new image
types needed by new camera API.
- Some documentation included; very little implementation.

Bug: 9111736
Change-Id: I0680f35944d1cb8845b7dc0c67edc8c0f0864573
/frameworks/base/core/java/android/app/ContextImpl.java
e50848bfba085e6836a5526dfa64261d1ee46e64 07-Jun-2013 Romain Guy <romainguy@google.com> Avoid Binder call when getting the Window service

Change-Id: Ie4f01838402bec4b387e40ce02a1af7f12941538
/frameworks/base/core/java/android/app/ContextImpl.java
6d0c1d78f121d4f1b72973740e8b120c7def1dc0 28-Mar-2013 Jaikumar Ganesh <jaikumar@google.com> Sensor values changes.

1. Remove Sensor Event Pool.
2. Allocate fixed array values for each Sensor added.
- Needed for backward compatibility.
3. Use SDK checks for backward compatibility for
rotation vector.

b/8165631

Change-Id: I2d2cf10d3460478ed7af8e6188343f4bb033503c
/frameworks/base/core/java/android/app/ContextImpl.java
f9e989d5f09e72f5c9a59d713521f37d3fdd93dd 05-Apr-2013 Jeff Brown <jeffbrown@google.com> Queues, queues, queues and input.

Redesigned how ViewRootImpl delivers input events to views,
the IME and to native activities to fix several issues.

The prior change to make IME input event delegation use
InputChannels failed to take into account that InputMethodManager
is a singleton attached to the main looper whereas UI may be
attached to any looper. Consequently interactions with the
InputChannel might occur on the wrong thread. Fixed this
problem by checking the current thread and posting input
events or callbacks to the correct looper when necessary.

NativeActivity has also been broken for a while because the
default event handling logic for joysticks and touch navigation
was unable to dispatch events back into the native activity.
In particular, this meant that DPad synthesis from touch navigation
would not work in any native activity. The plan is to fix
this problem by passing all events through ViewRootImpl as usual
then forwarding them to native activity as needed. This should
greatly simplify IME pre-dispatch and system key handling
and make everything more robust overall.

Fixed issues related to when input events are synthesized.
In particular, added a more robust mechanism to ensure that
synthetic events are canceled appropriately when we discover
that events are no longer being resynthesized (because the
application or IME is handling or dropping them).

The new design is structured as a pipeline with a chain of
responsibility consisting of InputStage objects. Each InputStage
is responsible for some part of handling each input event
such as dispatching to the view hierarchy or to the IME.
As a stage processes an input event, it has the option of
finishing the event, forwarding the event to the next stage
or handling the event asynchronously. Some queueing logic
takes care to ensure that events are forwarded downstream in
the correct order even if they are handled out of order
by a given stage.

Cleaned up the InputMethodManager singleton initialization logic
to make it clearer that it must be attached to the main looper.
We don't actually need to pass this looper around.

Deleted the LatencyTimer class since no one uses it and we have
better ways of measuring latency these days using systrace.

Added a hidden helper to Looper to determine whether the current
thread is the indicated Looper thread.

Note: NativeActivity's IME dispatch is broken by this patch.
This will be fixed later in another patch.

Bug: 8473020
Change-Id: Iac2a1277545195a7a0137bbbdf04514c29165c60
/frameworks/base/core/java/android/app/ContextImpl.java
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
/frameworks/base/core/java/android/app/ContextImpl.java
ddf7e4756c31d0ed90802f98abeaa79df6d16b2a 02-Mar-2013 Matthew Xie <mattx@google.com> Unhide Bluetooth Low Energy public APIs

Updated API headers. Add BluetoothManager to be retrieved by
context.getSystemService(Context.BLUETOOTH_SERVICE).
LE scan functions are placed in BluetoothAdapter
The GATT API are device driven instead of a profile-driver.
bug 8450158

Change-Id: I424a4cedaac3ef8120a05996500008dd210d2553
/frameworks/base/core/java/android/app/ContextImpl.java
be72215c39916af9ae42332260c04b696bc73d7f 16-Feb-2013 Jeff Sharkey <jsharkey@android.com> Better API for low disk space warnings.

Provides uniform interface to ask about low disk thresholds; can
be mocked by other tests. Opens door to adjust thresholds based on
disk type.

Switch monitor service to using new API, and use filesystem paths
from Environment instead of hard-coding.

Change-Id: Ifdb536e36a453f1b67bc65849037ec3cc0232cf2
/frameworks/base/core/java/android/app/ContextImpl.java
f51f61269aacdfcf737b2c32b6b216c48ab61e65 05-Feb-2013 Dianne Hackborn <hackbod@google.com> App ops: new operations for SMS.

Implementation required a new framework feature
to associate an app op with a broadcast.

Change-Id: I4ff41a52f7ad4ee8fd80cbf7b394f04d6c4315b3
/frameworks/base/core/java/android/app/ContextImpl.java
f265ea9d8307282ff1da3915978625a94fc2859e 01-Feb-2013 Dianne Hackborn <hackbod@google.com> App ops: vibration, neighboring cells, dialing, etc.

Improve handling of vibration op, so that apps are
better blamed (there is now a hidden vibrator API that
supplies the app to blame, and the system now uses this
when vibrating on behalf of an app).

Add operation for retrieving neighboring cell information.

Add a new op for calling a phone number. This required
plumbing information about the launching package name through
the activity manager, which required changing the internal
startActivity class, which required hitting a ton of code that
uses those internal APIs.

Change-Id: I3f8015634fdb296558f07fe654fb8d53e5c94d07
/frameworks/base/core/java/android/app/ContextImpl.java
80943d8daa6ab31ab5c486d57aea406aa0730d58 02-Jan-2013 Svetoslav Ganov <svetoslavganov@google.com> Adding UI test automation APIs.

This change adds APIs support for implementing UI tests. Such tests do
not rely on internal application structure and can span across application
boundaries. UI automation APIs are encapsulated in the UiAutomation object
that is provided by an Instrumentation object. It is initialized by the
system and can be used for both introspecting the screen and performing
interactions simulating a user. UI test are normal instrumentation tests
and are executed on the device.

UiAutomation uses the accessibility APIs to introspect the screen and
a special delegate object to perform privileged operations such as
injecting input events. Since instrumentation tests are invoked by a shell
command, the shell program launching the tests creates a delegate object and
passes it as an argument to started instrumentation. This delegate
allows the APK that runs the tests to access some privileged operations
protected by a signature level permissions which are explicitly granted
to the shell user.

The UiAutomation object also supports running tests in the legacy way
where the tests are run as a Java shell program. This enables existing
UiAutomator tests to keep working while the new ones should be implemented
using the new APIs. The UiAutomation object exposes lower level APIs which
allow simulation of arbitrary user interactions and writing complete UI test
cases. Clients, such as UiAutomator, are encouraged to implement higher-
level APIs which minimize development effort and can be used as a helper
library by the test developer.

The benefit of this change is decoupling UiAutomator from the system
since the former was calling hidden APIs which required that it is
bundled in the system image. This prevented UiAutomator from being
evolved separately from the system. Also UiAutomator was creating
additional API surface in the system image. Another benefit of the new
design is that now test cases have access to a context and can use
public platform APIs in addition to the UiAutomator ones. Further,
third-parties can develop their own higher level test APIs on top
of the lower level ones exposes by UiAutomation.

bug:8028258

Also this change adds the fully qualified resource name of the view's
id in the emitted AccessibilityNodeInfo if a special flag is set while
configuring the accessibility service. Also added is API for looking
up node infos by this id. The id resource name is relatively more stable
compared to the generaed id number which may change from one build to
another. This API facilitate reuing the already defined ids for UI
automation.

bug:7678973

Change-Id: I589ad14790320dec8a33095953926c2a2dd0228b
/frameworks/base/core/java/android/app/ContextImpl.java
d8e1dbb6bc1fbaf4f2e38c3ba92ced94270deaac 18-Jan-2013 Dianne Hackborn <hackbod@google.com> Rework ParceledListSlice to be much easier to use.

Take advantage of this to return better information about
packages filtered by permissions -- include the permissions
they have in the requested array.

Also fix issue #8026793 (Contact picture shows default pic
while searching for a contact in qsb) by using the base
package name of the Context when reporting the app name
of an operation. Otherwise you could make a resource-only
context for another application and do calls through that
and get reported as the wrong app.

Change-Id: I5e0488bf773acea5a3d22f245641828e1a106fb8
/frameworks/base/core/java/android/app/ContextImpl.java
d4fe37bee7c7433f32c23cee100c6e05ba0f3b2b 17-Jan-2013 Amith Yamasani <yamasani@google.com> Merge "Rename bindService to bindServiceAsUser to follow convention."
27b89e6658a0d233a53f5d7ca20dc57fec82d955 16-Jan-2013 Amith Yamasani <yamasani@google.com> Rename bindService to bindServiceAsUser to follow convention.

This is for the multi-user version of bindService, not the original.

Change-Id: Ib2de35941196accf387b1a276a77e6f9af805ec0
/frameworks/base/core/java/android/app/ContextImpl.java
35654b61e8fe7bc85afcb076ddbb590d51c5865f 15-Jan-2013 Dianne Hackborn <hackbod@google.com> More work on App Ops service.

Implemented reading and writing state to retain information
across boots, API to retrieve state from it, improved location
manager interaction to monitor both coarse and fine access
and only note operations when location data is being delivered
back to app (not when it is just registering to get the data at
some time in the future).

Also implement tracking of read/write ops on contacts and the
call log. This involved tweaking the content provider protocol
to pass over the name of the calling package, and some
infrastructure in the ContentProvider transport to note incoming
calls with the app ops service. The contacts provider and call
log provider turn this on for themselves.

This also implements some of the mechanics of being able to ignore
incoming provider calls... all that is left are some new APIs for
the real content provider implementation to be involved with
providing the correct behavior for query() (return an empty
cursor with the right columns) and insert() (need to figure out
what URI to return).

Change-Id: I36ebbcd63dee58264a480f3d3786891ca7cbdb4c
/frameworks/base/core/java/android/app/ContextImpl.java
ca6486e7f579fa885b6213513f26ce2ca49f873b 15-Jan-2013 Sasha Levitskiy <sanek@google.com> Removed Throttle Manager as obsolete

Change-Id: I63e8514f34c880d0badaab33a347f54a80c84da6
/frameworks/base/core/java/android/app/ContextImpl.java
a06de0f29b58df9246779cc4bfd8f06f7205ddb6 12-Dec-2012 Dianne Hackborn <hackbod@google.com> New "app ops" service.

Initial implementation, tracking use of the vibrator, GPS,
and location reports.

Also includes an update to battery stats to also keep track of
vibrator usage (since I had to be in the vibrator code anyway
to instrument it).

The service itself is only half-done. Currently no API to
retrieve the data (which once there will allow us to show you
which apps are currently causing the GPS to run and who has
recently accessed your location), it doesn't persist its data
like it should, and no way to tell it to reject app requests
for various operations.

But hey, it's a start!

Change-Id: I05b8d76cc4a4f7f37bc758c1701f51f9e0550e15
/frameworks/base/core/java/android/app/ContextImpl.java
40e9f2922cae76ffcbc521481e5be8e80e8744ef 28-Nov-2012 Dianne Hackborn <hackbod@google.com> Quiet down a lot of logging.

Also fix a little problem where the USER_STARTED broadcasts
were not being sent as ordered broadcasts(!).

Change-Id: I3aa3e0a9b3900967cdd2d115ee103371b0a50c41
/frameworks/base/core/java/android/app/ContextImpl.java
cd75706117432e33d11639e675bcff50479a6bb9 20-Oct-2012 Amith Yamasani <yamasani@google.com> System server should always send broadcasts to a specific or all users

Bug: 7368245

Log a warning if the system process calls unqualified sendBroadcast()
and other calls.

As a result of the logging above, found a few more method calls such as
bindService() that would benefit from being more explicit to avoid
future confusion and reduce the log warnings.

Change-Id: I17f15c8be9adf7becd456d6abbab606f19befdbf
/frameworks/base/core/java/android/app/ContextImpl.java
c0bd747b0605af251ff136277f14220a5a4c9818 09-Oct-2012 Dianne Hackborn <hackbod@google.com> Further work on issue #7307399: Framework needs a new pre-user-shutdown...

...phase & callback API

I realized there were a few things wrong with what was there. The new
ACTION_USER_STARTING was not being sent for the first user at boot, and
there was an existing problem where ACTION_USER_STARTED was sent every
time there was a user switch.

Also improved some debug output of broadcasts to make it easier to see
what is going on in this stuff, and better reporting of why a service
couldn't be started.

Change-Id: Id8a536defbbad1f73d94a37d13762436b822fbe3
/frameworks/base/core/java/android/app/ContextImpl.java
9c2a38ed10592a54d9bb753ef882632f7a8cd446 08-Oct-2012 Amith Yamasani <yamasani@google.com> Merge "Fix resource reading for secondary users" into jb-mr1-dev
64442c11555d828a41af0b8a58ab933357889061 07-Oct-2012 Amith Yamasani <yamasani@google.com> Fix resource reading for secondary users

Bug: 7086881

Load resources for the correct user.

Also clean up package monitoring and locking.
Added dump method to SearchManagerService.

Sneaking in a change to make crash dialogs visible to current user.

Change-Id: Id56dd15428d66084de995e28be242db27c15fda3
/frameworks/base/core/java/android/app/ContextImpl.java
6f2a3d298205522f2e799800dace0e6c345dd4d3 06-Oct-2012 Adam Powell <adamp@google.com> Quick settings user display and switching

Load user information for the current user and display in quick
settings tile. Name is pulled from the contacts DB from the "Me"
profile, which will override the raw name on the system user if
needed.

Open the user switcher on the lock screen if this tile is clicked and
there is more than one user registered on the system. If there is only
one user, show the "Me" quick contact card.

Darken the background protection behind the user's name on the QS tile
layout so that it's readable against very light profile pic
backgrounds.

Bug 7175023
Bug 7257997

Change-Id: Ia1e7dd7af72dbd49113a827f9228e0a32e20a0dc
/frameworks/base/core/java/android/app/ContextImpl.java
fc3f24b4b60c10e0d3f41f70df37e11ea311cc2c 02-Oct-2012 Jeff Sharkey <jsharkey@android.com> Make USB services multi-user aware.

USB settings are now isolated per-user, since they revolve around
installed packages. User-specific settings are returned based on
calling user, or referenced by UserHandle passed to SystemUI. Each
settings Context is wrapped as a specific user, so all broadcasts are
sent correctly. Upgrades any existing USB settings to OWNER.

Physical events, like new devices, are routed to the currently active
user. Switch to using AtomicFile when persisting settings.

Bug: 7244888
Change-Id: I8a723ad3d55ac1bff99276c5f3a3f5e8f013432f
/frameworks/base/core/java/android/app/ContextImpl.java
ded653b168b19f6061889907d4f562d764c5559b 28-Sep-2012 Jeff Sharkey <jsharkey@android.com> Fix "system" resources; more context user work.

Special-case "system" resources, since it doesn't have an
ApplicationInfo. Also switch Context and PackageManager to using
the wrapped UserHandle for outgoing calls.

Bug: 7242361
Change-Id: I1ecd2a4752399a6dce2de97c59bd5545996c9a99
/frameworks/base/core/java/android/app/ContextImpl.java
98edc951712823dbf5db2b7e9c203a0e98fc616b 25-Sep-2012 Amith Yamasani <yamasani@google.com> Load resources for the correct user

For apps that are only installed on secondary users, the SystemUI is
unable to see them by default. Added some methods to explicitly pass the
userId of the user the resources are requested for by the StatusBarIcon

Bug: 7214384

Also fix binding to remote views

Bug: 7192802

Change-Id: I5d6c5f624aa37fb231f3467f9764c8d99077a91d
/frameworks/base/core/java/android/app/ContextImpl.java
ea7e91514ee1968d15713e82a5cca745e2c46a05 25-Sep-2012 Amith Yamasani <yamasani@google.com> AppInfo from Notifications for secondary users

Required wiring up startActivitiesAsUser()

Bug: 7224950

Also fix a bug in navigateUp in secondary user

Change-Id: I114ae2de0457362d62e899fdb94b12239a3eb778
/frameworks/base/core/java/android/app/ContextImpl.java
6d51571835737c7502a2e111ee9dc2527ebad984 21-Sep-2012 Jeff Sharkey <jsharkey@android.com> Allow acquiring ContentProviders across users.

Otherwise services like SystemUI will always open content://-style
Uris as USER_OWNER. Surfaces through createPackageContextAsUser()
which points all ContentResolver operations towards a given user.

Start using in RemoteViews, so that Notifications correctly resolve
image Uris to the sending user. Also add user support for "content"
shell tool.

Bug: 7202982
Change-Id: I8cb7fb8a812e825bb0b5833799dba87055ff8699
/frameworks/base/core/java/android/app/ContextImpl.java
27bd34d9d9fe99f11b80aa0bbdb402fb47ef4158 16-Sep-2012 Jeff Sharkey <jsharkey@android.com> Multi-user MTP.

The current MTP kernel driver at /dev/mtp_usb is exclusive, meaning
only one process can have it open. In addition, each MTP session
with a desktop requires unique object IDs, which doesn't hold true
across users on the device.

To solve these two issues, when switching users we cycle the USB host
stack to disconnect both local and remote MTP connections, giving the
new user's media process a chance to claim /dev/mtp_usb, and causing
the desktop to initiate a new MTP session.

This change also allows BroadcastReceivers to registerReceiver()
allow retrieval of a current sticky broadcast. Adds a system property
to override maximum users. Removes MOUNTED broadcasts for secondary
users. Allows INTERACT_ACROSS_USERS to getCurrentUser().

Bug: 6925114
Change-Id: I02b4a1b535af95fb2142655887b6d15a8068d18a
/frameworks/base/core/java/android/app/ContextImpl.java
4dc7a68dbeaa0edd8815b2105915753310d58343 11-Sep-2012 Christopher Tate <ctate@google.com> Set up default (random) Android IDs for all users

Also correct some now-misleading terminology in a permission-check
log message, and fix a bug in which a system component trying to
write to a secondary user's settings would wind up writing the
owner's settings instead.

Bug 7132405

Change-Id: I5b8fafc35720390a01652e386ab5b7c0ad751abe
/frameworks/base/core/java/android/app/ContextImpl.java
5e03e2ca7d25b899b129baad2dd5eca6bf99d88a 06-Sep-2012 Dianne Hackborn <hackbod@google.com> More multi-user stuff:

- New (hidden) isUserRunning() API.
- Maintain LRU list of visited users.
- New FLAG_IS_DATA_ONLY for ApplicationInfo.
- Clean up pending intent records when force-stopping a user (or package).
(Also fixes bug #6880627: PendingIntent.getService() returns stale
intent of force stopped app)
- Fix force-stopping when installing an app to do the force-stop across
all users for that app.
- When selecting which processes to kill during a force stop, do this
based on the actual packages loaded in the process, not just process
name matching.
- You can now use --user option in am when starting activities, services,
and instrumentation.
- The am --user option accepts "current" and "all" as arguments.
- The pm uninstall command now uninstalls for all users, so it matches
the semantics of the install command.
- PhoneWindowManager now explicitly says to start home in the current
user.
- Activity manager call to retrieve the MIME type from a content provider
now takes a user argument, so it will direct this to the proper user.
- The package manager uninstall paths are now implemented around
PackageSetting, not PackageParser.Package. This allows them to work
even if the application's apk has been removed (in which case it only
exists as a PackageSetting, not the PackageParser.Package parsed from
the apk).

Change-Id: I3522f6fcf32603090bd6e01cc90ce70b6c5aae40
/frameworks/base/core/java/android/app/ContextImpl.java
20e809870d8ac1e5b848f2daf51b2272ef89bdfc 01-Sep-2012 Dianne Hackborn <hackbod@google.com> Add registering for explicit users.

New API to register as an explicit user, which allows you to
also select ALL to see broadcasts for all users.

New BroadcastReceiver API to find out which user the broadcast
was sent to.

Use this in app widget service to handle per-user package broadcasts
and boot completed broadcasts correctly.

Change-Id: Ibbe28993bd4aa93900c79e412026c27863019eb8
/frameworks/base/core/java/android/app/ContextImpl.java
2701f325a6d4acd920637d2ff6fd6972a9cf836b 01-Sep-2012 Dianne Hackborn <hackbod@google.com> Merge "Remove Binder.getOrigCallingUid()." into jb-mr1-dev
a492c3a7b2c18426fd0cb4d017eacbc368195dc5 24-Aug-2012 Jeff Brown <jeffbrown@google.com> Initial draft of high-level multi-display APIs.

This patch introduces the ability to create a Context that
is bound to a Display. The context gets its configuration and
metrics from that display and is able to provide a WindowManager
that is bound to the display.

To make it easier to use, we also add a new kind of Dialog
called a Presentation. Presentation takes care of setting
up the context as needed and watches for significant changes
in the display configuration. If the display is removed,
then the presentation simply dismisses itself.

Change-Id: Idc54b4ec84b1ff91505cfb78910cf8cd09696d7d
/frameworks/base/core/java/android/app/ContextImpl.java
4120375d46091df8527bb701882e056fbb0e6b06 31-Aug-2012 Dianne Hackborn <hackbod@google.com> Remove Binder.getOrigCallingUid().

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

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

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

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

That's for another change, however.

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

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

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

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

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

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

Change-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c
/frameworks/base/core/java/android/app/ContextImpl.java
bd6e1500aedc5461e832f69e76341bff0e55fa2b 28-Aug-2012 Jeff Brown <jeffbrown@google.com> Add initial multi-display support.

Split the DisplayManager into two parts. One part is bound
to a Context and takes care of Display compatibility and
caching Display objects on behalf of the Context. The other
part is global and takes care of communicating with the
DisplayManagerService, handling callbacks, and caching
DisplayInfo objects on behalf of the process.

Implemented support for enumerating Displays and getting
callbacks when displays are added, removed or changed.

Elaborated the roles of DisplayManagerService, DisplayAdapter,
and DisplayDevice. We now support having multiple display
adapters registered, each of which can register multiple display
devices and configure them dynamically.

Added an OverlayDisplayAdapter which is used to simulate
secondary displays by means of overlay windows. Different
configurations of overlays can be selected using a new
setting in the Developer Settings panel. The overlays can
be repositioned and resized by the user for convenience.

At the moment, all displays are mirrors of display 0 and
no display transformations are applied. This will be improved
in future patches.

Refactored the way that the window manager creates its threads.
The OverlayDisplayAdapter needs to be able to use hardware
acceleration so it must share the same UI thread as the Keyguard
and window manager policy. We now handle this explicitly as
part of starting up the system server. This puts us in a
better position to consider how we might want to share (or not
share) Loopers among components.

Overlay displays are disabled when in safe mode or in only-core
mode to reduce the number of dependencies started in these modes.

Change-Id: Ic2a661d5448dde01b095ab150697cb6791d69bb5
/frameworks/base/core/java/android/app/ContextImpl.java
7767eac3232ba2fb9828766813cdb481d6a97584 24-Aug-2012 Dianne Hackborn <hackbod@google.com> Keep track of whether an app is installed for each user.

This add a new per-user state for an app, indicating whether
it is installed for that user.

All system apps are always installed for all users (we still
use disable to "uninstall" them).

Now when you call into the package manager to install an app,
it will only install the app for that user unless you supply
a flag saying to install for all users. Only being installed
for the user is just the normal install state, but all other
users have marked in their state for that app that it is not
installed.

When you call the package manager APIs for information about
apps, uninstalled apps are treated as really being not visible
(somewhat more-so than disabled apps), unless you use the
GET_UNINSTALLED_PACKAGES flag.

If another user calls to install an app that is already installed,
just not for them, then the normal install process takes place
but in addition that user's installed state is toggled on.

The package manager will not send PACKAGE_ADDED, PACKAGE_REMOVED,
PACKAGE_REPLACED etc broadcasts to users who don't have a package
installed or not being involved in a change in the install state.
There are a few things that are not quite right with this -- for
example if you go through a full install (with a new apk) of an
app for one user who doesn't have it already installed, you will
still get the PACKAGED_REPLACED messages even though this is
technically the first install for your user. I'm not sure how
much of an issue this is.

When you call the existing API to uninstall an app, this toggles
the installed state of the app for that user to be off. Only if
that is the last user user that has the app uinstalled will it
actually be removed from the device. Again there is a new flag
you can pass in to force the app to be uninstalled for all users.

Also fixed issues with cleaning external storage of apps, which
was not dealing with multiple users. We now keep track of cleaning
each user for each package.

Change-Id: I00e66452b149defc08c5e0183fa673f532465ed5
/frameworks/base/core/java/android/app/ContextImpl.java
5d1122a3f84e1df80c63aca56310f2cf29bea7dc 23-Aug-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #7016987: Unable to attach a picture in gmail/emaill composer action." into jb-mr1-dev
f1c26e2fd03e9765fde519e238fc23d4e3d06df2 23-Aug-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7016987: Unable to attach a picture in gmail/emaill composer action.

Change-Id: I0c9336bb072b4622a5eab6d3ec104c4cc38e367a
/frameworks/base/core/java/android/app/ContextImpl.java
92d570529c72c00ab456521a5b0237f62a6abdf5 23-Aug-2012 Amith Yamasani <yamasani@google.com> Handle null cache directory

data/android directory doesn't exist sometimes, and hence cache
directory creation fails. Don't crash the process due to that.

Change-Id: I22d7ed5df9c70f021a87029e89a13a11b4b0303b
/frameworks/base/core/java/android/app/ContextImpl.java
98365d7663cbd82979a5700faf0050220b01084d 20-Aug-2012 Jeff Brown <jeffbrown@google.com> Refactor for multi-display support.

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

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

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

Add stubs for some new display manager API features.

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

Change-Id: I29ed909114dec86807c4d3a5059c3fa0358bea61
/frameworks/base/core/java/android/app/ContextImpl.java
79af1dd54c16cde063152922b42c96d72ae9eca8 17-Aug-2012 Dianne Hackborn <hackbod@google.com> Switch public APIs to use new UserHandle class for identifying users.

Gets rid of "yet another integer" confusion.

Change-Id: Id07ea7307aea7c62f0087c6663a1f1c08e2e5dee
/frameworks/base/core/java/android/app/ContextImpl.java
f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8 16-Aug-2012 Dianne Hackborn <hackbod@google.com> Rename UserId to UserHandle.

This is the start of turning this into a formal public API.

Change-Id: I5786d2c320f1de41a06ed5d0f65adb68967287a0
/frameworks/base/core/java/android/app/ContextImpl.java
9630704ed3b265f008a8f64ec60a33cf9dcd3345 28-Jul-2012 Jeff Brown <jeffbrown@google.com> Power manager rewrite.

The major goal of this rewrite is to make it easier to implement
power management policies correctly. According, the new
implementation primarily uses state-based rather than event-based
triggers for applying changes to the current power state.

For example, when an application requests that the proximity
sensor be used to manage the screen state (by way of a wake lock),
the power manager makes note of the fact that the set of
wake locks changed. Then it executes a common update function
that recalculates the entire state, first looking at wake locks,
then considering user activity, and eventually determining whether
the screen should be turned on or off. At this point it may
make a request to a component called the DisplayPowerController
to asynchronously update the display's powe state. Likewise,
DisplayPowerController makes note of the updated power request
and schedules its own update function to figure out what needs
to be changed.

The big benefit of this approach is that it's easy to mutate
multiple properties of the power state simultaneously then
apply their joint effects together all at once. Transitions
between states are detected and resolved by the update in
a consistent manner.

The new power manager service has is implemented as a set of
loosely coupled components. For the most part, information
only flows one way through these components (by issuing a
request to that component) although some components support
sending a message back to indicate when the work has been
completed. For example, the DisplayPowerController posts
a callback runnable asynchronously to tell the PowerManagerService
when the display is ready. An important feature of this
approach is that each component neatly encapsulates its
state and maintains its own invariants. Moreover, we do
not need to worry about deadlocks or awkward mutual exclusion
semantics because most of the requests are asynchronous.

The benefits of this design are especially apparent in
the implementation of the screen on / off and brightness
control animations which are able to take advantage of
framework features like properties, ObjectAnimator
and Choreographer.

The screen on / off animation is now the responsibility
of the power manager (instead of surface flinger). This change
makes it much easier to ensure that the animation is properly
coordinated with other power state changes and eliminates
the cause of race conditions in the older implementation.

The because of the userActivity() function has been changed
so that it never wakes the device from sleep. This change
removes ambiguity around forcing or disabling user activity
for various purposes. To wake the device, use wakeUp().
To put it to sleep, use goToSleep(). Simple.

The power manager service interface and API has been significantly
simplified and consolidated. Also fixed some inconsistencies
related to how the minimum and maximum screen brightness setting
was presented in brightness control widgets and enforced behind
the scenes.

At present the following features are implemented:

- Wake locks.
- User activity.
- Wake up / go to sleep.
- Power state broadcasts.
- Battery stats and event log notifications.
- Dreams.
- Proximity screen off.
- Animated screen on / off transitions.
- Auto-dimming.
- Auto-brightness control for the screen backlight with
different timeouts for ramping up versus ramping down.
- Auto-on when plugged or unplugged.
- Stay on when plugged.
- Device administration maximum user activity timeout.
- Application controlled brightness via window manager.

The following features are not yet implemented:

- Reduced user activity timeout for the key guard.
- Reduced user activity timeout for the phone application.
- Coordinating screen on barriers with the window manager.
- Preventing auto-rotation during power state changes.
- Auto-brightness adjustment setting (feature was disabled
in previous version of the power manager service pending
an improved UI design so leaving it out for now).
- Interpolated brightness control (a proposed new scheme
for more compactly specifying auto-brightness levels
in config.xml).
- Button / keyboard backlight control.
- Change window manager to associated WorkSource with
KEEP_SCREEN_ON_FLAG wake lock instead of talking
directly to the battery stats service.
- Optionally support animating screen brightness when
turning on/off instead of playing electron beam animation
(config_animateScreenLights).

Change-Id: I1d7a52e98f0449f76d70bf421f6a7f245957d1d7
/frameworks/base/core/java/android/app/ContextImpl.java
756220bd1912535840388a6743830d2e59ad4964 15-Aug-2012 Dianne Hackborn <hackbod@google.com> Add API to create new contexts with custom configurations.

This allows you to, say, make a Context whose configuration
is set to a different density than the actual density of the device.

The main API is Context.createConfigurationContext(). There is
also a new API on ContextThemeWrapper that allows you to apply
an override context before its resources are retrieved, which
addresses some feature requests from developers to be able to
customize the context their app is running in.

Change-Id: I88364986660088521e24b567e2fda22fb7042819
/frameworks/base/core/java/android/app/ContextImpl.java
258848d2ae04f447ff1c18023fa76b139fcc0862 11-Aug-2012 Amith Yamasani <yamasani@google.com> User Manager service to manage users and query user details

Moved a bunch of methods from PackageManager to UserManager.

Fix launching of activities from recents to correct user.

Guest creation APIs

Change-Id: I0733405e6eb2829675665e225c759d6baa2b708f
/frameworks/base/core/java/android/app/ContextImpl.java
8264408f5995534f8e3147b001664ea0df52aaa5 03-Aug-2012 Amith Yamasani <yamasani@google.com> Start the correct settings from the status bar.

Added a new method to Context: startActivityAsUser() requiring the
INTERACT_ACROSS_USERS_FULL permission.

Show the correct Recents list, based on current user.
Added a getRecentTasksForUser() in ActivityManager. Hidden and requires
the INTERACT_ACROSS_USERS_FULL permission.

Change-Id: If5b56465efdd3ead36601a3b51ed4af157bbf35c
/frameworks/base/core/java/android/app/ContextImpl.java
7d19e0242faac8017033dabb872cdf1542fa184c 08-Aug-2012 Dianne Hackborn <hackbod@google.com> More mult-user API work.

- You can now use android:singleUser with receivers and providers.
- New API to send ordered broadcasts as a user.
- New Process.myUserHandle() API.

For now I am trying out "user handle" as the name for the numbers
representing users.

Change-Id: I754c713ab172494bb4251bc7a37a17324a2e235e
/frameworks/base/core/java/android/app/ContextImpl.java
b4163a6e12ee7100c758c6d3d062ade1f2843fce 03-Aug-2012 Dianne Hackborn <hackbod@google.com> Add APIs for interacting across users.

- Expose the existing Context.sendBroadcast() as
Context.sendBroadcastAsUser().
- Add new android:singleUser attribute for services.
- Add new INTERACT_ACROSS_USERS_FULL permission for full
system-level access to cross-user interface (allows
sendBroadcastAsUser() to send to any receiver).
- Add new INTERACT_ACROSS_USERS_FULL permission for
more restricted cross-user interaction: this is required
for android:singleUser, and allows you to use
sendBroadcastAsUser() but only to send to your own
receivers.

Change-Id: I0de88f6718e9505f4de72e3f45d29c0f503b76e9
/frameworks/base/core/java/android/app/ContextImpl.java
fa25bf5382467b1018bd9af7f1cb30a23d7d59f7 24-Jul-2012 Jeff Brown <jeffbrown@google.com> Add display manager skeleton.

The purpose of this change is to remove direct reliance on
SurfaceFlinger for describing the size and characteristics of
displays.

This patch also starts to make a distinction between logical displays
and physical display devices. Currently, the window manager owns
the concept of a logical display whereas the new display
manager owns the concept of a physical display device.

Change-Id: I7e0761f83f033be6c06fd1041280c21500bcabc0
/frameworks/base/core/java/android/app/ContextImpl.java
cba4d388201958449ca96d49a8a277ca0f47cf8d 25-Jul-2012 Irfan Sheriff <isheriff@google.com> Merge "Update WifiManager API"
88759bbd31e05a4163e1f8e72804ca83000afd53 03-Jul-2012 Irfan Sheriff <isheriff@google.com> Update WifiManager API

Use feedback based on NSD to update WifiManager API

Change-Id: I0c1dc74f7e2fa7cd697a995b7194e3e0366d7981
/frameworks/base/core/java/android/app/ContextImpl.java
d32460c5b7bea7b06e345397fdbaca58d9732dcf 21-Jul-2012 Jeff Brown <jeffbrown@google.com> Refactor local window manager implementation.

The objective of this refactoring is to remove the reliance on
WindowManager wrapper objects for compatibility mode and for
managing sub-windows.

Removed the WindowManager.isHardwareAccelerated() method since
it is never used.

Change-Id: I4840a6353121859a5e0c07d5cc307a437c595d63
/frameworks/base/core/java/android/app/ContextImpl.java
3a6794cad739c2b6fcc9b3fc6c4461f88728af8a 17-Jul-2012 Matthew Xie <mattx@google.com> Merge "Changes to Bluetooth Service structure."
e0fd693c6098f59004f9e96ad75c058e26c337b0 11-Jul-2012 Nick Pelly <npelly@google.com> Improve geofencing: throttle location updates with distance to fence.

Previously any geofence (proximity alert) would turn the GPS on at full rate.
Now, we modify the GPS interval with the distance to the nearest geofence.
A speed of 100m/s is assumed to calculate the next GPS update.

Also
o Major refactor of geofencing code, to make it easier to continue to improve.
o Discard proximity alerts when an app is removed.
o Misc cleanup of nearby code. There are other upcoming changes
that make this a good time for some house-keeping.

TODO:
The new geofencing heuristics are much better than before, but still
relatively naive. The next steps could be:
- Improve boundary detection
- Improve update thottling for large geofences
- Consider velocity when throttling

Change-Id: Ie6e23d2cb2b931eba5d2a2fc759543bb96e2f7d0
/frameworks/base/core/java/android/app/ContextImpl.java
1abb1cb3a8fe17f7866150604c2fd73751da787e 26-Jan-2012 Jaikumar Ganesh <jaikumar@google.com> Changes to Bluetooth Service structure.

Changes to make Bluetooth Service part of the system_service.
These changes may be temporary.

Changes to update to the new disable API.

Change-Id: If89dba17e6e6c6daa53c37684221763a2da076e9

Conflicts:

services/java/com/android/server/pm/PackageManagerService.java
/frameworks/base/core/java/android/app/ContextImpl.java
f8fd7ef97895524a0ce5735e19654549cb295cda 19-Jun-2012 Christopher Tate <ctate@google.com> Merge "Fail immediately if bindService() is passed a null ServiceConnection"
79b3317b775810bac088b0998c48eb6506e2578c 18-Jun-2012 Christopher Tate <ctate@google.com> Fail immediately if bindService() is passed a null ServiceConnection

Or if unbindService() is passed one, naturally.

Change-Id: Ib7f1f0b5e12c04e3affbcc9008612801081819d5
/frameworks/base/core/java/android/app/ContextImpl.java
b58b8f832d06b0ffa8886eba5a4916578a3b8743 12-Jun-2012 Dianne Hackborn <hackbod@google.com> Rework media router to be per-context with global process state.

Change-Id: Ic1cb6f13e691d22783bcdafae85b7c75aec0a66f
/frameworks/base/core/java/android/app/ContextImpl.java
6ae8d1821822296df0606c9cd1c46708cc21cb58 23-May-2012 Dianne Hackborn <hackbod@google.com> Fix (mostly) issue #5109947: Race condition between retrieving a...

...content provider and updating its oom adj

This introduces the concept of an "unstable" reference on a content
provider. When holding such a reference (and no normal stable ref),
the content provider dying will not cause the client process to be
killed.

This is used in ContentResolver.query(), .openAssetFileDescriptor(),
and .openTypedAssetFileDescriptor() to first access the provider
with an unstable reference, and if at the point of calling into the
provider we find it is dead then acquiring a new stable reference
and doing the operation again. Thus if the provider process dies
at any point until we get the result back, our own process will not
be killed and we can safely retry the operation.

Arguably there is still the potential for a race -- if somehow the
provider is killed way late by the OOM killer after the query or
open has returned -- but this should now be *extremely* unlikely.
We also continue to have the issue with the other calls, but these
are much less critical, and the same model can't be used there (we
wouldn't want to execute two insert operations for example).

The implementation of this required some significant changes to the
underlying plumbing of content providers, now keeping track of the
two different reference counts, and managing them appropriately. To
facilitate this, the activity manager now has a formal connection
object for a client reference on a content provider, which hands to
the application when opening the provider.

These changes have allowed a lot of the code to be cleaned up and
subtle issues closed. For example, when a process is crashing, we
now have a much better idea of the state of content provider clients
(olding a stable ref, unstable ref, or waiting for it to launch), so
that we can correctly handle each of these.

The client side code is also a fair amount cleaner, though in the
future there is more than should be done. In particular, the two
ProviderClientRecord and ProviderRefCount classes should be combined
into one, part of which is exposed to the ContentResolver internal
API as a reference on a content provider with methods for updating
reference counts and such. Some day we'll do that.

Change-Id: I87b10d1b67573ab899e09ca428f1b556fd669c8c
/frameworks/base/core/java/android/app/ContextImpl.java
652b6d1e591f6684cda4b93d4712920f287991b4 10-May-2012 Dianne Hackborn <hackbod@google.com> Add infrastructure for accessing "unstable" content providers.

We have an API and some stuff that purports to this, but no real
implementation yet.

Change-Id: I93555440014a50fdf79fa3f65318d90fb82265b4
/frameworks/base/core/java/android/app/ContextImpl.java
22af38c5261d2c03796b496e6edb125327cace16 04-May-2012 Irfan Sheriff <isheriff@google.com> API review fixes

- Remove the notion of channel from an application perspective
- Remove the use of DnsSd as part of API and add a protocol type to allow
future extensions
- Use the listener object as a handler for stop and unregister operations. Also,
we now allow multiple active discovery operations.
- Remove init/deinit operations in favour of setting up construction

Bug:6434844
Change-Id: Id15521d571aac9c4053d81184ad66dfc54f636de
/frameworks/base/core/java/android/app/ContextImpl.java
816e4f758302aaf3b115b5914d48732ed78af946 23-Apr-2012 Jeff Sharkey <jsharkey@android.com> System context should inherit base package name.

Otherwise registerReceiver() from views inflated with the returned
context will throw (like DateTimeView).

Bug: 6376149
Change-Id: I038a680e49fba81bbebfc8c0c94f15e7cd072f33
/frameworks/base/core/java/android/app/ContextImpl.java
25157e458d6e10b027d1ba6b78b0487156c9f57a 16-Apr-2012 Jeff Brown <jeffbrown@google.com> Refactor SensorManager to move non-API bits into a subclass.

Changed the SensorManager class so that it only contains API-related
bits including what's needed to support legacy sensors. Mostly just
moved stuff around. Making the class abstract is safe because
it does not have a visible constructor in the API.

One minor change is that the cache of sensor type to sensor lists
is now per instance of SensorManager instead of being static.
We can fix this if desired.

Another small change is that we bail out early from registerListener
if the listener has already been registered for the particular
sensor. This happened for both legacy and standard listeners.
The problem is that the ListenerDelegate maintains two lists of
sensors, one is a Map and the other is a List. Adding a sensor
twice causes one entry to be added to the Map and two entries to be
added to the List, but when the sensor is removed the next time, only
one entry is removed from the List, leaving it in an inconsistent
state.

Removed Sensor.getLegacyType() since the value it provides is only
needed in LegacyListener and we don't really save any significant
computation by caching it. Removing the field makes support for
legacy sensors a little more self-contained.

Bug: 6339552
Change-Id: I50d41ac97cf535924f2bfa2026d28547a4d00286
/frameworks/base/core/java/android/app/ContextImpl.java
c2346134bb519a54d50655cbef940fc3fdec60a9 13-Apr-2012 Jeff Brown <jeffbrown@google.com> Extract Vibrator implementation from interface.

Moved the core logic of Vibrator into SystemVibrator, potentially
allowing for the creation of other Vibrator subclasses.

Fixed several places where we were creating new Vibrator
instances unnecessarily instead of getting it from the Context.

It is safe to make Vibrator abstract because its constructor
was hidden from the SDK so it was not possible to subclass it.

Bug: 6334179
Change-Id: I18ece6544c26a7efb2d5099f8346a10aef8a5e18
/frameworks/base/core/java/android/app/ContextImpl.java
9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f 10-Apr-2012 Jeff Brown <jeffbrown@google.com> Request key maps from input manager service.

Instead of each application loading the KeyCharacterMap from
the file system, get them from the input manager service as
part of the InputDevice object.

Refactored InputManager to be a proper singleton instead of
having a bunch of static methods.

InputManager now maintains a cache of all InputDevice objects
that it has loaded. Currently we never invalidate the cache
which can cause InputDevice to return stale motion ranges if
the device is reconfigured. This will be fixed in a future change.

Added a fake InputDevice with ID -1 to represent the virtual keyboard.

Change-Id: If7a695839ad0972317a5aab89e9d1e42ace28eb7
/frameworks/base/core/java/android/app/ContextImpl.java
ac14351e16e1258f1cb54e2bf772b8be004eb2b8 06-Apr-2012 Jeff Brown <jeffbrown@google.com> Move some APIs from window manager to input manager.

Simplified input injection API down to just one call.

Removed all input state reading API. It was only used by the
window manager policy and required a permission that applications
could not obtain. READ_INPUT_STATE is now unused and deprecated.

Change-Id: I41278141586ddee9468cae0fb59ff0dced6cbc00
/frameworks/base/core/java/android/app/ContextImpl.java
23b871d7147de910b53646cdb987e28dac0df927 06-Apr-2012 Jeff Brown <jeffbrown@google.com> Merge "Initial commit of InputManager and keyboard layout API."
9df6e7a926ce480baf70e97ee1b9ea387193f6ad 05-Apr-2012 Jeff Brown <jeffbrown@google.com> Initial commit of InputManager and keyboard layout API.

Added a new InputManager service for interacting with input
devices and configuring them. This will be the focus of
an upcoming refactoring.

Added an API for registering keyboard layouts with the system
based on the use of a broadcast receiver. Applications can
register their own keyboard layouts simply by declaring a
broadcast receiver in their manifests.

Added the skeleton of a package that will ultimately contain
the keyboard layouts and other input device related resources
that are part of the base system.

Bug: 6110399
Change-Id: Ie01b0ef4adbd5198f6f012e73964bdef3c51805c
/frameworks/base/core/java/android/app/ContextImpl.java
7d024d372431effc87168afdc7cbe387680c4935 23-Mar-2012 Irfan Sheriff <isheriff@google.com> Add initial framework for DNS service discovery

Change-Id: I53c0b7ebfd75e520ebb7553612f1aa8413b6b79b
/frameworks/base/core/java/android/app/ContextImpl.java
47847f3f4dcf2a0dbea0bc0e4f02528e21d37a88 23-Mar-2012 Jeff Brown <jeffbrown@google.com> Support enabling WAL using a flag when DB is opened.

Using enableWriteAheadLogging() to enable WAL is inefficient because
we previously disabled WAL mode when the database was opened.
Switching from WAL to PERSIST then back to WAL is inefficient
and could slow down application launch time. It would be better
to leave the database in WAL mode when we open it to begin with.

To do that, we need to know ahead of time whether we will want to
have WAL enabled for the newly opened database.

Using this flag also reduces the chance that we will encounter
an error enabling WAL mode due to there being other open connections
to the database.

Bug: 6124556
Change-Id: I38ec7a528baeda9f1ef77e25e88b3ca4b6296200
/frameworks/base/core/java/android/app/ContextImpl.java
a4972e951bf2bdb7afdafee95b3ab0c15b8bacae 14-Mar-2012 Dianne Hackborn <hackbod@google.com> Add new "options" argument to all startActivity APIs.

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

Change-Id: I4eb6f27275cdd4bf186f6da316ab93a2372ad4b7
/frameworks/base/core/java/android/app/ContextImpl.java
79087e4b967d8af26c488c41b8c1a087a12da84d 02-Mar-2012 Jeff Brown <jeffbrown@google.com> Add an API for deleting databases.

Add SQLiteDatabase.deleteDatabase to delete a database and all
of its auxiliary files.

This method is also used by Context.deleteDatabase and resolves issues
where auxiliary files would get left behind.

Bug: 5972489
Change-Id: I3633b9b4978972a1d240ac0a9861420ecf989149
/frameworks/base/core/java/android/app/ContextImpl.java
67cf7d314b5b94db1a9f1c57140b6615b0ea8291 16-Feb-2012 Amith Yamasani <yamasani@google.com> Fix Power Control widget

Some changes in AppWidgetService were interfering with widget permissions.

Added some hidden methods in Context to communicate the requesting user
information instead of using the calling uid.

Bug: 6019296
Change-Id: I5e519fd3fbbfa5b3fcc5c297b729c671dac8e7c7
/frameworks/base/core/java/android/app/ContextImpl.java
37ce3a8af6faab675319d0803b288ab1dddc76be 06-Feb-2012 Amith Yamasani <yamasani@google.com> Multi-user - wallpaper service

- Allow each user to have their own wallpaper (live or static).
- Migrate old wallpaper on upgrade.
- Update SystemBackupAgent to backup/restore from primary user's
new wallpaper directory.

Reduce dependency on Binder.getOrigCallingUser() by passing the
userId for bindService.

Change-Id: I19c8c3296d3d2efa7f28f951d4b84407489e2166
/frameworks/base/core/java/android/app/ContextImpl.java
b01e8bf57b7492b77e3445db51471edcbadda75e 30-Aug-2011 Mike Lockwood <lockwood@android.com> New Serial Manager API:

SerialManager: provides access to serial ports
SerialPort: for reading and writing data to and from serial ports

IO with both array based and direct ByteBuffers is supported.

Accessing serial ports requires android.permission.SERIAL_PORT permission

Each platform must configure list of supported serial ports in the
config_serialPorts resource overlay
(this is needed to prevent apps from accidentally accessing the bluetooth
or other system UARTs).

In addition, the platform uevent.rc file must set the owner to the
/dev/tty* files to "system" so the framework can access the port.

Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/core/java/android/app/ContextImpl.java
742a67127366c376fdf188ff99ba30b27d3bf90c 04-May-2011 Amith Yamasani <yamasani@google.com> Multi-user - 1st major checkin

Switching activity stacks
Cache ContentProvider per user
Long-press power to switch users (on phone)

Added ServiceMap for separating services by user
Launch PendingIntents on the correct user's uid
Fix task switching from Recents list
AppWidgetService is mostly working.

Commands added to pm and am to allow creating and switching profiles.

Change-Id: I15810e8cfbe50a04bd3323a7ef5a8ff4230870ed
/frameworks/base/core/java/android/app/ContextImpl.java
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
/frameworks/base/core/java/android/app/ContextImpl.java
6e90a362bc66cc67b1beae27b21d3f0148403b08 15-Aug-2011 Adam Powell <adamp@google.com> Fix bug 5159736 - Make DeviceDefault the default

Have the framework refer to the DeviceDefault themes for ICS apps that
don't explicitly request another theme.

Change-Id: I27dd0bbaa60f71df4f36e47d260f556d923ba075
/frameworks/base/core/java/android/app/ContextImpl.java
c68c913d357e2955d4bd7ca52829071e531c7825 29-Jul-2011 Dianne Hackborn <hackbod@google.com> Various work on out of memory managment.

- Improve how we handle processes that have shown UI, to take care
of more cases where we want to push them into the background LRU
list.
- New trim memory level for when an application that has done UI
is no longer visible to the user.
- Add APIs to get new trim memory callback.
- Add a host of new bind flags to tweak how the system will adjust
the OOM level of the target process.

Change-Id: I23ba354112f411a9f8773a67426b4dff85fa2439
/frameworks/base/core/java/android/app/ContextImpl.java
55bc5f3e0408bcb5a39a6732de0b2d1aa99a55be 24-Jun-2011 repo sync <isheriff@google.com> Updated: Wi-Fi p2p framework

First stage. Get the bones in right now even though
we are not ready on the native side.

Once, we have things underneath working - we will further update the
framework

Change-Id: I4a7dab5cd4267373dc5f8989ae4122f91c384ed5
/frameworks/base/core/java/android/app/ContextImpl.java
988323c57bd25a58f05dfa492d9b9c8ab62c5153 22-Jun-2011 satok <satok@google.com> Create TextServiceManager and SpellCheckerService

Bug: 4176026

This CL inherits https://android-git.corp.google.com/g/112600

Spec of TextServiceManager
- Chooses the most applicable TextService(e.g. SpellCheckerService, WordBreakIteratorService..)
for each locale

Spec of SpellCheckerService
- Returns whether the given string is a correct word or not
- Returns Suggestions for the given string

Change-Id: Iaa425c7915fe70767ad0b17bf6c6fbcd2a1200b2
/frameworks/base/core/java/android/app/ContextImpl.java
10e89712863f5b91a2982dc1783fbdfe39c1485d 09-Jul-2011 Jeff Brown <jeffbrown@google.com> Eliminate single-process mode.
Bug: 5010576

Change-Id: Id450dc83efed4897d1e4ff451530fed14457aace
/frameworks/base/core/java/android/app/ContextImpl.java
6c418d585e0a91054b168fde3130188afd006c98 29-Jun-2011 Dianne Hackborn <hackbod@google.com> Fix issue #4902856: Don't let apps register non-explicit PendingIntents

Location manager now checks for such intents, and logs a warning when
they are given to it. Nothing thrown yet, it needs to check the
targetSdkVersion of the caller somehow.

When sending the pending intent, we require that the recipient hold the
appropriate permission. This should pretty much close the security hole.

Includes a bunch of infrastructure in the activity manager needed to
support all this.

Change-Id: I4dba7a98a7b8bbb9e347666451aa9cb1efad1848
/frameworks/base/core/java/android/app/ContextImpl.java
8969d9924c662ab4cdacc342bbdc33756db730be 22-Jun-2011 satok <satok@google.com> Revert "Create TextServiceManager and SpellCheckerService"

This reverts commit eaddb894865a804279659b4aad6364a34ab50beb.
/frameworks/base/core/java/android/app/ContextImpl.java
eaddb894865a804279659b4aad6364a34ab50beb 01-Jun-2011 satok <satok@google.com> Create TextServiceManager and SpellCheckerService

Bug: 4176026

Spec of TextServiceManager
- Chooses the most applicable TextService(e.g. SpellCheckerService, WordBreakIteratorService..)
for each locale

Spec of SpellCheckerService
- Returns whether the given string is a correct word or not
- Returns Suggestions for the given string

Change-Id: Ia25e7b4f308778891929e31b8cbd741f6848cce4
/frameworks/base/core/java/android/app/ContextImpl.java
1a303953589fdddf21d88b8fa660136f5b060d0d 16-Jun-2011 Jeff Sharkey <jsharkey@android.com> DownloadManager flags for network policy.

Handful of DownloadManager flags to record when a download was paused
because of NetworkPolicyManager rules.

Change-Id: I99fc47f529cb6c8a42dbeca049e0cd0f1556eac4
/frameworks/base/core/java/android/app/ContextImpl.java
5fd2169eabd77e6bfafaf456e58051a3bafb2bca 07-Jun-2011 Dianne Hackborn <hackbod@google.com> Work on issue #4518815: Compatibility mode introduces compatibility regression...

...for Market App iRunner

There were a lot of serious issues with how we updated (or often didn't update)
the display and resource state when switching compatibility mode in conjunction
with restarting and updating application components. This addresses everything
I could find.

Unfortunately it does *not* fix this particular app. I am starting to think this
is just an issue in the app. This change does fix a number of other problems
I could repro, such as switching the compatibility mode of an IME.

Also a few changes here and there to get rid of $#*&^!! debug logs.

Change-Id: Ib15572eac9ec93b4b9966ddcbbc830ce9dec1317
/frameworks/base/core/java/android/app/ContextImpl.java
81e56d535c853d73ff537357da5b935f51cb779d 26-May-2011 Dianne Hackborn <hackbod@google.com> Rework how we decide whether to use system or status bar.

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

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

Change-Id: I82dfcc5e327e4d13d82c373c6c870f557a99b757
/frameworks/base/core/java/android/app/ContextImpl.java
5be8de3420ba4c9d816b98e29bdec11715f6b626 25-May-2011 Dianne Hackborn <hackbod@google.com> More compatibility mode improvements.

We now correctly adjust display metrics, fixing for example issues
seen in Barcode Scanner. In addition the decision about when to use
compatibility mode has a bug fixed where certain apps would not go
out of compatibility mode even though they should be able to.

Change-Id: I5971206323df0f11ce653d1c790c700f457f0582
/frameworks/base/core/java/android/app/ContextImpl.java
e2515eebf42c763c0a2d9f873a153711778cfc17 28-Apr-2011 Dianne Hackborn <hackbod@google.com> Better compat mode part one: start scaling windows.

First step of improving app screen size compatibility mode. When
running in compat mode, an application's windows are scaled up on
the screen rather than being small with 1:1 pixels.

Currently we scale the application to fill the entire screen, so
don't use an even pixel scaling. Though this may have some
negative impact on the appearance (it looks okay to me), it has a
big benefit of allowing us to now treat these apps as normal
full-screens apps and do the normal transition animations as you
move in and out and around in them.

This introduces fun stuff in the input system to take care of
modifying pointer coordinates to account for the app window
surface scaling. The input dispatcher is told about the scale
that is being applied to each window and, when there is one,
adjusts pointer events appropriately as they are being sent
to the transport.

Also modified is CompatibilityInfo, which has been greatly
simplified to not be so insane and incomprehendible. It is
now simple -- when constructed it determines if the given app
is compatible with the current screen size and density, and
that is that.

There are new APIs on ActivityManagerService to put applications
that we would traditionally consider compatible with larger screens
in compatibility mode. This is the start of a facility to have
a UI affordance for a user to switch apps in and out of
compatibility.

To test switching of modes, there is a new variation of the "am"
command to do this: am screen-compat [on|off] [package]

This mode switching has the fundamentals of restarting activities
when it is changed, though the state still needs to be persisted
and the overall mode switch cleaned up.

For the few small apps I have tested, things mostly seem to be
working well. I know of one problem with the text selection
handles being drawn at the wrong position because at some point
the window offset is being scaled incorrectly. There are
probably other similar issues around the interaction between
two windows because the different window coordinate spaces are
done in a hacky way instead of being formally integrated into
the window manager layout process.

Change-Id: Ie038e3746b448135117bd860859d74e360938557
/frameworks/base/core/java/android/app/ContextImpl.java
3a68b8338b431eb15d28e92f06452efbbda9493e 08-Mar-2011 Mike Lockwood <lockwood@android.com> USB: Add API and dialog for apps to request permissions for USB devices and accessories

New APIs:

UsbManager.hasPermission returns true if the caller has permission
for the given device or accessory

UsbManager.requestPermission poses a dialog to allow the user to give the caller
permission for the device or accessory.
Result is returned via a PendingIntent.
No dialog is displayed if the caller already has permission.

Also moved UsbResolverActivity to SystemUI package

BUG: 4069037

Change-Id: I93be769501a8776b49ac26e468af19f8fa2114c9
/frameworks/base/core/java/android/app/ContextImpl.java
c4308f01c965571dc2354107c3574df113e397ee 01-Mar-2011 Mike Lockwood <lockwood@android.com> Move USB framework support from android.hardware to android.hardware.usb package

Change-Id: I00fd4f0caaa4aebe48f71c576bb211b5f38bf88d
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/core/java/android/app/ContextImpl.java
e7d511e148bc901ef41ac44d7b3593e5d803f72f 30-Dec-2010 Mike Lockwood <lockwood@android.com> New APIs for USB host support:

UsbManager:
- is now a service retrievable via Context.getSystemService(Context.USB_SERVICE).
- provides support for returning a list all connected USB devices
- broadcasts ACTION_USB_DEVICE_ATTACHED and USB_DEVICE_DETACHED when devices
are added and removed from the USB host bus

UsbDevice:
- represents an attached USB device.

UsbInterface:
- represents an interface on a USB device
- devices may have multiple interfaces if they provide multiple
sets of functionality (for example, android phones typically have interfaces
for both USB mass storage and adb)

UsbEndpoint:
- represents an endpoint on a USB interface
- endpoints are used for sending or receiving data
(only in one or the other direction)

UsbRequest:
- encapsulates a send or receive request to be sent over an endpoint

Change-Id: Ieef3e434c62760770ea839070cf5eba1a705967a
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/core/java/android/app/ContextImpl.java
805fd7ee0e5dc2939e85c84f78d9890a51982bc0 17-Jan-2011 Dianne Hackborn <hackbod@google.com> Add API to get path to OBBs.

Also hide the bitmap thumbnail stuff, we can't support it in its
current form.

And fix some bugs with propagating paths to native code. Yikes!

Change-Id: I13ab37ddbdba5c073489cba5eab035117d3c1574
/frameworks/base/core/java/android/app/ContextImpl.java
d922ae01ca99a2b6d39a9393f86776a1d10ebd14 14-Jan-2011 Dianne Hackborn <hackbod@google.com> Add Holo theme for IMEs.

Also clean up theme selection code to get rid of duplication.

Change-Id: Idf7b21db70ee83fce24756ead877169bd08b77a9
/frameworks/base/core/java/android/app/ContextImpl.java
247fe74c934cb3fba85aae7e051a8044f460fb11 09-Jan-2011 Dianne Hackborn <hackbod@google.com> Implement issue # 3255887 could CursorLoader offer...

...to throttle contentobserver-based requeries

Why yes, I guess it could.

This also reworks AsyncTaskLoader to not generate multiple
concurrent tasks if it is getting change notifications before
the last background task is complete.

And removes some of the old APIs that had been deprecated but
need to be gone for final release.

And fixes a few little problems with applying the wrong theme
in system code.

Change-Id: Ic7a665b666d0fb9d348e5f23595532191065884f
/frameworks/base/core/java/android/app/ContextImpl.java
4e920f70f38d52d3a74c6a3133388a2e2cb6c175 14-Dec-2010 Brad Fitzpatrick <bradfitz@android.com> Add MODE_MULTI_PROCESS flag to Context.getSharedPreferences()

Also, changes to make this testable with CTS:

-- special PENALTY_DEATH StrictMode fast path that doesn't use
the Looper idling to "time" the violation. Only used when
death is the only violation,

-- make PENALTY_DEATH throw a RuntimeException instead of
killing its process with a signal. this means we can catch
it in CTS tests, but it's also more consistent with
PENALTY_NETWORK_DEATH in Honeycomb.

-- make FileUtils.getFileStatus() invoke StrictMode, which isn't
(yet?) aware of I/O in native code. so help it out.

CTS test for MODE_MULTI_PROCESS is in I6154edab

Change-Id: Icf93f9dfb0ece06b16781e4803dd2c17df3cf1b3
/frameworks/base/core/java/android/app/ContextImpl.java
d250746716305717d7cde64032d2d25cda14e6c9 13-Dec-2010 Nick Pelly <npelly@google.com> resolved conflicts for merge of 1d0d1188 to master

Change-Id: I80413d5a54a0284ab6f685c4c6197a2c009ea717
1d0d1188d71ed086b3910cfe1d244fdeee47f182 11-Dec-2010 Nick Pelly <npelly@google.com> am ae56a851: Merge "Make getSystemService(NFC_SERVICE) the NFC entry point." into gingerbread

* commit 'ae56a851624c2b2e78da8a2c339d2caa64c4f981':
Make getSystemService(NFC_SERVICE) the NFC entry point.
50b4d8f643f31b37e9872f562fb869059cf79c8a 08-Dec-2010 Nick Pelly <npelly@google.com> Make getSystemService(NFC_SERVICE) the NFC entry point.

This gives NFC service a handle to the application context.

Deprecate NfcAdapter.getDefaultAdapter(), it does not provide a context.
Using this method will print a warning, and will later throw an exception
if a method that requires a context is called. No 2.3 API's will fail, but
new API's that do require a context might fail.

Also add helper NfcAdapter.getDefaultAdapter(Context).

Change-Id: I9a6378de4ef4b61ad922f8d53e64e2a1a1d5d60c
/frameworks/base/core/java/android/app/ContextImpl.java
4cd50b8d76e08d75df1a2e9d4902bcdc880bd1c1 02-Dec-2010 Brad Fitzpatrick <bradfitz@android.com> Make getSharedPreference() async, blocking on first access.

Bug: 3177046
Change-Id: Ibc36a1e196afd39c4f9da513a2bf4ba9e2c72177
/frameworks/base/core/java/android/app/ContextImpl.java
7e5cd7968356ea111988a372095e352d76476994 01-Dec-2010 Brad Fitzpatrick <bradfitz@android.com> am 981a72a1: Merge "[don\'t auto-merge] Don\'t re-read SharedPreferences unnecessarily." into gingerbread

* commit '981a72a1506f7e6e42747b9aa0be2001795c6619':
[don't auto-merge] Don't re-read SharedPreferences unnecessarily.
d2bbaaf2948c362e82aa9f1c8e02a6092235c021 30-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> [don't auto-merge] Don't re-read SharedPreferences unnecessarily.

Bug: 3211034
Bug: 3216290
Change-Id: Idd5cc25965d400f20122372ca1cf47d4703dd87c
/frameworks/base/core/java/android/app/ContextImpl.java
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
/frameworks/base/core/java/android/app/ContextImpl.java
5913630ec9686f4640a90b6872318e11fb5d9120 20-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> Don't re-read SharedPreferences unnecessarily.

Previously reads were only cached once a write occurred because
loading didn't set the stat metadata, thus the
sp.hasFileChangedUnexpectedly() check always fired on reading.

Now the initial read populates the stat info, so getSharedPreference()
repeatedly bypasses reading from disk, even wtihout writes.

This was probably a regression from apply() being added in
Gingerbread.

Bug: 3211034
Change-Id: Ifa0bbb27c53a4099544950a4f822fab1fc23a47d
/frameworks/base/core/java/android/app/ContextImpl.java
224ba0cd065075718947844b117c9fe50a2d9993 12-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> Clean up, de-dup, and speed up ContextImpl getSystemService()

Bug: 3191436
Change-Id: I343adc016e02d0414b2d48a14e5e62a5cccb7899
/frameworks/base/core/java/android/app/ContextImpl.java
390dae1a8b8c2da6a24f3246c8c277645bcc75dc 10-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> Move ApplicationPackageManager out of ContextImpl.java

Change-Id: I706bce3fc4a5c7e6ee351d677899a01ac222960c
/frameworks/base/core/java/android/app/ContextImpl.java
d3da44032084b6dd280487280553dcdbd7933e3e 10-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> Move SharedPreferencesImpl out of ContextImpl.java

Change-Id: I3a58ec4c9501e906c133e841b5c5ec6bced04a02
/frameworks/base/core/java/android/app/ContextImpl.java
ec062f63a2f5fb49f825544da348e594dbf5bf3c 03-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> StrictMode: now in more system server threads.

Who knew there were so many Loopers in the system server?

This adds dropbox logging for the activity manager thread, policy
thread, and window manager thread.

The goal's to catch more stuttering.

Change-Id: I999a6ff4a955f0ef549b12a38796b843ade5fe66
/frameworks/base/core/java/android/app/ContextImpl.java
170e548ac839b268beee208e95fc497b34fde1ba 29-Oct-2010 Joe Onorato <joeo@google.com> use the holo theme in more places for >= honeycomb apps

Change-Id: Iad2bd65eaf203df458ea689144538b7a51beb4b3
/frameworks/base/core/java/android/app/ContextImpl.java
875ecaa511ce36c8044ccdf48ee2a3e69dd633fe 18-Oct-2010 Dianne Hackborn <hackbod@google.com> am 13e46665: am 736f5ec4: Merge "Work on issue #3101415: Crespo apps seem to have their UID changed over time." into gingerbread

Merge commit '13e46665ff69c1a37880762d7d611aacdf02dac7'

* commit '13e46665ff69c1a37880762d7d611aacdf02dac7':
Work on issue #3101415: Crespo apps seem to have their UID changed over time.
13e46665ff69c1a37880762d7d611aacdf02dac7 16-Oct-2010 Dianne Hackborn <hackbod@google.com> am 736f5ec4: Merge "Work on issue #3101415: Crespo apps seem to have their UID changed over time." into gingerbread

Merge commit '736f5ec476526f3431d81dec5fb695bdee27e21a' into gingerbread-plus-aosp

* commit '736f5ec476526f3431d81dec5fb695bdee27e21a':
Work on issue #3101415: Crespo apps seem to have their UID changed over time.
8bdf5935c0db4a66ab33a10b43398d2523cfa15d 15-Oct-2010 Dianne Hackborn <hackbod@google.com> Work on issue #3101415: Crespo apps seem to have their UID changed over time.

fsync!

Change-Id: Ie6c5397202579935ac69bf61d3e7b3081ecf269c
/frameworks/base/core/java/android/app/ContextImpl.java
f36c6db108364dea89b1e3c27c0b15103e560d87 15-Oct-2010 Nick Pelly <npelly@google.com> NFC API revision round 2.

- Add the second half of the new NFC API: NfcAdapter, Tag, NdefTag,
RawTagConnection, NdefTagConnection.
- Add implementations for all of the new NFC API.

Change-Id: I8da9fd1d2971ed2c8b76f2a93f207fa9e305b0f6
Signed-off-by: Nick Pelly <npelly@google.com>

Conflicts:

Android.mk
CleanSpec.mk
core/java/android/app/ContextImpl.java
/frameworks/base/core/java/android/app/ContextImpl.java
6066da89a464d2bd5f002f5e687d40876ed5ce21 13-Oct-2010 Nick Pelly <npelly@google.com> am 590b73bc: NFC API revision round 2.

Merge commit '590b73bc5b8e5f7b59bff1d9264a52388a5162e6' into gingerbread-plus-aosp

* commit '590b73bc5b8e5f7b59bff1d9264a52388a5162e6':
NFC API revision round 2.
590b73bc5b8e5f7b59bff1d9264a52388a5162e6 12-Oct-2010 Nick Pelly <npelly@google.com> NFC API revision round 2.

- Add the second half of the new NFC API: NfcAdapter, Tag, NdefTag,
RawTagConnection, NdefTagConnection.
- Add implementations for all of the new NFC API.

Change-Id: I8da9fd1d2971ed2c8b76f2a93f207fa9e305b0f6
Signed-off-by: Nick Pelly <npelly@google.com>
/frameworks/base/core/java/android/app/ContextImpl.java
764437aa9e9af4990969ea5124115f3df7fb1ec1 11-Oct-2010 Brad Fitzpatrick <bradfitz@android.com> am 4216c3c3: am a4682ed7: Merge "Minor SharedPreference clean-up." into gingerbread

Merge commit '4216c3c3f75c6bd7ffa9a9279961f9ea6aa57635'

* commit '4216c3c3f75c6bd7ffa9a9279961f9ea6aa57635':
Minor SharedPreference clean-up.
38051bc01878286afd6d163079dca20600c24d01 10-Oct-2010 Brad Fitzpatrick <bradfitz@android.com> am 6a15f0d7: am 6275dbbe: Merge "Quiet unnecessary debug logging." into gingerbread

Merge commit '6a15f0d7c7ed74e086f4d3a7014ed724a2b18023'

* commit '6a15f0d7c7ed74e086f4d3a7014ed724a2b18023':
Quiet unnecessary debug logging.
4216c3c3f75c6bd7ffa9a9279961f9ea6aa57635 09-Oct-2010 Brad Fitzpatrick <bradfitz@android.com> am a4682ed7: Merge "Minor SharedPreference clean-up." into gingerbread

Merge commit 'a4682ed7547e895605d102ab17fc5c134b4ab38f' into gingerbread-plus-aosp

* commit 'a4682ed7547e895605d102ab17fc5c134b4ab38f':
Minor SharedPreference clean-up.
9acdeb99c5102f89a9a73eb4d62e38e7ac86e01c 09-Oct-2010 Brad Fitzpatrick <bradfitz@android.com> Minor SharedPreference clean-up.

Make a member final, line up some comments, and also cache the
expected stat size, not just the mtime.

Change-Id: Ifcc37bd3ab99787280e506deb682200a16da512e
/frameworks/base/core/java/android/app/ContextImpl.java
6a15f0d7c7ed74e086f4d3a7014ed724a2b18023 07-Oct-2010 Brad Fitzpatrick <bradfitz@android.com> am 6275dbbe: Merge "Quiet unnecessary debug logging." into gingerbread

Merge commit '6275dbbea8ad7bde984a362516654004e111dc67' into gingerbread-plus-aosp

* commit '6275dbbea8ad7bde984a362516654004e111dc67':
Quiet unnecessary debug logging.
90bc5ee02bd91c138f88180879c6ef748a578f47 07-Oct-2010 Brad Fitzpatrick <bradfitz@android.com> Quiet unnecessary debug logging.

Change-Id: I46d8aff5790db371d60b2066acbbdd55cfad8074
/frameworks/base/core/java/android/app/ContextImpl.java
4715bd91f5949a1919156a5a5cb50f0cccda645e 29-Sep-2010 Nick Pelly <npelly@google.com> resolved conflicts for merge of f4c3b7e9 to master

Change-Id: Idcdc521144f3072058b2bb6cb383e42c852e64f4
f4c3b7e916b417fabb468ec0a565dc79cd7ba2b3 29-Sep-2010 Nick Pelly <npelly@google.com> am 038cabe0: NFC integration

Merge commit '038cabe0247ee46df62f9363f1a303bc5b9c1028' into gingerbread-plus-aosp

* commit '038cabe0247ee46df62f9363f1a303bc5b9c1028':
NFC integration
038cabe0247ee46df62f9363f1a303bc5b9c1028 24-Sep-2010 Nick Pelly <npelly@google.com> NFC integration

Source: Trusted_NFC_Device_Host_AA03.01e02_google.zip code drop (23-Sep-2010)

Conflicts:

core/java/android/app/ApplicationContext.java
core/java/android/provider/Settings.java
core/jni/Android.mk
core/jni/AndroidRuntime.cpp
core/res/AndroidManifest.xml
include/utils/Asset.h

Change-Id: I62c92f4c79f5ee65126c97602f6bc1c15794e573
Signed-off-by: Nick Pelly <npelly@google.com>
/frameworks/base/core/java/android/app/ContextImpl.java
d58429f9acdb33f05bdb233b7bba495de80cb336 28-Sep-2010 Steve Howard <showard@google.com> Manual merge: Move DownloadManager to android.app

Changing package at hackbod's request.

Change-Id: I867017b6a9f4684d30c6c5bd1b07f9cabecddb9f
/frameworks/base/core/java/android/app/ContextImpl.java
9d9719c44ad05834b48542ea0fc4edbb4f59c311 28-Sep-2010 Steve Howard <showard@google.com> am 5bdb89d7: Merge "Move DownloadManager to android.app (DO NOT MERGE)" into gingerbread

Merge commit '5bdb89d7ac20d4d3e71660d7fe78002a63900399' into gingerbread-plus-aosp

* commit '5bdb89d7ac20d4d3e71660d7fe78002a63900399':
Move DownloadManager to android.app (DO NOT MERGE)
cca1f0e3476edd09cdd81b075a6b7780a2959b46 27-Sep-2010 Dianne Hackborn <hackbod@google.com> Allow all apps to call ContentResolver.getType().

I can't find the bug number for this, but it is needed for some things
we are doing where the app building an intent may not have access to the
URI in the data field. This is for HC, but doing in GB to avoid introducing
integration issues.

Change-Id: I0cac971854198b18775d2a73deb80f23431bfbe2
/frameworks/base/core/java/android/app/ContextImpl.java
31fd85f39b554e09b2e6c1c2ccf5c186859880fa 28-Sep-2010 Steve Howard <showard@google.com> Move DownloadManager to android.app (DO NOT MERGE)

Changing package at hackbod's request. I'll merge this manually, as
there's some additional master-only code that will be to be
simultaneously changed.

Change-Id: Ibb629ec1c31807fbee31e0193c6a941d04be0117
/frameworks/base/core/java/android/app/ContextImpl.java
c63806d852a550d82bbe6cadff8a2139d78ed559 24-Sep-2010 Adam Powell <adamp@google.com> Holo themes and assets in progress

Change-Id: Ic10480dc1c771d0ccd10f1d4014c945480fd6c0d
/frameworks/base/core/java/android/app/ContextImpl.java
a8bce7c8acb3904eb69bf21276c0ca2635c76a20 27-Sep-2010 Dianne Hackborn <hackbod@google.com> am d8691d73: Merge "Allow all apps to call ContentResolver.getType()." into gingerbread

Merge commit 'd8691d73d158acd9ffc63748126e822afd656707' into gingerbread-plus-aosp

* commit 'd8691d73d158acd9ffc63748126e822afd656707':
Allow all apps to call ContentResolver.getType().
8313fc7e94e46e5cc09f457a15a771a325b9f74f 27-Sep-2010 Dianne Hackborn <hackbod@google.com> Allow all apps to call ContentResolver.getType().

I can't find the bug number for this, but it is needed for some things
we are doing where the app building an intent may not have access to the
URI in the data field. This is for HC, but doing in GB to avoid introducing
integration issues.

Change-Id: I0cac971854198b18775d2a73deb80f23431bfbe2
/frameworks/base/core/java/android/app/ContextImpl.java
0486f78ef32dfddb51c82f12be533712a35376d8 08-Sep-2010 Brad Fitzpatrick <bradfitz@android.com> am b1657b2b: resolved conflicts for merge of 64591009 to gingerbread-plus-aosp

Merge commit 'b1657b2bd6aea0c22b48e2cdd25dcc57581a3f3d'

* commit 'b1657b2bd6aea0c22b48e2cdd25dcc57581a3f3d':
Fix a race between requesting/loading/writing SharedPreferences.
b1657b2bd6aea0c22b48e2cdd25dcc57581a3f3d 08-Sep-2010 Brad Fitzpatrick <bradfitz@android.com> resolved conflicts for merge of 64591009 to gingerbread-plus-aosp

Change-Id: Id9ebca9993f97a79cb2a6c41a7566d473ccc5b7e
6194c53754e1bae2c09267ad474d4e2f376e34c0 08-Sep-2010 Brad Fitzpatrick <bradfitz@android.com> Fix a race between requesting/loading/writing SharedPreferences.

Part of the race existed before, but it was made much worse with
apply().

Corresponding CTS test is Icc6e638a6a

Change-Id: Ic5cfa467fb7f1859cb7b44d417412219c0621965
/frameworks/base/core/java/android/app/ContextImpl.java
a14c8e0c67223fdc9a0746b370ae594a92530e78 04-Sep-2010 Romain Guy <romainguy@google.com> Bring back instances counts to dumpsys meminfo.

Change-Id: Idd846e137e8e87cb93551ba13751df60a8046eed
/frameworks/base/core/java/android/app/ContextImpl.java
2394c164a76f6d3f8ad9f1c1517f58f72adab9d7 01-Sep-2010 Dianne Hackborn <hackbod@google.com> am ec438e14: am 361199b5: Add PackageManager API to get information about a provider component.

Merge commit 'ec438e1448ebc578ee5a4c4beb1e26292cdedd6e'

* commit 'ec438e1448ebc578ee5a4c4beb1e26292cdedd6e':
Add PackageManager API to get information about a provider component.
ec438e1448ebc578ee5a4c4beb1e26292cdedd6e 01-Sep-2010 Dianne Hackborn <hackbod@google.com> am 361199b5: Add PackageManager API to get information about a provider component.

Merge commit '361199b5e742c6635d4d7a03de6cf37b31cf442c' into gingerbread-plus-aosp

* commit '361199b5e742c6635d4d7a03de6cf37b31cf442c':
Add PackageManager API to get information about a provider component.
361199b5e742c6635d4d7a03de6cf37b31cf442c 31-Aug-2010 Dianne Hackborn <hackbod@google.com> Add PackageManager API to get information about a provider component.

Kind-of useful when all you have is a ComponentName.

Change-Id: I9a99f12daabb29e97e882e09c43ca0df70c00651
/frameworks/base/core/java/android/app/ContextImpl.java
02f4f0eb4919453e8dbf40549d4ae9c05f05b8dd 31-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> am 734d2707: am bb660d7e: Merge "Renaming SharedPreferences.startCommit to apply" into gingerbread

Merge commit '734d270769c609c7d3a1f2ec46e1d329d9682ab4'

* commit '734d270769c609c7d3a1f2ec46e1d329d9682ab4':
Renaming SharedPreferences$Editor.startCommit to apply
734d270769c609c7d3a1f2ec46e1d329d9682ab4 31-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> am bb660d7e: Merge "Renaming SharedPreferences.startCommit to apply" into gingerbread

Merge commit 'bb660d7e1bed3a07a1804bd9641d9634bfaa4972' into gingerbread-plus-aosp

* commit 'bb660d7e1bed3a07a1804bd9641d9634bfaa4972':
Renaming SharedPreferences$Editor.startCommit to apply
66fce5068a8a3aeb28aaf713843891b286a75280 31-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> Renaming SharedPreferences$Editor.startCommit to apply

Also removes the artifical restriction that only one apply() can be in
flight at once. That was old from when I thought it'd end up being
required, but wasn't.

Change-Id: I3540ea8be6e0760d6a51d218186f71655c2f3f55
/frameworks/base/core/java/android/app/ContextImpl.java
7f7ce40f90cf00dc046fb9520d77d29e96b474d6 28-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> resolved conflicts for merge of 28130bae to master

Change-Id: I13df8dc12092c3d2536e12216df9130d5914380a
28130baefb4fa6d1e0ff9c92337295ba74461cf7 27-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> resolved conflicts for merge of 6b50986a to gingerbread-plus-aosp

Change-Id: I7c5ec7ae717e75ad242e2c1ad4537052e4eea718
333b8cba996c8ebb8ca55ebfc5cc536bdd64af94 26-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> SharedPreferences$Editor.startCommit()

Adds a fire-and-forget save method (startCommit) to the
SharedPreferences.Editor, which is the way most people use it anyway.

This commit adds the implementation. The previous commit added the
interface and docs:

previous change: Idf9934b445da1fb72b79f0192218b47c0a7f5a34
git commit: edf32d01316bd3432c023f17747461b08ae36375

In addition, this change:

-- adds a generic "runPendingWorkFinishers" mechanism to
ActivityThread to wait on async operations that are still
in flight and use it for this.

-- ties runPendingWorkFinishers into Activity.onPause,
BroadcastReceiver, and Service.

-- makes sSharedPreferences keyed on name, not File, to avoid
unnnecessary allocations

-- documents and guarantees what thread
OnSharedPreferenceChangeListener callbacks run on

-- makes a few things in frameworks/base use startCommit(), notably
Preference.java (which was ignoring the return value anyway)

Change-Id: I1c8db60ad45643226fe6d246d3e513eeb7bd0ebd
/frameworks/base/core/java/android/app/ContextImpl.java
4cbc4f1067503b5de62a5338478d3cad8c25bd3d 26-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> am 49209cbc: am d0e6598b: Merge "Start of SharedPreferences.startCommit()" into gingerbread

Merge commit '49209cbcef37c4b20c9d0649ba284a51144b3930'

* commit '49209cbcef37c4b20c9d0649ba284a51144b3930':
Start of SharedPreferences$Editor.startCommit()
49209cbcef37c4b20c9d0649ba284a51144b3930 26-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> am d0e6598b: Merge "Start of SharedPreferences.startCommit()" into gingerbread

Merge commit 'd0e6598b4a32f3000247341414449a3aa4d9f7f4' into gingerbread-plus-aosp

* commit 'd0e6598b4a32f3000247341414449a3aa4d9f7f4':
Start of SharedPreferences$Editor.startCommit()
edf32d01316bd3432c023f17747461b08ae36375 25-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> Start of SharedPreferences$Editor.startCommit()

No implementation yet, just the interface.

Change-Id: Idf9934b445da1fb72b79f0192218b47c0a7f5a34
/frameworks/base/core/java/android/app/ContextImpl.java
a3f641f22a1eeb64cc4daa8af635eb704e22660d 20-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> am cf2c68c9: am 11709ab0: Merge "Avoid unnecessary SharedPrefences disk writes." into gingerbread

Merge commit 'cf2c68c9c21b8af62e95374312355d22ed55e586'

* commit 'cf2c68c9c21b8af62e95374312355d22ed55e586':
Avoid unnecessary SharedPrefences disk writes.
cf2c68c9c21b8af62e95374312355d22ed55e586 18-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> am 11709ab0: Merge "Avoid unnecessary SharedPrefences disk writes." into gingerbread

Merge commit '11709ab07ca2eb97dfa3fc7bb3e0996e65908ade' into gingerbread-plus-aosp

* commit '11709ab07ca2eb97dfa3fc7bb3e0996e65908ade':
Avoid unnecessary SharedPrefences disk writes.
67fed01522ad26c850b20d2c960e4d392dc401d1 17-Aug-2010 Brad Fitzpatrick <bradfitz@android.com> Avoid unnecessary SharedPrefences disk writes.

Apps commonly edit + commit redundant changes to their
SharedPreferences, not checking the existing values. Rather than
force all apps to double-check that their settings writes aren't
redundant, we should just make .commit() faster (avoiding the disk
write) when the file already exists on disk and no effective changes
were made.

Change-Id: I7edbd0d3ace5b69b7af6d12c39797c8b7f86230b
/frameworks/base/core/java/android/app/ContextImpl.java
9f53119b72e6da865bcd53173d3dacd1eba01aee 05-Aug-2010 Dianne Hackborn <hackbod@google.com> First pass at a new clipboard API.

ClipboardManager was in android.text(!!) so it needed to be moved
up to android.content to have access to the richer data types we
now need.

ClippedData is the data representation. Still needs a lot of
fleshing out to allow holding more than one data type at a time
and perhaps conversions between them. (MIME-oriented interrogation
and conversion will be done through ContentProvider, which needs
to grow an ability to report multiple MIME types and accept a
desired MIME type when a stream is being opened.)

Change-Id: Ifa51bedcd084a677813b255d171804e8496b0cb5
/frameworks/base/core/java/android/app/ContextImpl.java
a58a8751b4c2ce457f0082a0baaee61312d56195 13-Jul-2010 Bai Tao <michaelbai@google.com> Add new system service CountryDetector

a. The CountryDetector detects the country the user is in
in order of mobile network, location, sim card or locale.
It will be used by contact and contact provider.

b. All added APIs are hidden at this stage.

Change-Id: I4ba278571ffb6ab6ded0996d4f440a18534f8ed4
/frameworks/base/core/java/android/app/ContextImpl.java
a265083890cf67b35e432506e81fb90e7cf2bff8 22-Jul-2010 Steve Howard <showard@google.com> am 5e43c5a6: am b8e07a51: DL manager support for broadcasts + connectivity control

Merge commit '5e43c5a6e8f94134850c7e3bc4c7f657e1579746'

* commit '5e43c5a6e8f94134850c7e3bc4c7f657e1579746':
DL manager support for broadcasts + connectivity control
5e43c5a6e8f94134850c7e3bc4c7f657e1579746 22-Jul-2010 Steve Howard <showard@google.com> am b8e07a51: DL manager support for broadcasts + connectivity control

Merge commit 'b8e07a51c1849d6894c5773a3daacedd01294218' into gingerbread-plus-aosp

* commit 'b8e07a51c1849d6894c5773a3daacedd01294218':
DL manager support for broadcasts + connectivity control
b8e07a51c1849d6894c5773a3daacedd01294218 21-Jul-2010 Steve Howard <showard@google.com> DL manager support for broadcasts + connectivity control

* Additions to DownloadManager to support control of broadcast intents, allowed network types, and roaming control. This includes new constants and added implementation.
* New DB columns to hold connectivity flags and one to indicate whether the download was initiated through the public API; this is used to change behavior related to broadcast intents and connectivity controls.

Change-Id: I2e8e4ce92cde7889a0f24dc43b86c596c73c0eaa
/frameworks/base/core/java/android/app/ContextImpl.java
a51eb0bb2fd9505a943a62f5f6b501fcb23b72bd 15-Jul-2010 The Android Open Source Project <initial-contribution@android.com> am 50576fa8: merge from open-source master

Merge commit '50576fa8152557a25e1a231c66d694fffbab34d6'

* commit '50576fa8152557a25e1a231c66d694fffbab34d6':
Start app with several activities with intent filter [Main, Launcher] was broken
50576fa8152557a25e1a231c66d694fffbab34d6 15-Jul-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I20cf00dba6908eeee12645e6878db7becdc2a5f9
df4cfa3664e06132c2e2cc26cade06a881f5e529 31-Mar-2010 Johan Erlandsson <johan.erlandsson@sonyericsson.com> Start app with several activities with intent filter [Main, Launcher] was broken

When an application have more than one activities with intent filter
[Main, Launcher], then the intent with ResolverActivity wasn't created correct.

Change-Id: I2617122e07c35284862d2e0643888966ec0f7221
/frameworks/base/core/java/android/app/ContextImpl.java
4c14a0f13fb9f5d796b505991e0178b60efbaccf 13-Jul-2010 Steve Howard <showard@google.com> am 47b46648: am b8d890eb: Merge "Initial implementation of the download manager public API." into gingerbread

Merge commit '47b46648b5a9b8c518b96db37618fc49c5e5f2d1'

* commit '47b46648b5a9b8c518b96db37618fc49c5e5f2d1':
Initial implementation of the download manager public API.
47b46648b5a9b8c518b96db37618fc49c5e5f2d1 13-Jul-2010 Steve Howard <showard@google.com> am b8d890eb: Merge "Initial implementation of the download manager public API." into gingerbread

Merge commit 'b8d890ebc1923d98d19d24f396442c91eb766b16' into gingerbread-plus-aosp

* commit 'b8d890ebc1923d98d19d24f396442c91eb766b16':
Initial implementation of the download manager public API.
a2709360665f77ed8bebccb2df86f08e8c83a701 03-Jul-2010 Steve Howard <showard@google.com> Initial implementation of the download manager public API.

The implementation is in android.net.DownloadManager, which is
obtained through Context.getSystemService(). Right now this class
acts as a simple wrapper on top of the existing DownloadProvider,
exposing a simple interface to a subset of DownloadProvider's
functionality. There are several TODOs for features that require
changes to the underlying download manager implementation.

Change-Id: I2f26e51b60b6e82af8478ac7ccd895667df095b6
/frameworks/base/core/java/android/app/ContextImpl.java
b92cd4fc63597a4d90ba88a5e45d3783532d6734 10-Jul-2010 The Android Open Source Project <initial-contribution@android.com> am 0260887c: merge from open-source master

Merge commit '0260887ca78330b8dd7009d91859925df94a69d6'

* commit '0260887ca78330b8dd7009d91859925df94a69d6':
Improved logging when there's an error creating the directories in getFilesDir()
0260887ca78330b8dd7009d91859925df94a69d6 10-Jul-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: Ia0dff818a574c8bc79aa79d65fd21bab9f9f6c30
511d9ec363c5bb460e4695de56edc1b7785dc7bf 09-Jul-2010 Kenny Root <kroot@google.com> am 0a21801f: am a5402dab: Merge "OBB API for PackageManager" into gingerbread

Merge commit '0a21801f5fae22cd5e1b3e9f1c1405c744e24c9b'

* commit '0a21801f5fae22cd5e1b3e9f1c1405c744e24c9b':
OBB API for PackageManager
93565c4b3265c16aee4a82d7556f811776c17db8 19-Jun-2010 Kenny Root <kroot@google.com> OBB API for PackageManager

Simple API for tracking .obb files associated with packages. Stores the
path in the PackageSettings. No verification of file content is done
now since the PackageManagerService can't read the SD card where these
files will likely live.

Change-Id: Ibeaf26ba0526b6d60f401137e58f46ee9faff39e
/frameworks/base/core/java/android/app/ContextImpl.java
5f5acca334bbff89b3801d2970d64b06e36614ba 25-Jun-2010 Christian Mehlmauer <FireFart@gmail.com> Improved logging when there's an error creating the directories in getFilesDir()

Improved logging when there's an error creating the
directories in getFilesDir();

Due to mkdirs() only returns false on errors,
it's better to output the directory path so the dev
knows the path that can not be created
See also Issue 8886
http://code.google.com/p/android/issues/detail?id=8886

Change-Id: I44d6adc8508ef9ca57f000b5d7bceeb0cfa3ed13
/frameworks/base/core/java/android/app/ContextImpl.java
36e5f667bc889a7b1bc17f9a5bd44f33b2d47020 25-Jun-2010 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 2eb12a47 to master

Change-Id: I79eb9d9f083e51ec1b99145d81632683669e7a99
01e4cfc47d0a2c7e7ab383d2fb23224ec52c0301 25-Jun-2010 Dianne Hackborn <hackbod@google.com> Some ActivityThread/ActivityManager cleanup.

- Move PackageInfo out of ActivityThread, renaming to LoadedApk.
- Rename some of the other PacakgeInfo inner classes to better
represent what they are.
- Rename HistoryRecord to ActivityRecord.
- Introduce AppGlobals, to eventually let ActivityThread become
package scoped.

Change-Id: Ib714c54ceb3cdbb525dce3db9505f31042e88cf0
/frameworks/base/core/java/android/app/ContextImpl.java
b60c941811cc15ab34fcc2f038aba56f862659b8 11-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> resolved conflicts for merge of f37cbe6b to master

Change-Id: I529b17e55b9668f900f685f92e9831e14a82db05
438d0595121a7a2cdf19741e76e3c0e21a5c173d 10-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Introduce "StrictMode"

This is a new public API for developers to opt-in to strict rules
about what they're allowed to do on certain threads. (this is the
public face of the @hide dalvik.system.BlockGuard, added recently...)

In practice this will be used for developers to opt-in to declaring
that they don't want to be allowed to do various operations (such as
disk I/O or network operations) on their main UI threads. (these
operations are often accidental, or even when they are fast come with
a good chance of being slow or very slow in some cases....)

Implementation wise, this is just a thread-local integer that has a
bitmask of the things that aren't allowed, and more bits for saying
what the violation penalty is. The penalties, of which multiple can
be chosen, include:

* logging
* dropbox uploading for analysis/reporting
* annoying dialog
* full-on crashing

These are all only very roughly implemented at this point, but all
parts now minimally work end-to-end now, so this is a good checkpoint
commit before this gets too large.

Future CLs will polish all the above 4 penalties, including
checksumming of stacktraces and minimizing penalties for duplicate
violations.

Change-Id: Icbe61a2e950119519e7364030b10c3c28d243abe
/frameworks/base/core/java/android/app/ContextImpl.java
74f170f9468d3cf6d7d0ef453320141a3e63571b 02-Jun-2010 Vasu Nori <vnori@google.com> new API in Context. on openDatabase, new param DatabaseErrorHandler

add new method openOrCreateDatabase in Context.java to allow
callers specify a DatabaseErrorHandler object to be used when
database corruption occurs.
add new constructor in SQLiteOpenHelper to accept DatabaseErrorHandler
as an additional param to be used when SQLiteDatabase instance is
created.

Change-Id: I912a0202a74510f9ca0206dd8101c4abab9102ae
/frameworks/base/core/java/android/app/ContextImpl.java
6e8304e57ec533e257a2496183125f257be1ff60 14-May-2010 Dianne Hackborn <hackbod@google.com> More fragment stuff:

- New startActivityForResult() API.
- Fragments now should have the correct lifecycle while hanging around
in the back stack (not being destroyed and re-created).
- Rework of state save/restore to make it simpler and better. In theory
now any fragment (including layout and others in the hierarchy) can
now be retained across config changes, though this hasn't been tested.

Change-Id: I2a7fe560e14e567f5675a2f172a23fca67b3e97f
/frameworks/base/core/java/android/app/ContextImpl.java
67eb751e526539a7252a6d97173ed2c376fe3888 05-May-2010 Dianne Hackborn <hackbod@google.com> am 9bbc5683: am d9d009d7: am 3445dae3: am 65b2561c: Merge "Fix issue #2643754: Launcher is caching widget layouts for too long" into froyo
d9d009d7212220aa9350bda153a2f9d8e4375f2b 05-May-2010 Dianne Hackborn <hackbod@google.com> am 3445dae3: am 65b2561c: Merge "Fix issue #2643754: Launcher is caching widget layouts for too long" into froyo

Merge commit '3445dae3f52fa8421e3b93496ac93c5753a43bd2' into kraken

* commit '3445dae3f52fa8421e3b93496ac93c5753a43bd2':
Fix issue #2643754: Launcher is caching widget layouts for too long
4416c3d6e4becd9ed39b89a03db0239c8225a135 05-May-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2643754: Launcher is caching widget layouts for too long

With the .apk file names now changing during an update, we need
to make sure to flush all caches related to a package when the
package is removed. Otherwise we can continue to use the old
package, since its old file may still exist if we try to load it
too soon.

Change-Id: I15f08dffca3feac999dbca4f24bef12a30ca0a66
/frameworks/base/core/java/android/app/ContextImpl.java
b9eab6c793959cae13399620965d44bd3a6871c3 24-Apr-2010 Adam Powell <adamp@google.com> resolved conflicts for merge of 81cd2e90 to master

Fixed public.xml value padding for kraken/master

Merge commit '81cd2e90' into manualmerge

Conflicts:
api/current.xml

Change-Id: I09d2c5c7e6acbf4086c0bb8756a5aaf41a646d71
81cd2e90ccdda498234384c8207afe2213714e60 22-Apr-2010 Adam Powell <adamp@google.com> Logo attribute for manifest and PackageManager methods to fetch it

Change-Id: I2c5ac44a4e2af982a616b2012901d7395013b19f
/frameworks/base/core/java/android/app/ContextImpl.java
212db7d3f8ce5297f4a556234a9c0675c697f1cf 09-Apr-2010 Adam Powell <adamp@google.com> Added MultiSelectListPreference

Added set support to XmlUtils; added Set<String> functions to SharedPreferences.

MultiSelectListPreference allows multiple selection and persistence of
string preferences. Addresses bug 2575634.

Change-Id: Icd56022d444b0ce43cccf819cd7d600fdb00e88a
/frameworks/base/core/java/android/app/ContextImpl.java
399cccb85749e02f6d3e12d1d2846310e7cbfdf1 14-Apr-2010 Dianne Hackborn <hackbod@google.com> Fix issue #593153: Broadcast time out when sending...

...ordered broadcast for ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE

Turns out this was because the broadcast receiver for ContextImpl was
not correctly being created, so when it received an ordered broadcast
it would not tell the activity manager when it was done.

This is now fixed, along with a ton of superficial changes to debug
output to help track this down and a little cleanup of dealing with
error cases in dispatching broadcasts. Also a fix for a NPE when
dumping the broadcast state.

Finally, a little fiddling with package manager to get rid of a lot
of the noise when removing and re-adding packages on the SD card.

Change-Id: I961c14836dc613d3ea8122b6e910ef866e7fcb25
/frameworks/base/core/java/android/app/ContextImpl.java
c9b6851af68bdc20c4903b16c344e9f116647219 08-Apr-2010 Irfan Sheriff <isheriff@google.com> Throttling framework addins

Add ThrottleManager in getSystemService
Add API for URL fetch

Bug: 2576057
Change-Id: Icd25c8b91ea4beea15c74e8ad7292ab48c962253
/frameworks/base/core/java/android/app/ContextImpl.java
559a78753165f20d5973b958791056154baecc43 08-Apr-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2549955: Moving the application fails -Activity Manager Crash on launching the app

mResources will be null if we failed loading them because the app
is on external storage that has been unmounted.

Change-Id: If0dbbdc0c3441fa10d0ab074568361524db1c8db
/frameworks/base/core/java/android/app/ContextImpl.java
07330791116513710d879c45b2f095cd314cbfd0 31-Mar-2010 Jeff Brown <jeffbrown@google.com> Show SD unavailable icon for apps on SD when ejected.

This change include a minor refactoring of PackageItemInfo and related
classes to eliminate code duplication and to avoid redundant work
searching for an ApplicationInfo instance we already have.

Bug: b/2537578
Change-Id: Id0794c3f055ea58b943028f7a84abc7dec9d0aac
/frameworks/base/core/java/android/app/ContextImpl.java
d7c096845dee7616095eda0fe9e7aa08f0ba9c20 30-Mar-2010 Dianne Hackborn <hackbod@google.com> Package manager optimizations.

Addresses:
Issue #2550648: PackageManagerService setComponentEnabledSetting unconditionally
writes Settings xml
Issue #2549084: Make PackageManager.addPermission have async version

Also make the writing of settings when changing the preferred activities to use
the same async mechanism, and fiddle with thread priorities in the background
thread to go up to foreground priority when holding the lock to write settings
and a few other places. (At some point we should really clean this up to never
acquire the main lock while in the background.)

Change-Id: Ib2b7632543f6fb3f92a225518579f3b2d15e1413
/frameworks/base/core/java/android/app/ContextImpl.java
eb9e9ec06167b0caa459f2fb3f3fae094bb8d8f7 24-Mar-2010 Christopher Tate <ctate@google.com> Return the right thing from Context.getApplicationContext()

Previously, this would always return the app context for the first application
ever instantiated in the process. Usually this is fine, since usually there
will be one process per application, but in the case of shared-process apps,
it causes activities/views to try to access the wrong set of resources, be
unable to access their proper derived-class Application objects, etc.

Fixes bug #2513901

Change-Id: Ie19f2a86583c5d927db4d84a4262077450e37539
/frameworks/base/core/java/android/app/ContextImpl.java
1afd1c90ebe789b8d3a137004127a50d2db7e3b5 19-Mar-2010 Dianne Hackborn <hackbod@google.com> Maybe fix issue #2457218: Corrupt batterystats.bin file preventing phone boot - LIBtt68127

No steps to repro, but makes the code more robust by using the standard
JournaledFile class and doing sanity checks on the input it reads.

This required moving the JournaledFile class in to the framework (and
we really should get rid of either it or AtomicFile, but they have
different recovery semantics so that is tough). Also went through and
cleaned up the file management in various places.

Change-Id: Ieb7268d8435e77dff66b6e67bb63b62e5dea572e
/frameworks/base/core/java/android/app/ContextImpl.java
87bba1ee14279bb14a28d42e27c4ef66d9967bf8 27-Feb-2010 Dianne Hackborn <hackbod@google.com> Move DeviceAdmin APIs to android.app.admin.

Also add ability for admins to hide themselves when not in use,
a facility for admins to not allow other admins to reset
their password, and debug dumping.
/frameworks/base/core/java/android/app/ContextImpl.java
82fe564267f276151063b2aa0d26075c3210d75f 24-Feb-2010 Carl Shapiro <cshapiro@google.com> Comment out the finalize() methods defined on the Activity,
ContextImpl, View and ViewRoot classes. This allows instances of
subclasses to be collected without the additional latency of
finalization.
/frameworks/base/core/java/android/app/ContextImpl.java
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.
/frameworks/base/core/java/android/app/ContextImpl.java
69fb574e294ed07404d515a66fccd046e974d32f 22-Feb-2010 Tobias Haamel <haamel@google.com> Fix missing UI_MODE_SERVICE rename.
/frameworks/base/core/java/android/app/ContextImpl.java
53332883543868fb83e111a07306368b7772b340 19-Feb-2010 Tobias Haamel <haamel@google.com> Manager for controlling the UI modes.

The ui modes can be controlled with the UiModeManager class, which
is can be retrieved as a system service via getSytemService(Context.UIMODE_SERVICE).

The class is necessary so that CarHome can be unbundled and other apps can
disable the car mode. Its currently a hidden class, since I'm not sure if this
is the best way to provide this functionality to the user.
/frameworks/base/core/java/android/app/ContextImpl.java
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.
/frameworks/base/core/java/android/app/ContextImpl.java
8946dd3355fc1dcbad872c0546e356474d4cc5de 19-Feb-2010 Suchi Amalapurapu <asuchitra@google.com> Move package from internal to external and vice versa.
/frameworks/base/core/java/android/app/ContextImpl.java
5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2 12-Feb-2010 Suchi Amalapurapu <asuchitra@google.com> Include install location preference when installing packages.
Changes include
Add new remote call in default container service to determine
install location.
Rename INSTALL_ON_SDCARD
Remove recommentAppInstall method
Add some additional flags used in remote stubs.
Move check for protected apps prior to copy.
Unit tests

DefaultContainerService first parses the file uri(if content uri is specified
it returns a default install internal only value) and returns
a recommended location. Based on which the temporary id is determined
either a file name or a container id and the file is copied there.
This is then later renamed during install.
Todo's light weight parsing of package when determining location since we
just need the install location attribute only when finding out
recomended location. This will also enable to move the check for
updated system apps(cannot be on sdcard) prior to copying.
/frameworks/base/core/java/android/app/ContextImpl.java
470969346d7958f859d97d1a136b4ecc11e2a464 12-Feb-2010 Dianne Hackborn <hackbod@google.com> Add APIs for mapping between new and current package names.

This will allow Market and others to find out what the "real" name
of a package is, when it is currently running under the old name of
a previously installed version.
/frameworks/base/core/java/android/app/ContextImpl.java
117818e4f171b1fd9daa05349c48f61388f04567 09-Feb-2010 Suchi Amalapurapu <asuchitra@google.com> Add new manifest option for install location
Change recommendAppInstallLocation api
add code to parse new attribute.
Define flags in PackageInfo
Add new settings attributes for enabling setting and value for install location
Some tests
The policy for install location: if explicitly set in manifest as internal only we try to install the app only on internal storage. if set to preferExternal, we try to install it on sdcard if possible. If not we fall back to internal.
If the user enables setting SET_INSTALL_LOCATION(which will always
be set to false in final release builds) and sets a prefered location, we try
to honour it.
/frameworks/base/core/java/android/app/ContextImpl.java
e83cefcef07f9ac025642c1ffec76b4c7ab39cf2 05-Feb-2010 Dianne Hackborn <hackbod@google.com> New external storage APIs.

This implements the spec for external storage organization, and
properly reflects how the media scanner organizes the files it finds.

Also includes package manager support for removing app private
files from external storage when the application is uninstalled.

For the new APIs and paths, the main place to look is Environment
and Context.
/frameworks/base/core/java/android/app/ContextImpl.java
b104340496e3a531e26c8f428c808eca0e039f50 05-Feb-2010 San Mehat <san@google.com> Framework: Clean up / Refactor Mount APIs

- Move android.storage.* -> android.os.storage.* and refactor users
- Refactor generic shares back to explicit ums enable/disable/isEnabled
- Remove media insert/removed event callbacks (not ready for Froyo)
- Remove 'label' from volume state change callbacks
- Add public API functions for enabling/disabling USB mass storage (permissions enforced
in MountSevice)
- Remove some stray un-needed import lines
- Move android.os.IMountService / android.os.IMountServiceListener -> android.os.storage
- Improve code comments

Updated:
MountService: Add dup state check and move debugging behind a conditional
UsbStorageActivity: Fix review comments + a TODO
StorageNotification: Add @Override tags
StorageManager: Don't use a static Listener list
MountService: Reduce bloat and fix == where I meant .equals()
PackageManagerTests: Update for new API

Signed-off-by: San Mehat <san@google.com>
/frameworks/base/core/java/android/app/ContextImpl.java
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
/frameworks/base/core/java/android/app/ContextImpl.java
2155637d0028e87ebaaf71b9a77f3c43853e8f2f 05-Feb-2010 Dianne Hackborn <hackbod@google.com> Rename ApplicationContext to ContextImpl.

I've been wanting to do this for a long long time.
/frameworks/base/core/java/android/app/ContextImpl.java