diff options
| author | Fred Quintana <fredq@google.com> | 2009-05-22 14:23:31 -0700 |
|---|---|---|
| committer | Fred Quintana <fredq@google.com> | 2009-06-01 16:17:03 -0700 |
| commit | 03d9490758c9318cee6d14d3cc5007556dce92d0 (patch) | |
| tree | 58d56d848d0a1f0638157f0ba70afc9b75119601 /core/java/android/content/ContentProviderNative.java | |
| parent | b0d031ad132dac585d1f21d46ebebcc4d13f40c7 (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.java | 16 |
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); |
