History log of /frameworks/base/core/java/android/content/ContentProvider.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ac2506c7e325b4e095405de155480a1abb3c4623 15-Dec-2014 Jay Shrauner <shrauner@google.com> Fix NPE in Transport.applyBatch

Bug:18756774
Change-Id: I1da4f0131b1529598043e4cb9fb226d02bff8669
/frameworks/base/core/java/android/content/ContentProvider.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/content/ContentProvider.java
bba231d7a63b58a8c2b174722ed1487b0f7d8270 15-Nov-2014 Jeff Brown <jeffbrown@google.com> Explicitly bind AsyncTask to main looper.

It seems we were sort of trying to do this by forcing the AsyncTask
static initializer to run at certain times but it was not sufficiently
reliable. In particular, this resulted in occasional system
server crashes.

Bug: 18192406
Change-Id: Ief73210c60e7680fbed6df74e3e58809b7ec7e4d
/frameworks/base/core/java/android/content/ContentProvider.java
7d2d4fd55ecda623a717e90feb820c1812fb9d6e 06-Nov-2014 Amith Yamasani <yamasani@google.com> Fix singleUser provider grants

Fake the Uri for grant check, if we're checking access to
a singleUser provider. Inject the userId in the authority
so that the grant can be matched properly.

Bug: 18194892
Change-Id: I4a55ce593ac21722f394e89e13350aa205d76336
/frameworks/base/core/java/android/content/ContentProvider.java
6e412adaa70a25c6b47eb274736b67071e6e47c6 08-Sep-2014 Nicolas Prevot <nprevot@google.com> Allowing a ContentProvider to have a null authority.

In this case, it will not be possible to query it with any uri.

BUG: 17414813

Change-Id: I76e8ad91539904f3c52b5a3436b2f1bd5e4d0fdf
/frameworks/base/core/java/android/content/ContentProvider.java
a6f4d58b9094e842b5fd41439db823b66b841393 08-Aug-2014 Amith Yamasani <yamasani@google.com> Allow singleton providers to accept connections from other users

This is required for singleton providers like sms log.

Change-Id: Icb18a764c27dc1b43f8b8bcc24c21c91274995fd
/frameworks/base/core/java/android/content/ContentProvider.java
f300babd25001898dfd8b8a92f1534e46bf50794 07-Aug-2014 Nicolas Prevot <nprevot@google.com> Validate that the authority of incoming uris matches.

BUG: 16864837

Change-Id: I2d4473985777b9525b101c1b02ad2395342b9722
/frameworks/base/core/java/android/content/ContentProvider.java
504d78ea10b04baee2a1a65707dc7003c94d1ee4 26-Jun-2014 Nicolas Prevot <nprevot@google.com> Security fixes related to cross-user content.

Enforcing that only uri grants work across users (not permissions).
Fixing a security hole where malicious Apps could access a uri if they had uri grants to the same uri on another user.
Enforcing that userIds in uris, if they exist, are the one of the ContentProvider.

BUG: 16779492

Change-Id: Iaa5264bd6c3aa0e15be3a4a64f9dc88238e0cb2e
/frameworks/base/core/java/android/content/ContentProvider.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/content/ContentProvider.java
140065230900b465f85f64c5da5181d124076e1d 11-Mar-2014 Jeff Brown <jeffbrown@android.com> am 33282d66: am a41ddccd: Merge "Fixed typo errors in documentation"

* commit '33282d66155e8d68acea512989ec61cb15fae1ce':
Fixed typo errors in documentation
a41ddccdc67ace7c9363efebbf6e51710928ce12 11-Mar-2014 Jeff Brown <jeffbrown@android.com> Merge "Fixed typo errors in documentation"
e05190eae74be57dd517bb5afbccf901543329bf 14-Jan-2014 John Spurlock <jspurlock@google.com> am 85f98508: Merge "Docfixes: three typos and escape */*." into klp-docs

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

Change-Id: I418d855b5d08a1a20eaca3d8e4d2e5d0fca23dd5
/frameworks/base/core/java/android/content/ContentProvider.java
8a2998eade93032a78d681c66ebadbfa6f802f76 31-Oct-2013 Jeff Sharkey <jsharkey@android.com> Better enforcement in DocumentsProvider.call().

