Use concrete CREATOR instance for parceling lists
Replaced readTypedArrayList/writeTypedArrayList with writeTypedList/createTypedArrayList(CREATOR) Bug: 71508348 Test: CtsAutoFillServiceTestCases pass Merged-In: I2a8321023b40cc74b7026eb0fb32a9cc5f5543a9 Change-Id: Id17d02e40a4ae567bf2d74d2ea8ba4d8a943bdb7
This commit is contained in:
@@ -1279,6 +1279,13 @@ public final class Parcel {
|
|||||||
* @see Parcelable
|
* @see Parcelable
|
||||||
*/
|
*/
|
||||||
public final <T extends Parcelable> void writeTypedList(List<T> val) {
|
public final <T extends Parcelable> void writeTypedList(List<T> val) {
|
||||||
|
writeTypedList(val, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public <T extends Parcelable> void writeTypedList(List<T> val, int parcelableFlags) {
|
||||||
if (val == null) {
|
if (val == null) {
|
||||||
writeInt(-1);
|
writeInt(-1);
|
||||||
return;
|
return;
|
||||||
@@ -1287,13 +1294,7 @@ public final class Parcel {
|
|||||||
int i=0;
|
int i=0;
|
||||||
writeInt(N);
|
writeInt(N);
|
||||||
while (i < N) {
|
while (i < N) {
|
||||||
T item = val.get(i);
|
writeTypedObject(val.get(i), parcelableFlags);
|
||||||
if (item != null) {
|
|
||||||
writeInt(1);
|
|
||||||
item.writeToParcel(this, 0);
|
|
||||||
} else {
|
|
||||||
writeInt(0);
|
|
||||||
}
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -315,8 +315,8 @@ public final class Dataset implements Parcelable {
|
|||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel parcel, int flags) {
|
public void writeToParcel(Parcel parcel, int flags) {
|
||||||
parcel.writeParcelable(mPresentation, flags);
|
parcel.writeParcelable(mPresentation, flags);
|
||||||
parcel.writeTypedArrayList(mFieldIds, flags);
|
parcel.writeTypedList(mFieldIds, flags);
|
||||||
parcel.writeTypedArrayList(mFieldValues, flags);
|
parcel.writeTypedList(mFieldValues, flags);
|
||||||
parcel.writeParcelableList(mFieldPresentations, flags);
|
parcel.writeParcelableList(mFieldPresentations, flags);
|
||||||
parcel.writeParcelable(mAuthentication, flags);
|
parcel.writeParcelable(mAuthentication, flags);
|
||||||
parcel.writeString(mId);
|
parcel.writeString(mId);
|
||||||
@@ -332,8 +332,9 @@ public final class Dataset implements Parcelable {
|
|||||||
final Builder builder = (presentation == null)
|
final Builder builder = (presentation == null)
|
||||||
? new Builder()
|
? new Builder()
|
||||||
: new Builder(presentation);
|
: new Builder(presentation);
|
||||||
final ArrayList<AutofillId> ids = parcel.readTypedArrayList(null);
|
final ArrayList<AutofillId> ids = parcel.createTypedArrayList(AutofillId.CREATOR);
|
||||||
final ArrayList<AutofillValue> values = parcel.readTypedArrayList(null);
|
final ArrayList<AutofillValue> values =
|
||||||
|
parcel.createTypedArrayList(AutofillValue.CREATOR);
|
||||||
final ArrayList<RemoteViews> presentations = new ArrayList<>();
|
final ArrayList<RemoteViews> presentations = new ArrayList<>();
|
||||||
parcel.readParcelableList(presentations, null);
|
parcel.readParcelableList(presentations, null);
|
||||||
final int idCount = (ids != null) ? ids.size() : 0;
|
final int idCount = (ids != null) ? ids.size() : 0;
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ package android.service.autofill;
|
|||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.CancellationSignal;
|
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
import com.android.internal.util.Preconditions;
|
import com.android.internal.util.Preconditions;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -45,7 +45,7 @@ public final class SaveRequest implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private SaveRequest(@NonNull Parcel parcel) {
|
private SaveRequest(@NonNull Parcel parcel) {
|
||||||
this(parcel.readTypedArrayList(null), parcel.readBundle());
|
this(parcel.createTypedArrayList(FillContext.CREATOR), parcel.readBundle());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -57,7 +57,7 @@ public final class SaveRequest implements Parcelable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the extra client state returned from the last {@link
|
* Gets the extra client state returned from the last {@link
|
||||||
* AutofillService#onFillRequest(FillRequest, CancellationSignal, FillCallback)}
|
* AutofillService#onFillRequest(FillRequest, android.os.CancellationSignal, FillCallback)}
|
||||||
* fill request}.
|
* fill request}.
|
||||||
*
|
*
|
||||||
* @return The client state.
|
* @return The client state.
|
||||||
@@ -73,7 +73,7 @@ public final class SaveRequest implements Parcelable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel parcel, int flags) {
|
public void writeToParcel(Parcel parcel, int flags) {
|
||||||
parcel.writeTypedArrayList(mFillContexts, flags);
|
parcel.writeTypedList(mFillContexts, flags);
|
||||||
parcel.writeBundle(mClientState);
|
parcel.writeBundle(mClientState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user