- 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
This commit is contained in:
493
api/current.xml
493
api/current.xml
@@ -27216,88 +27216,6 @@
|
||||
</package>
|
||||
<package name="android.content"
|
||||
>
|
||||
<class name="AbstractCursorEntityIterator"
|
||||
extends="java.lang.Object"
|
||||
abstract="true"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<implements name="android.content.EntityIterator">
|
||||
</implements>
|
||||
<constructor name="AbstractCursorEntityIterator"
|
||||
type="android.content.AbstractCursorEntityIterator"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="db" type="android.database.sqlite.SQLiteDatabase">
|
||||
</parameter>
|
||||
<parameter name="entityCursor" type="android.database.Cursor">
|
||||
</parameter>
|
||||
</constructor>
|
||||
<method name="close"
|
||||
return="void"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</method>
|
||||
<method name="hasNext"
|
||||
return="boolean"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</method>
|
||||
<method name="newEntityFromCursorLocked"
|
||||
return="android.content.Entity"
|
||||
abstract="true"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="cursor" type="android.database.Cursor">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="next"
|
||||
return="android.content.Entity"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</method>
|
||||
<method name="reset"
|
||||
return="void"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<exception name="RemoteException" type="android.os.RemoteException">
|
||||
</exception>
|
||||
</method>
|
||||
</class>
|
||||
<class name="ActivityNotFoundException"
|
||||
extends="java.lang.RuntimeException"
|
||||
abstract="false"
|
||||
@@ -27420,23 +27338,6 @@
|
||||
<parameter name="cursor" type="android.database.Cursor">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="onQueryEntitiesComplete"
|
||||
return="void"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="protected"
|
||||
>
|
||||
<parameter name="token" type="int">
|
||||
</parameter>
|
||||
<parameter name="cookie" type="java.lang.Object">
|
||||
</parameter>
|
||||
<parameter name="iterator" type="android.content.EntityIterator">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="onUpdateComplete"
|
||||
return="void"
|
||||
abstract="false"
|
||||
@@ -28323,21 +28224,6 @@
|
||||
<parameter name="values" type="android.content.ContentValues">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="insertEntity"
|
||||
return="android.net.Uri"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="uri" type="android.net.Uri">
|
||||
</parameter>
|
||||
<parameter name="entity" type="android.content.Entity">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="isTemporary"
|
||||
return="boolean"
|
||||
abstract="false"
|
||||
@@ -28456,25 +28342,6 @@
|
||||
<parameter name="sortOrder" type="java.lang.String">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="queryEntities"
|
||||
return="android.content.EntityIterator"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="uri" type="android.net.Uri">
|
||||
</parameter>
|
||||
<parameter name="selection" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="selectionArgs" type="java.lang.String[]">
|
||||
</parameter>
|
||||
<parameter name="sortOrder" type="java.lang.String">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="setPathPermissions"
|
||||
return="void"
|
||||
abstract="false"
|
||||
@@ -28533,21 +28400,6 @@
|
||||
<parameter name="selectionArgs" type="java.lang.String[]">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="updateEntity"
|
||||
return="int"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="uri" type="android.net.Uri">
|
||||
</parameter>
|
||||
<parameter name="entity" type="android.content.Entity">
|
||||
</parameter>
|
||||
</method>
|
||||
</class>
|
||||
<class name="ContentProviderClient"
|
||||
extends="java.lang.Object"
|
||||
@@ -28653,23 +28505,6 @@
|
||||
<exception name="RemoteException" type="android.os.RemoteException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="insertEntity"
|
||||
return="android.net.Uri"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="uri" type="android.net.Uri">
|
||||
</parameter>
|
||||
<parameter name="entity" type="android.content.Entity">
|
||||
</parameter>
|
||||
<exception name="RemoteException" type="android.os.RemoteException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="openAssetFile"
|
||||
return="android.content.res.AssetFileDescriptor"
|
||||
abstract="false"
|
||||
@@ -28731,27 +28566,6 @@
|
||||
<exception name="RemoteException" type="android.os.RemoteException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="queryEntities"
|
||||
return="android.content.EntityIterator"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="uri" type="android.net.Uri">
|
||||
</parameter>
|
||||
<parameter name="selection" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="selectionArgs" type="java.lang.String[]">
|
||||
</parameter>
|
||||
<parameter name="sortOrder" type="java.lang.String">
|
||||
</parameter>
|
||||
<exception name="RemoteException" type="android.os.RemoteException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="release"
|
||||
return="boolean"
|
||||
abstract="false"
|
||||
@@ -28784,23 +28598,6 @@
|
||||
<exception name="RemoteException" type="android.os.RemoteException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="updateEntity"
|
||||
return="int"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="uri" type="android.net.Uri">
|
||||
</parameter>
|
||||
<parameter name="entity" type="android.content.Entity">
|
||||
</parameter>
|
||||
<exception name="RemoteException" type="android.os.RemoteException">
|
||||
</exception>
|
||||
</method>
|
||||
</class>
|
||||
<class name="ContentProviderOperation"
|
||||
extends="java.lang.Object"
|
||||
@@ -29689,27 +29486,6 @@
|
||||
<parameter name="sortOrder" type="java.lang.String">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="queryEntities"
|
||||
return="android.content.EntityIterator"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="uri" type="android.net.Uri">
|
||||
</parameter>
|
||||
<parameter name="selection" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="selectionArgs" type="java.lang.String[]">
|
||||
</parameter>
|
||||
<parameter name="sortOrder" type="java.lang.String">
|
||||
</parameter>
|
||||
<exception name="RemoteException" type="android.os.RemoteException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="registerContentObserver"
|
||||
return="void"
|
||||
abstract="false"
|
||||
@@ -33171,199 +32947,6 @@
|
||||
</parameter>
|
||||
</method>
|
||||
</interface>
|
||||
<class name="Entity"
|
||||
extends="java.lang.Object"
|
||||
abstract="false"
|
||||
static="false"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<implements name="android.os.Parcelable">
|
||||
</implements>
|
||||
<constructor name="Entity"
|
||||
type="android.content.Entity"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="values" type="android.content.ContentValues">
|
||||
</parameter>
|
||||
</constructor>
|
||||
<method name="addSubValue"
|
||||
return="void"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="uri" type="android.net.Uri">
|
||||
</parameter>
|
||||
<parameter name="values" type="android.content.ContentValues">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="describeContents"
|
||||
return="int"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</method>
|
||||
<method name="getEntityValues"
|
||||
return="android.content.ContentValues"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</method>
|
||||
<method name="getSubValues"
|
||||
return="java.util.ArrayList<android.content.Entity.NamedContentValues>"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</method>
|
||||
<method name="writeToParcel"
|
||||
return="void"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="dest" type="android.os.Parcel">
|
||||
</parameter>
|
||||
<parameter name="flags" type="int">
|
||||
</parameter>
|
||||
</method>
|
||||
<field name="CREATOR"
|
||||
type="android.os.Parcelable.Creator"
|
||||
transient="false"
|
||||
volatile="false"
|
||||
static="true"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</field>
|
||||
</class>
|
||||
<class name="Entity.NamedContentValues"
|
||||
extends="java.lang.Object"
|
||||
abstract="false"
|
||||
static="true"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<constructor name="Entity.NamedContentValues"
|
||||
type="android.content.Entity.NamedContentValues"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="uri" type="android.net.Uri">
|
||||
</parameter>
|
||||
<parameter name="values" type="android.content.ContentValues">
|
||||
</parameter>
|
||||
</constructor>
|
||||
<field name="uri"
|
||||
type="android.net.Uri"
|
||||
transient="false"
|
||||
volatile="false"
|
||||
static="false"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</field>
|
||||
<field name="values"
|
||||
type="android.content.ContentValues"
|
||||
transient="false"
|
||||
volatile="false"
|
||||
static="false"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</field>
|
||||
</class>
|
||||
<interface name="EntityIterator"
|
||||
abstract="true"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<method name="close"
|
||||
return="void"
|
||||
abstract="true"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</method>
|
||||
<method name="hasNext"
|
||||
return="boolean"
|
||||
abstract="true"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<exception name="RemoteException" type="android.os.RemoteException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="next"
|
||||
return="android.content.Entity"
|
||||
abstract="true"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<exception name="RemoteException" type="android.os.RemoteException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="reset"
|
||||
return="void"
|
||||
abstract="true"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<exception name="RemoteException" type="android.os.RemoteException">
|
||||
</exception>
|
||||
</method>
|
||||
</interface>
|
||||
<class name="Intent"
|
||||
extends="java.lang.Object"
|
||||
abstract="false"
|
||||
@@ -115542,6 +115125,82 @@
|
||||
>
|
||||
</field>
|
||||
</class>
|
||||
<class name="ContactsContract.RawContacts.Entity"
|
||||
extends="java.lang.Object"
|
||||
abstract="false"
|
||||
static="true"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<implements name="android.provider.BaseColumns">
|
||||
</implements>
|
||||
<field name="CONTENT_DIRECTORY"
|
||||
type="java.lang.String"
|
||||
transient="false"
|
||||
volatile="false"
|
||||
value=""entity""
|
||||
static="true"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</field>
|
||||
<field name="DATA_ID"
|
||||
type="java.lang.String"
|
||||
transient="false"
|
||||
volatile="false"
|
||||
value=""data_id""
|
||||
static="true"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</field>
|
||||
</class>
|
||||
<class name="ContactsContract.RawContactsEntity"
|
||||
extends="java.lang.Object"
|
||||
abstract="false"
|
||||
static="true"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<implements name="android.provider.BaseColumns">
|
||||
</implements>
|
||||
<field name="CONTENT_TYPE"
|
||||
type="java.lang.String"
|
||||
transient="false"
|
||||
volatile="false"
|
||||
value=""vnd.android.cursor.dir/raw_contact_entity""
|
||||
static="true"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</field>
|
||||
<field name="CONTENT_URI"
|
||||
type="android.net.Uri"
|
||||
transient="false"
|
||||
volatile="false"
|
||||
static="true"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</field>
|
||||
<field name="DATA_ID"
|
||||
type="java.lang.String"
|
||||
transient="false"
|
||||
volatile="false"
|
||||
value=""data_id""
|
||||
static="true"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</field>
|
||||
</class>
|
||||
<class name="ContactsContract.Settings"
|
||||
extends="java.lang.Object"
|
||||
abstract="false"
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.os.RemoteException;
|
||||
* An abstract class that makes it easy to implement an EntityIterator over a cursor.
|
||||
* The user must implement {@link #newEntityFromCursorLocked}, which runs inside of a
|
||||
* database transaction.
|
||||
* @hide
|
||||
*/
|
||||
public abstract class AbstractCursorEntityIterator implements EntityIterator {
|
||||
private final Cursor mEntityCursor;
|
||||
|
||||
@@ -344,6 +344,7 @@ public abstract class AsyncQueryHandler extends Handler {
|
||||
* @param token The token to identify the query.
|
||||
* @param cookie The cookie object.
|
||||
* @param iterator The iterator holding the query results.
|
||||
* @hide
|
||||
*/
|
||||
protected void onQueryEntitiesComplete(int token, Object cookie, EntityIterator iterator) {
|
||||
// Empty
|
||||
|
||||
@@ -131,6 +131,9 @@ public abstract class ContentProvider implements ComponentCallbacks {
|
||||
selectionArgs, sortOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
public EntityIterator queryEntities(Uri uri, String selection, String[] selectionArgs,
|
||||
String sortOrder) {
|
||||
enforceReadPermission(uri);
|
||||
@@ -152,11 +155,6 @@ public abstract class ContentProvider implements ComponentCallbacks {
|
||||
return ContentProvider.this.bulkInsert(uri, initialValues);
|
||||
}
|
||||
|
||||
public Uri insertEntity(Uri uri, Entity entities) {
|
||||
enforceWritePermission(uri);
|
||||
return ContentProvider.this.insertEntity(uri, entities);
|
||||
}
|
||||
|
||||
public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations)
|
||||
throws OperationApplicationException {
|
||||
for (ContentProviderOperation operation : operations) {
|
||||
@@ -182,11 +180,6 @@ public abstract class ContentProvider implements ComponentCallbacks {
|
||||
return ContentProvider.this.update(uri, values, selection, selectionArgs);
|
||||
}
|
||||
|
||||
public int updateEntity(Uri uri, Entity entity) {
|
||||
enforceWritePermission(uri);
|
||||
return ContentProvider.this.updateEntity(uri, entity);
|
||||
}
|
||||
|
||||
public ParcelFileDescriptor openFile(Uri uri, String mode)
|
||||
throws FileNotFoundException {
|
||||
if (mode != null && mode.startsWith("rw")) enforceWritePermission(uri);
|
||||
@@ -451,6 +444,9 @@ public abstract class ContentProvider implements ComponentCallbacks {
|
||||
public abstract Cursor query(Uri uri, String[] projection,
|
||||
String selection, String[] selectionArgs, String sortOrder);
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
public EntityIterator queryEntities(Uri uri, String selection, String[] selectionArgs,
|
||||
String sortOrder) {
|
||||
throw new UnsupportedOperationException();
|
||||
@@ -506,10 +502,6 @@ public abstract class ContentProvider implements ComponentCallbacks {
|
||||
return numValues;
|
||||
}
|
||||
|
||||
public Uri insertEntity(Uri uri, Entity entity) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* A request to delete one or more rows. The selection clause is applied when performing
|
||||
* the deletion, allowing the operation to affect multiple rows in a
|
||||
@@ -554,14 +546,10 @@ public abstract class ContentProvider implements ComponentCallbacks {
|
||||
public abstract int update(Uri uri, ContentValues values, String selection,
|
||||
String[] selectionArgs);
|
||||
|
||||
public int updateEntity(Uri uri, Entity entity) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* Open a file blob associated with a content URI.
|
||||
* This method can be called from multiple
|
||||
* threads, as described in
|
||||
* threads, as described inentity
|
||||
* <a href="{@docRoot}guide/topics/fundamentals.html#procthread">Application Fundamentals:
|
||||
* Processes and Threads</a>.
|
||||
*
|
||||
|
||||
@@ -89,22 +89,15 @@ public class ContentProviderClient {
|
||||
return mContentProvider.openAssetFile(url, mode);
|
||||
}
|
||||
|
||||
/** see {@link ContentProvider#queryEntities} */
|
||||
/**
|
||||
* see {@link ContentProvider#queryEntities}
|
||||
* @hide
|
||||
*/
|
||||
public EntityIterator queryEntities(Uri uri, String selection, String[] selectionArgs,
|
||||
String sortOrder) throws RemoteException {
|
||||
return mContentProvider.queryEntities(uri, selection, selectionArgs, sortOrder);
|
||||
}
|
||||
|
||||
/** see {@link ContentProvider#insertEntity} */
|
||||
public Uri insertEntity(Uri uri, Entity entity) throws RemoteException {
|
||||
return mContentProvider.insertEntity(uri, entity);
|
||||
}
|
||||
|
||||
/** see {@link ContentProvider#updateEntity} */
|
||||
public int updateEntity(Uri uri, Entity entity) throws RemoteException {
|
||||
return mContentProvider.updateEntity(uri, entity);
|
||||
}
|
||||
|
||||
/** see {@link ContentProvider#applyBatch} */
|
||||
public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations)
|
||||
throws RemoteException, OperationApplicationException {
|
||||
|
||||
@@ -155,28 +155,6 @@ abstract public class ContentProviderNative extends Binder implements IContentPr
|
||||
return true;
|
||||
}
|
||||
|
||||
case INSERT_ENTITIES_TRANSACTION:
|
||||
{
|
||||
data.enforceInterface(IContentProvider.descriptor);
|
||||
Uri uri = Uri.CREATOR.createFromParcel(data);
|
||||
Entity entity = (Entity) data.readParcelable(null);
|
||||
Uri newUri = insertEntity(uri, entity);
|
||||
reply.writeNoException();
|
||||
Uri.writeToParcel(reply, newUri);
|
||||
return true;
|
||||
}
|
||||
|
||||
case UPDATE_ENTITIES_TRANSACTION:
|
||||
{
|
||||
data.enforceInterface(IContentProvider.descriptor);
|
||||
Uri uri = Uri.CREATOR.createFromParcel(data);
|
||||
Entity entity = (Entity) data.readParcelable(null);
|
||||
int count = updateEntity(uri, entity);
|
||||
reply.writeNoException();
|
||||
reply.writeInt(count);
|
||||
return true;
|
||||
}
|
||||
|
||||
case APPLY_BATCH_TRANSACTION:
|
||||
{
|
||||
data.enforceInterface(IContentProvider.descriptor);
|
||||
@@ -267,6 +245,9 @@ abstract public class ContentProviderNative extends Binder implements IContentPr
|
||||
return super.onTransact(code, data, reply, flags);
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
private class IEntityIteratorImpl extends IEntityIterator.Stub {
|
||||
private final EntityIterator mEntityIterator;
|
||||
|
||||
@@ -371,6 +352,9 @@ final class ContentProviderProxy implements IContentProvider
|
||||
return adaptor;
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
public EntityIterator queryEntities(Uri url, String selection, String[] selectionArgs,
|
||||
String sortOrder)
|
||||
throws RemoteException {
|
||||
@@ -396,6 +380,9 @@ final class ContentProviderProxy implements IContentProvider
|
||||
return new RemoteEntityIterator(IEntityIterator.Stub.asInterface(entityIteratorBinder));
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
static class RemoteEntityIterator implements EntityIterator {
|
||||
private final IEntityIterator mEntityIterator;
|
||||
RemoteEntityIterator(IEntityIterator entityIterator) {
|
||||
@@ -506,44 +493,6 @@ final class ContentProviderProxy implements IContentProvider
|
||||
return results;
|
||||
}
|
||||
|
||||
public Uri insertEntity(Uri uri, Entity entity) throws RemoteException {
|
||||
Parcel data = Parcel.obtain();
|
||||
Parcel reply = Parcel.obtain();
|
||||
|
||||
try {
|
||||
data.writeInterfaceToken(IContentProvider.descriptor);
|
||||
uri.writeToParcel(data, 0);
|
||||
data.writeParcelable(entity, 0);
|
||||
|
||||
mRemote.transact(IContentProvider.INSERT_ENTITIES_TRANSACTION, data, reply, 0);
|
||||
|
||||
DatabaseUtils.readExceptionFromParcel(reply);
|
||||
return Uri.CREATOR.createFromParcel(reply);
|
||||
} finally {
|
||||
data.recycle();
|
||||
reply.recycle();
|
||||
}
|
||||
}
|
||||
|
||||
public int updateEntity(Uri uri, Entity entity) throws RemoteException {
|
||||
Parcel data = Parcel.obtain();
|
||||
Parcel reply = Parcel.obtain();
|
||||
|
||||
try {
|
||||
data.writeInterfaceToken(IContentProvider.descriptor);
|
||||
uri.writeToParcel(data, 0);
|
||||
data.writeParcelable(entity, 0);
|
||||
|
||||
mRemote.transact(IContentProvider.UPDATE_ENTITIES_TRANSACTION, data, reply, 0);
|
||||
|
||||
DatabaseUtils.readExceptionFromParcel(reply);
|
||||
return reply.readInt();
|
||||
} finally {
|
||||
data.recycle();
|
||||
reply.recycle();
|
||||
}
|
||||
}
|
||||
|
||||
public int delete(Uri url, String selection, String[] selectionArgs)
|
||||
throws RemoteException {
|
||||
Parcel data = Parcel.obtain();
|
||||
|
||||
@@ -218,6 +218,7 @@ public abstract class ContentResolver {
|
||||
/**
|
||||
* EntityIterator wrapper that releases the associated ContentProviderClient when the
|
||||
* iterator is closed.
|
||||
* @hide
|
||||
*/
|
||||
private class EntityIteratorWrapper implements EntityIterator {
|
||||
private final EntityIterator mInner;
|
||||
@@ -283,6 +284,7 @@ public abstract class ContentResolver {
|
||||
* @throws RemoteException thrown if a RemoteException is encountered while attempting
|
||||
* to communicate with a remote provider.
|
||||
* @throws IllegalArgumentException thrown if there is no provider that matches the uri
|
||||
* @hide
|
||||
*/
|
||||
public final EntityIterator queryEntities(Uri uri,
|
||||
String selection, String[] selectionArgs, String sortOrder) throws RemoteException {
|
||||
|
||||
@@ -26,6 +26,7 @@ import java.util.ArrayList;
|
||||
/**
|
||||
* Objects that pass through the ContentProvider and ContentResolver's methods that deal with
|
||||
* Entities must implement this abstract base class and thus themselves be Parcelable.
|
||||
* @hide
|
||||
*/
|
||||
public final class Entity implements Parcelable {
|
||||
final private ContentValues mValues;
|
||||
|
||||
@@ -18,6 +18,9 @@ package android.content;
|
||||
|
||||
import android.os.RemoteException;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
public interface EntityIterator {
|
||||
/**
|
||||
* Returns whether there are more elements to iterate, i.e. whether the
|
||||
|
||||
@@ -44,6 +44,9 @@ public interface IContentProvider extends IInterface {
|
||||
CursorWindow window) throws RemoteException;
|
||||
public Cursor query(Uri url, String[] projection, String selection,
|
||||
String[] selectionArgs, String sortOrder) throws RemoteException;
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
public EntityIterator queryEntities(Uri url, String selection,
|
||||
String[] selectionArgs, String sortOrder)
|
||||
throws RemoteException;
|
||||
@@ -51,12 +54,10 @@ public interface IContentProvider extends IInterface {
|
||||
public Uri insert(Uri url, ContentValues initialValues)
|
||||
throws RemoteException;
|
||||
public int bulkInsert(Uri url, ContentValues[] initialValues) throws RemoteException;
|
||||
public Uri insertEntity(Uri uri, Entity entities) throws RemoteException;
|
||||
public int delete(Uri url, String selection, String[] selectionArgs)
|
||||
throws RemoteException;
|
||||
public int update(Uri url, ContentValues values, String selection,
|
||||
String[] selectionArgs) throws RemoteException;
|
||||
public int updateEntity(Uri uri, Entity entity) throws RemoteException;
|
||||
public ParcelFileDescriptor openFile(Uri url, String mode)
|
||||
throws RemoteException, FileNotFoundException;
|
||||
public AssetFileDescriptor openAssetFile(Uri url, String mode)
|
||||
@@ -75,8 +76,9 @@ public interface IContentProvider extends IInterface {
|
||||
static final int BULK_INSERT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 12;
|
||||
static final int OPEN_FILE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 13;
|
||||
static final int OPEN_ASSET_FILE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 14;
|
||||
static final int INSERT_ENTITIES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 16;
|
||||
static final int UPDATE_ENTITIES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 17;
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
static final int QUERY_ENTITIES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 18;
|
||||
static final int APPLY_BATCH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 19;
|
||||
}
|
||||
|
||||
@@ -673,6 +673,30 @@ public final class ContactsContract {
|
||||
*/
|
||||
public static final String CONTENT_DIRECTORY = "data";
|
||||
}
|
||||
|
||||
/**
|
||||
* A sub-directory of a single raw contact that contains all of their {@link Data} rows.
|
||||
* To access this directory append {@link Entity#CONTENT_DIRECTORY} to the contact URI.
|
||||
*/
|
||||
public static final class Entity implements BaseColumns, DataColumns {
|
||||
/**
|
||||
* no public constructor since this is a utility class
|
||||
*/
|
||||
private Entity() {
|
||||
}
|
||||
|
||||
/**
|
||||
* The directory twig for this sub-table
|
||||
*/
|
||||
public static final String CONTENT_DIRECTORY = "entity";
|
||||
|
||||
/**
|
||||
* The ID of the data column. The value will be null if this raw contact has no
|
||||
* data rows.
|
||||
* <P>Type: INTEGER</P>
|
||||
*/
|
||||
public static final String DATA_ID = "data_id";
|
||||
}
|
||||
}
|
||||
|
||||
private interface StatusColumns extends Im.CommonPresenceColumns {
|
||||
@@ -869,6 +893,51 @@ public final class ContactsContract {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Constants for the raw contacts entities table, which can be though of as an outer join
|
||||
* of the raw_contacts table with the data table.
|
||||
*/
|
||||
public final static class RawContactsEntity
|
||||
implements BaseColumns, DataColumns, RawContactsColumns {
|
||||
/**
|
||||
* This utility class cannot be instantiated
|
||||
*/
|
||||
private RawContactsEntity() {}
|
||||
|
||||
/**
|
||||
* The content:// style URI for this table
|
||||
*/
|
||||
public static final Uri CONTENT_URI =
|
||||
Uri.withAppendedPath(AUTHORITY_URI, "raw_contact_entities");
|
||||
|
||||
/**
|
||||
* The MIME type of {@link #CONTENT_URI} providing a directory of raw contact entities.
|
||||
*/
|
||||
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/raw_contact_entity";
|
||||
|
||||
/**
|
||||
* If {@link #FOR_EXPORT_ONLY} is explicitly set to "1", returned Cursor toward
|
||||
* Data.CONTENT_URI contains only exportable data.
|
||||
*
|
||||
* This flag is useful (currently) only for vCard exporter in Contacts app, which
|
||||
* needs to exclude "un-exportable" data from available data to export, while
|
||||
* Contacts app itself has priviledge to access all data including "un-expotable"
|
||||
* ones and providers return all of them regardless of the callers' intention.
|
||||
* <P>Type: INTEGER</p>
|
||||
*
|
||||
* @hide Maybe available only in Eclair and not really ready for public use.
|
||||
* TODO: remove, or implement this feature completely. As of now (Eclair),
|
||||
* we only use this flag in queryEntities(), not query().
|
||||
*/
|
||||
public static final String FOR_EXPORT_ONLY = "for_export_only";
|
||||
|
||||
/**
|
||||
* The ID of the data column. The value will be null if this raw contact has no data rows.
|
||||
* <P>Type: INTEGER</P>
|
||||
*/
|
||||
public static final String DATA_ID = "data_id";
|
||||
}
|
||||
|
||||
private interface PhoneLookupColumns {
|
||||
/**
|
||||
* The phone number as the user entered it.
|
||||
|
||||
@@ -53,10 +53,6 @@ public class MockContentProvider implements IContentProvider {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public Uri insertEntity(Uri uri, Entity entities) throws RemoteException {
|
||||
throw new UnsupportedOperationException("unimplemented mock method");
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public IBulkCursor bulkQuery(Uri url, String[] projection, String selection,
|
||||
String[] selectionArgs, String sortOrder, IContentObserver observer,
|
||||
@@ -103,6 +99,9 @@ public class MockContentProvider implements IContentProvider {
|
||||
throw new UnsupportedOperationException("unimplemented mock method");
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
public EntityIterator queryEntities(Uri url, String selection, String[] selectionArgs,
|
||||
String sortOrder) throws RemoteException {
|
||||
throw new UnsupportedOperationException("unimplemented mock method");
|
||||
@@ -114,10 +113,6 @@ public class MockContentProvider implements IContentProvider {
|
||||
throw new UnsupportedOperationException("unimplemented mock method");
|
||||
}
|
||||
|
||||
public int updateEntity(Uri uri, Entity entity) throws RemoteException {
|
||||
throw new UnsupportedOperationException("unimplemented mock method");
|
||||
}
|
||||
|
||||
public IBinder asBinder() {
|
||||
throw new UnsupportedOperationException("unimplemented mock method");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user