Use ContentProvider.enforceWritePermissionInner() to handle all edge
cases around checking if caller has write permissions. This fixes
bug where call() would throw if caller and provider were the same app.

Bug: 11464234
Change-Id: Iace8e0e4243d56ed1cdcc9680383103975107036
/frameworks/base/core/java/android/content/ContentProvider.java
bd88de46a126c1e6dfc84ba6c1f942f51fe57582 28-Oct-2013 Taeho Kim <jyte82@gmail.com> Fixed typo errors in documentation

Fixed some type errors in developer documentation.

Change-Id: I92629a4350508fb96fda1842741c5ced64171464
Signed-off-by: Taeho Kim <jyte82@gmail.com>
/frameworks/base/core/java/android/content/ContentProvider.java
e8c00d8ed477e199b7f8d1b1e2f37e9cf8593372 16-Oct-2013 Jeff Sharkey <jsharkey@android.com> Improve DocumentsProvider and contract docs.

Bug: 10567557
Change-Id: I71e7f7ad172e9986e58b9c9533b1c948c5530397
/frameworks/base/core/java/android/content/ContentProvider.java
eb8c3f93edc826413ff4143284dec01c1061d5cc 20-Sep-2013 Adam Lesinski <adamlesinski@google.com> Surfaces ParcelFileDescriptor#parseMode() as API

Moves ContentResolver#modeToMode() to ParcelFileDescriptor#parseMode()

bug:10711271
Change-Id: I28a5de4ca70adfbec4caf739863b77f0fd7fd9a4
/frameworks/base/core/java/android/content/ContentProvider.java
10cb312ecd2e62600758e0270f977d0db585d393 18-Sep-2013 Jeff Sharkey <jsharkey@android.com> Guard against null Context in attachInfo().

Some CTS tests were running into this.

Bug: 10805216
Change-Id: I425d2a0064612af70a64f457e159498cb6257a28
/frameworks/base/core/java/android/content/ContentProvider.java
b3ac67a0ece71bcf484dd92914dc3599dadffb05 11-Sep-2013 Dianne Hackborn <hackbod@google.com> More on issue #10130785: Restore silence and vibrate settings...

...in settings > sound

ContentResolver.uncanonicalize needs to be able to fail.

Change-Id: I347ef60fc3619aae203b87079579597c60be8b90
/frameworks/base/core/java/android/content/ContentProvider.java
72e2e3577b6891d8805bc9c3e4ff0f4d65173ebd 10-Sep-2013 Jeff Sharkey <jsharkey@android.com> Fix getCallingPackage() to handle reentrance.

Keep any previous value in the stack frame and restore when the
current call is finished.

Bug: 10659409
Change-Id: I02b760ae9ca06a4b3602725e02f649f1ada460a0
/frameworks/base/core/java/android/content/ContentProvider.java
38ed2a471a2291383821fb187bfa18450f0581c2 07-Sep-2013 Dianne Hackborn <hackbod@google.com> Work on issue #10130785: Restore silence and vibrate settings...

...in settings > sound

Add a new ContentProvider API to canonicalize URIs, so they can
be transported across backup/restore.

Change-Id: Ie5af3662f6822a32310e49c7f1e1ff084986c56e
/frameworks/base/core/java/android/content/ContentProvider.java
911d7f411f36f2279aae44c89ff1d33a29140046 06-Sep-2013 Jeff Sharkey <jsharkey@android.com> Provide calling package to ContentProviders.

The calling package is important for ContentProviders that want to
grant Uri permissions as a side effect of operations, so offer it
through a new API. Validates the provided package against the
calling UID before returning.

Bug: 10626527
Change-Id: I7277880eebbd48444c024bcf5f69199133cd59e4
/frameworks/base/core/java/android/content/ContentProvider.java
bd3b902567b09379e1b62c60b3319ad82102efad 21-Aug-2013 Jeff Sharkey <jsharkey@android.com> Add CancellationSignal support to file operations.

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

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

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

Improve DocumentsContract documentation.

Bug: 10329944
Change-Id: I49b2825ea433eb051624c4da3b77612fe3ffc99c
/frameworks/base/core/java/android/content/ContentProvider.java
9fa39bd255f2bc248941ae5924a0a70cc25de19e 23-Mar-2013 Dianne Hackborn <hackbod@google.com> App ops: don't crash when provide read access is off.

