summaryrefslogtreecommitdiff
path: root/core/java/android/content/ContentProviderNative.java
diff options
context:
space:
mode:
authorFred Quintana <fredq@google.com>2009-05-22 14:23:31 -0700
committerFred Quintana <fredq@google.com>2009-06-01 16:17:03 -0700
commit03d9490758c9318cee6d14d3cc5007556dce92d0 (patch)
tree58d56d848d0a1f0638157f0ba70afc9b75119601 /core/java/android/content/ContentProviderNative.java
parentb0d031ad132dac585d1f21d46ebebcc4d13f40c7 (diff)
- 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
Diffstat (limited to 'core/java/android/content/ContentProviderNative.java')
-rw-r--r--core/java/android/content/ContentProviderNative.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/core/java/android/content/ContentProviderNative.java b/core/java/android/content/ContentProviderNative.java
index 474772695d75..a4c217b69069 100644
--- a/core/java/android/content/ContentProviderNative.java
+++ b/core/java/android/content/ContentProviderNative.java
@@ -33,6 +33,7 @@ import android.os.ParcelFileDescriptor;
import android.os.Parcelable;
import java.io.FileNotFoundException;
+import java.util.ArrayList;
/**
* {@hide}
@@ -179,8 +180,12 @@ abstract public class ContentProviderNative extends Binder implements IContentPr
case APPLY_BATCH_TRANSACTION:
{
data.enforceInterface(IContentProvider.descriptor);
- final ContentProviderOperation[] operations =
- data.createTypedArray(ContentProviderOperation.CREATOR);
+ final int numOperations = data.readInt();
+ final ArrayList<ContentProviderOperation> operations =
+ new ArrayList<ContentProviderOperation>(numOperations);
+ for (int i = 0; i < numOperations; i++) {
+ operations.add(i, ContentProviderOperation.CREATOR.createFromParcel(data));
+ }
final ContentProviderResult[] results = applyBatch(operations);
reply.writeNoException();
reply.writeTypedArray(results, 0);
@@ -471,13 +476,16 @@ final class ContentProviderProxy implements IContentProvider
return count;
}
- public ContentProviderResult[] applyBatch(ContentProviderOperation[] operations)
+ public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations)
throws RemoteException, OperationApplicationException {
Parcel data = Parcel.obtain();
Parcel reply = Parcel.obtain();
data.writeInterfaceToken(IContentProvider.descriptor);
- data.writeTypedArray(operations, 0);
+ data.writeInt(operations.size());
+ for (ContentProviderOperation operation : operations) {
+ operation.writeToParcel(data, 0);
+ }
mRemote.transact(IContentProvider.APPLY_BATCH_TRANSACTION, data, reply, 0);
DatabaseUtils.readExceptionWithOperationApplicationExceptionFromParcel(reply);