add ipc support to batching
diff --git a/core/java/android/content/ContentProvider.java b/core/java/android/content/ContentProvider.java
index c204dda..bb25b68 100644
--- a/core/java/android/content/ContentProvider.java
+++ b/core/java/android/content/ContentProvider.java
@@ -151,9 +151,23 @@
return ContentProvider.this.bulkInsert(uri, initialValues);
}
- public Uri[] bulkInsertEntities(Uri uri, Entity[] entities) {
+ public Uri insertEntity(Uri uri, Entity entities) {
checkWritePermission(uri);
- return ContentProvider.this.bulkInsertEntities(uri, entities);
+ return ContentProvider.this.insertEntity(uri, entities);
+ }
+
+ public ContentProviderResult[] applyBatch(ContentProviderOperation[] operations)
+ throws OperationApplicationException {
+ for (ContentProviderOperation operation : operations) {
+ if (operation.isReadOperation()) {
+ checkReadPermission(operation.getUri());
+ }
+
+ if (operation.isWriteOperation()) {
+ checkWritePermission(operation.getUri());
+ }
+ }
+ return ContentProvider.this.applyBatch(operations);
}
public int delete(Uri uri, String selection, String[] selectionArgs) {
@@ -167,9 +181,9 @@
return ContentProvider.this.update(uri, values, selection, selectionArgs);
}
- public int[] bulkUpdateEntities(Uri uri, Entity[] entities) {
+ public int updateEntity(Uri uri, Entity entity) {
checkWritePermission(uri);
- return ContentProvider.this.bulkUpdateEntities(uri, entities);
+ return ContentProvider.this.updateEntity(uri, entity);
}
public ParcelFileDescriptor openFile(Uri uri, String mode)
@@ -403,14 +417,6 @@
throw new UnsupportedOperationException();
}
- public Uri[] bulkInsertEntities(Uri uri, Entity[] entities) {
- Uri[] result = new Uri[entities.length];
- for (int i = 0; i < entities.length; i++) {
- result[i] = insertEntity(uri, entities[i]);
- }
- return result;
- }
-
/**
* 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
@@ -459,14 +465,6 @@
throw new UnsupportedOperationException();
}
- public int[] bulkUpdateEntities(Uri uri, Entity[] entities) {
- int[] result = new int[entities.length];
- for (int i = 0; i < entities.length; i++) {
- result[i] = updateEntity(uri, entities[i]);
- }
- return result;
- }
-
/**
* Open a file blob associated with a content URI.
* This method can be called from multiple