If the caller supplied an empty selection string (instead
of null) we would crash due to creating a bad SQLite statement.

Change-Id: I462803b80c81815ed9a3a320c23060daa28e8114
/frameworks/base/core/java/android/content/ContentProvider.java
5d122d96a5bf3bbaccaca2765b45716efe7ee2ef 13-Mar-2013 Dianne Hackborn <hackbod@google.com> Better documentation on permission checking in ContentProvider.call().

Change-Id: I4a85fd17362c2a32e2b1365fcc07ef0336521616
/frameworks/base/core/java/android/content/ContentProvider.java
f5e0471703d73a1285601928b790cdf0ab028fa5 01-Mar-2013 Jeff Sharkey <jsharkey@android.com> Merge "Tighten enforcement of file modes." into jb-mr2-dev
ba761979ee883237b8e0143973ba5b6032f37d05 01-Mar-2013 Jeff Sharkey <jsharkey@android.com> Tighten enforcement of file modes.

Bug: 8275867
Change-Id: I4da14f2dd0049aca69636999696c1f3c02b3b792
/frameworks/base/core/java/android/content/ContentProvider.java
334d9aebc28f7d5213b1671997488b3e3f118e29 27-Feb-2013 Dianne Hackborn <hackbod@google.com> New ContentProvider initialization for testing.

Using this turns off app ops checks.

Change-Id: If29d4ca2fe9ddf1a1663d3a824b2f0afe7375862
/frameworks/base/core/java/android/content/ContentProvider.java
7e6f976c87714d9c42c376fca5b6c8ef7865e672 26-Feb-2013 Dianne Hackborn <hackbod@google.com> App ops: turn off content provider ops when running under test.

Change-Id: I3a5084d195de29122b2f5f2a13b5d4f92f22fa92
/frameworks/base/core/java/android/content/ContentProvider.java
a53ee35754d22e58978c9fd81396e599e00bac18 20-Feb-2013 Dianne Hackborn <hackbod@google.com> Fix issue #8228463: contradicting public documentation on what...

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

And various other doc improvements.

Change-Id: I6d881c8aed56c552e36d5db5df4f74c6aa718da7
/frameworks/base/core/java/android/content/ContentProvider.java
961321fe4ed4431a6362d729d9e4ea26bdecde61 06-Feb-2013 Dianne Hackborn <hackbod@google.com> App ops: add op for writing settings.

Also fix a build.

And fix a bug that I think was introduced in the multi-user work
that removed the permission check for writing to settings...!

Change-Id: I5945682faa789ffc78fd3546c0df7d03693f106d
/frameworks/base/core/java/android/content/ContentProvider.java
d7960d19c1e5dfdbe8c793472ce792e8526c0e40 30-Jan-2013 Dianne Hackborn <hackbod@google.com> Improve revoking access to content providers.

Providers can now hook into the revoked query and insert
calls, and the default implementation of query is a little better.

Change-Id: I29592a579aaf4a98686c6cf43e57f73275c58922
/frameworks/base/core/java/android/content/ContentProvider.java
5e45ee6752528791deb66b83d76250685de15d47 25-Jan-2013 Dianne Hackborn <hackbod@google.com> App ops: you can now turn off operations.

Also add new ops for calendar and wi-fi scans, finish
implementing rejection of content provider calls, fix
issues with rejecting location calls, fix bug in the
new pm call to retrieve apps with permissions.

Change-Id: I29d9f8600bfbbf6561abf6d491907e2bbf6af417
/frameworks/base/core/java/android/content/ContentProvider.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/content/ContentProvider.java
2bc6eb8c175a6f913d379959bd71c6c09c601e82 03-Jan-2013 Christopher Tate <ctate@google.com> Document ContentProvider's API a bit more explicitly

In particular, call out parameters that must not be null.

Change-Id: I67af73163e36efefefa7df86499937f998be5b00
/frameworks/base/core/java/android/content/ContentProvider.java
0d8af78b748d0279756c1ea8ae1659f6c2c802bb 18-Aug-2012 Dianne Hackborn <hackbod@google.com> Fix permission check on ContentProvider to be multi-user aware.

