History log of /frameworks/base/core/java/android/content/ContentProvider.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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