Change-Id: I1e504fe6561caef99d478e37660e2294fec7ea8b
/frameworks/base/core/java/android/content/ContentProvider.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/content/ContentProvider.java
a7771df3696954f0e279407e8894a916a7cb26cc 08-May-2012 Jeff Brown <jeffbrown@google.com> Move CancellationSignal to android.os package.

Bug: 6427830
Change-Id: I39451bb1e1d4a8d976ed1c671234f0c8c61658dd
/frameworks/base/core/java/android/content/ContentProvider.java
5554b7082220d37496e30f39a0d9146afc177ab4 12-Apr-2012 Jeff Sharkey <jsharkey@android.com> Make component names visible in javadoc.

Change-Id: I3770ea6616b8425c387bcd27d668e3114b14335d
/frameworks/base/core/java/android/content/ContentProvider.java
e5d4933692343d082912856198fc3d207865d1cc 13-Mar-2012 Jeff Sharkey <jsharkey@android.com> Better exceptions around provider permissions.

When enforcing ContentProvider permissions, mention which
<path-permission> caused the denial.

Bug: 6131916
Change-Id: I06ed461d188fc92c7ddc2acc92ec6169a7c9891a
/frameworks/base/core/java/android/content/ContentProvider.java
110a6b6252d6daf9882ece7595bd3613b82448a8 12-Mar-2012 Jeff Sharkey <jsharkey@android.com> Let <path-permission> block unprotected providers.

When accessing a ContentProvider that is unprotected by top-level
permissions, and caller doesn't hold a matching <path-permission>
permission, revoke the default top-level access.

This enables an otherwise unprotected provider to enforce permissions
on specific paths.

Bug: 6131916
Change-Id: Icab89f765ccd90b1acea6988b05f00877fe2c11e
/frameworks/base/core/java/android/content/ContentProvider.java
4c1241df8f8b7fd5ec3dff6c7e0f66271248e76e 03-Feb-2012 Jeff Brown <jeffbrown@google.com> Rename CancellationSignal using preferred spelling.

Bug: 5943637
Change-Id: I12a339f285f4db58e79acb5fd8ec2fc1acda5265
/frameworks/base/core/java/android/content/ContentProvider.java
75ea64fc54f328d37b115cfb1ded1e45c30380ed 26-Jan-2012 Jeff Brown <jeffbrown@google.com> Implement a cancelation mechanism for queries.

Added new API to enable cancelation of SQLite and content provider
queries by means of a CancelationSignal object. The application
creates a CancelationSignal object and passes it as an argument
to the query. The cancelation signal can then be used to cancel
the query while it is executing.

If the cancelation signal is raised before the query is executed,
then it is immediately terminated.

Change-Id: If2c76e9a7e56ea5e98768b6d4f225f0a1ca61c61
/frameworks/base/core/java/android/content/ContentProvider.java
18cb28756caf02bf2b2f5e67c68451edaf719b47 15-Nov-2011 Marco Nelissen <marcone@google.com> Add ContentProvider.dump()

This is similar to the existing dump() facility for services.
ContentProviders can now implement dump() and that info will be shown
when running "dumpsys activity provider" and when taking a bugreport.

Change-Id: I33b3b132e3c4f920153355cc368eda2f725a715f
/frameworks/base/core/java/android/content/ContentProvider.java
558459fe85f56f29a6ed6a4d0adb4a0bd6665884 14-Oct-2011 Joe Fernandez <joefernandez@google.com> docs: add developer guide cross-references, Project ACRE, Round 2

Change-Id: I39a534ae3a2a34b4dabc333a09961012ef911d3e
/frameworks/base/core/java/android/content/ContentProvider.java
d2183654e03d589b120467f4e98da1b178ceeadb 09-Oct-2011 Jeff Brown <jeffbrown@google.com> Fix ownership of CursorWindows across processes.
Bug: 5332296

Ensure that there is always an owner for each CursorWindow
and that references to each window are acquired/released
appropriately at all times.

Added synchronization to CursorToBulkCursorAdaptor to
prevent the underlying Cursor and CursorWindow from being
remotely accessed in ways that might violate invariants,
resulting in leaks or other problems.

Ensured that CursorToBulkCursorAdaptor promptly releases
its references to the Cursor and CursorWindow when closed
so they don't stick around longer than they should, even
if the remote end hangs onto the IBulkCursor for some reason.

CursorWindow respects Parcelable.FLAG_WRITE_RETURN_VALUE
as an indication that one reference to the CursorWindow is
being released. Correspondingly, CursorToBulkCursorAdaptor
acquires a reference to the CursorWindow before returning
it to the caller. This change also prevents races from
resulting in the transfer of an invalid CursorWindow over
the wire.

Ensured that BulkCursorToCursorAdaptor promptly releases
its reference to the IBulkCursor when closed and throws
on attempts to access the cursor while closed.

Modified ContentProviderNative to handle both parts of
the wrapping and unwrapping of Cursors into IBulkCursors.
This makes it a lot easier to ensure that the right
things happen on both ends. Also, it turns out that
the only caller of IContentProvider.bulkQuery was
ContentProviderNative itself so there was no need
to support bulkQuery on ContentProviderProxy and it was
just getting in the way.

Implement CloseGuard on CursorWindow.

Change-Id: Ib3c8305d3cc62322f38a06698d404a2989bb6ef9
/frameworks/base/core/java/android/content/ContentProvider.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/content/ContentProvider.java
7aee61f5a96e94e158bf5ad3d8e192c4d4f7eff6 08-Feb-2011 Scott Main <smain@google.com> docs: fix links to revised fundamentals documents

Change-Id: Ie2a660cce1d00f924c9fde5c6a00776307e5e1c7
/frameworks/base/core/java/android/content/ContentProvider.java
5d9d03a0234faa3cffd11502f973057045cafe82 24-Jan-2011 Dianne Hackborn <hackbod@google.com> Maybe fix issue #3093599: java.lang.IndexOutOfBoundsException...

...Invalid index 0, size is 0 at
android.app.ActivityThread.performPauseActivity(ActivityThread.java:2326)

It looks like if an arrow key is dispatched between the time the
list view is told its data set has changed and it does the resulting
layout pass, we could try to move the position to a now invalid
index. This may prevent that from happening.

Also put in a better error message if saving state of a fragment
whose target is no longer in the fragment manager.

And fix a bug in PackageManager where we could return a null from
queryIntentActivities().

And add a new API to find out whether a fragment is being removed,
to help fix issue #3306021: NPE at
android.app.AlertDialog.getDefaultDialogTheme(AlertDialog.java)

Next, for new HC apps we can delay committing data to
storage until the activity is stopped.

Finally, use the new multi-threaded AyncTask executor in a few
places, so we don't have worked blocked by long-running tasks from
the application.

Change-Id: I27b2aafedf2e1bf3a2316309889613fa539760f3
/frameworks/base/core/java/android/content/ContentProvider.java
534c84c1ce19ae20ded249315c3c0558577eca6c 12-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> Unhide Content{Resolver,Provider}.call()

Change-Id: Ic7833b921f5a8e70ef7d565bfdf461e6e135ff1b
/frameworks/base/core/java/android/content/ContentProvider.java
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/content/ContentProvider.java
1040dc465cbf5ca8f834a87c949e476abefa3f76 27-Aug-2010 Dianne Hackborn <hackbod@google.com> Improve clipboard API.

- Rename ClippedData to ClipData.
- Introudce ClipDescription subclass.
- Add convenience APIs for creating a ClipData.
- Add ClipboardManager API to get just the ClipDescription.
- Define MIME types associated with a clip.

Change-Id: If97ef91aa99a4dd0ec74ccaea504345c9ef12b5c
/frameworks/base/core/java/android/content/ContentProvider.java
37444f4239b26944d24f039c537d411ac7004243 21-Aug-2010 Dianne Hackborn <hackbod@google.com> am d172594e: am cf6d2a1d: Merge "Fix issue #2845673: android:exported="false" is not obeyed" into gingerbread

Merge commit 'd172594e3a1e25f1f2c190e99421cb7d4963389b'

* commit 'd172594e3a1e25f1f2c190e99421cb7d4963389b':
Fix issue #2845673: android:exported="false" is not obeyed
b424b633bb3664bed924d2ea89036290a57eb2bd 19-Aug-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2845673: android:exported="false" is not obeyed

Thou shall obey.

Change-Id: I09f163a0db7cc9189c8d7f5116cc8ca9d4f7a76c
/frameworks/base/core/java/android/content/ContentProvider.java
3f00be5bd0b46e7937b68909baeff295b86215cc 16-Aug-2010 Dianne Hackborn <hackbod@google.com> Fix build.

Change-Id: I9e887aacf3d3ba642df287dfdecbc2ff1ef02033
/frameworks/base/core/java/android/content/ContentProvider.java
02dfd2630437ea5591942e503606fdeff29eb11e 13-Aug-2010 Dianne Hackborn <hackbod@google.com> Fix bug with calls to the typeless open API.

Fix bug where we weren't using the default stream if a caller
requested "*/*" as a type. This broke apps calling the old open
APIs on content providers that did not report MIME types.

Change-Id: Id6e3e64e36cb8637097c3a7834b09407c27487d2
/frameworks/base/core/java/android/content/ContentProvider.java
2c96a0c7acddb5f2e8027e9ffac73f82c297c4b9 06-Aug-2010 Manuel Roman <manuelroman@google.com> Incorporated Joe's comments

Change-Id: I07f9b00282acb5e1b505b578e6fae1dcb90d1e52
/frameworks/base/core/java/android/content/ContentProvider.java
23fdaf6fb62a9b5154b2508916a21c678462c5d0 06-Aug-2010 Dianne Hackborn <hackbod@google.com> Add new ContentProvider for doing conversions to data streams.

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

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

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

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

Change-Id: I58627ea4ed359aa7cf2c66274adb18306c209cb2
/frameworks/base/core/java/android/content/ContentProvider.java
0c9e14aa4aa1370e01872dc05238f822f2dd552c 04-Aug-2010 Vasu Nori <vnori@google.com> add shutdown() to ContentProvider & call in ProviderTestCase*.tearDown

Change-Id: I3dd69b6907d68b7c1184139f22297ab92337f043
/frameworks/base/core/java/android/content/ContentProvider.java
17876aa586cc9acfb3e5b909c14b9e73537a1a8d 28-Jul-2010 Dan Egnor <egnor@google.com> Minor changes to ContentProvider javadoc to improve consistency.

Change-Id: I710f618c94ffd5d6368ef04a39ac08f675bec11b
/frameworks/base/core/java/android/content/ContentProvider.java
6fcc0f073d8583cf1f485b9548cde41336a422be 28-Jul-2010 Dan Egnor <egnor@google.com> COMMENT ONLY change to clarify ContentProvider documentation.

Gets a little more specific about thread behavior, and makes
pointed comments about not doing too much work in onCreate().

Change-Id: I682f0eb7d7559babee901ed26642751a6ba0a1ea
/frameworks/base/core/java/android/content/ContentProvider.java
1877d0158b529663b8315482e7346a7bcaa96166 05-Mar-2010 Brad Fitzpatrick <bradfitz@android.com> Add "call" method on ContentProvider.

This permits implementing interfaces which are faster than using
remote Cursors. It then uses it for Settings & SettingProvider, which
together account for ~50% of total ContentProvider event loop stalls
across Froyo dogfooders.

For fetching Settings this looks like it should reduce average
Settings lookup from 10 ms to 0.4 ms on Sholes, once the
SettingsProvider serves most gets from in-memory cache. Currently it
brings the Sholes average down from 10ms to 2.5 ms while still using
SQLite queries on each get.
/frameworks/base/core/java/android/content/ContentProvider.java
2ec6c5699181316e5a5c2cd293c006ac4a8bb101 10-Dec-2009 Fred Quintana <fredq@google.com> am 328c0e79: - removed the concept of Entity from the ContentProvider APIs - removed the parcelling ability from Entity and EntityIterator and made them public - added an EntityIterator abstract implementation that allow easy wrapping of a Cursor - changed the VCard c

Merge commit '328c0e7986aa6bb7752ec6de3da9c999920bb55f' into eclair-mr2-plus-aosp

* commit '328c0e7986aa6bb7752ec6de3da9c999920bb55f':
- removed the concept of Entity from the ContentProvider APIs
/frameworks/base/core/java/android/content/ContentProvider.java
8280c2b15f6875b2d387c05df23d264864eb9cd5 22-Oct-2009 Daisuke Miyakawa <dmiyakawa@google.com> Implement new MockContentProvider. Also make ContentProvider aware of the class.

Rename the old MockContentProvider to MockIContentProvider since it is
more appropriate name.

Detail:
Current developers inevitably depend on the backend used by ContentProvider,
which is useful but not ideal nor "testable" from the view of them.

Current MockContentResolver only accepts exact "ContentProvider" class, not
IContentProvider interface, since we want to hide "IContentProvider" while
the old MockContentProvider implements IContentProvider and as a result some
methods we want to hide may be exposed to the public SDK now and probably
for the future.

On the other hand, ContentProvider is not interface but an exact class
heavily depends on the internal logic and not suitable for external
developers to use for tests.

The new MockContentProvider introduces the mock implementation
for ContentProvider.
It extends ContentProvider, so "is" ContentProvider, but tries to avoid
depending on any backend System like IPC in Android, etc.
This should be useful from the view of application developers who do not
want to be confused with ContentProvider/ContentResolver backend
implementation "at all" and want to use MockContentResolver without
any other ContentProvider implementations tightly connected to the
external worlds.
/frameworks/base/core/java/android/content/ContentProvider.java
5bba632d877c2878384ff21566c8eb6a1a22f37b 05-Oct-2009 Fred Quintana <fredq@google.com> - hide Entity and all its references
- remove updateEntity and insertEntity, since they are not
used
- add the RawContacts.Entity class, which is used in lieu of the
android.content.Entity
/frameworks/base/core/java/android/content/ContentProvider.java
e3f054411b9f025848f68389c4e2c325e76b3826 09-Jul-2009 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 2af632f8 to master
2af632f87d487deaa5b2eb71341cfc4f0c0d1173 08-Jul-2009 Dianne Hackborn <hackbod@google.com> Add new <path-permission tag for use by global search.

This adds a new <path-permission> tag you can use inside of a <provide>
to define additional path-based permissions that broaden the global
read and write permissions. The initial use for this will be global
search, so that a content provider that is protected by permissions
can make a part of itself available to global search under another
permission. This addresses the issue with global search not being able
to request permissions it would need of providers it doesn't know
about at build time.
/frameworks/base/core/java/android/content/ContentProvider.java
81a476f654155df27aa564a4aebf931eab588e6d 20-May-2009 Alan Jones <skyphyr@gmail.com> Fixed Issue 2682: ContentProvider query() SDK docs deprecated
/frameworks/base/core/java/android/content/ContentProvider.java
03d9490758c9318cee6d14d3cc5007556dce92d0 22-May-2009 Fred Quintana <fredq@google.com> - create a new generic ISyncAdapter implementation, SyncAdapterNew
- change the applyBatch to take an ArrayList rather than an []
- change Entity to be a final flass that contains ContentValues
- remove the ability to update/insert Entities by a ContentProviderOperation
/frameworks/base/core/java/android/content/ContentProvider.java
8943737692169f564cd34a9c8d471f3a5d438712 16-May-2009 Fred Quintana <fredq@google.com> add ipc support to batching
/frameworks/base/core/java/android/content/ContentProvider.java
ce31b2361db630cf1347fa42dd77e610a4eeb96d 05-May-2009 Fred Quintana <fredq@google.com> enhance ContentProvider with the ability to perform batch operations
/frameworks/base/core/java/android/content/ContentProvider.java
6a8d5332f00bdfade6674b312e7166940aa28348 08-May-2009 Fred Quintana <fredq@google.com> content provider entities
/frameworks/base/core/java/android/content/ContentProvider.java
718d8a2d7ff3e864a73879eb646f46c14ab74d07 30-Apr-2009 Fred Quintana <fredq@google.com> decouple SyncAdapter from ContentProvider
/frameworks/base/core/java/android/content/ContentProvider.java
f64aff1a20c7a8da78fbeaf277bf8b39a5557fc1 25-Mar-2009 Bjorn Bringert <> Automated import from //branches/master/...@140582,140582
/frameworks/base/core/java/android/content/ContentProvider.java
9e728e082e6060612691b726e6fe264a0d37276f 25-Mar-2009 Bjorn Bringert <> Automated import from //branches/donutburger/...@140581,140581
/frameworks/base/core/java/android/content/ContentProvider.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/content/ContentProvider.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/content/ContentProvider.java
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/frameworks/base/core/java/android/content/ContentProvider.java
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/frameworks/base/core/java/android/content/ContentProvider.java
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
/frameworks/base/core/java/android/content/ContentProvider.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/core/java/android/content/ContentProvider.java