Merge "Removed Parcelable from FieldClassification."
diff --git a/api/current.txt b/api/current.txt
index 9bdcdad..5df52b9 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -37692,11 +37692,8 @@
field public static final android.os.Parcelable.Creator<android.service.autofill.EditDistanceScorer> CREATOR;
}
- public final class FieldClassification implements android.os.Parcelable {
- method public int describeContents();
+ public final class FieldClassification {
method public java.util.List<android.service.autofill.FieldClassification.Match> getMatches();
- method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator<android.service.autofill.FieldClassification> CREATOR;
}
public static final class FieldClassification.Match {
diff --git a/core/java/android/service/autofill/FieldClassification.java b/core/java/android/service/autofill/FieldClassification.java
index 001e3a0..001b291 100644
--- a/core/java/android/service/autofill/FieldClassification.java
+++ b/core/java/android/service/autofill/FieldClassification.java
@@ -20,7 +20,6 @@
import android.annotation.NonNull;
import android.os.Parcel;
-import android.os.Parcelable;
import android.view.autofill.Helper;
import com.android.internal.util.Preconditions;
@@ -34,8 +33,7 @@
* Represents the <a href="AutofillService.html#FieldClassification">field classification</a>
* results for a given field.
*/
-// TODO(b/70291841): let caller handle Parcelable...
-public final class FieldClassification implements Parcelable {
+public final class FieldClassification {
private final ArrayList<Match> mMatches;
@@ -72,42 +70,38 @@
return "FieldClassification: " + mMatches;
}
- /////////////////////////////////////
- // Parcelable "contract" methods. //
- /////////////////////////////////////
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel parcel, int flags) {
+ private void writeToParcel(Parcel parcel) {
parcel.writeInt(mMatches.size());
for (int i = 0; i < mMatches.size(); i++) {
mMatches.get(i).writeToParcel(parcel);
}
}
- public static final Parcelable.Creator<FieldClassification> CREATOR =
- new Parcelable.Creator<FieldClassification>() {
-
- @Override
- public FieldClassification createFromParcel(Parcel parcel) {
- final int size = parcel.readInt();
- final ArrayList<Match> matches = new ArrayList<>();
- for (int i = 0; i < size; i++) {
- matches.add(i, Match.readFromParcel(parcel));
- }
-
- return new FieldClassification(matches);
+ private static FieldClassification readFromParcel(Parcel parcel) {
+ final int size = parcel.readInt();
+ final ArrayList<Match> matches = new ArrayList<>();
+ for (int i = 0; i < size; i++) {
+ matches.add(i, Match.readFromParcel(parcel));
}
- @Override
- public FieldClassification[] newArray(int size) {
- return new FieldClassification[size];
+ return new FieldClassification(matches);
+ }
+
+ static FieldClassification[] readArrayFromParcel(Parcel parcel) {
+ final int length = parcel.readInt();
+ final FieldClassification[] fcs = new FieldClassification[length];
+ for (int i = 0; i < length; i++) {
+ fcs[i] = readFromParcel(parcel);
}
- };
+ return fcs;
+ }
+
+ static void writeArrayToParcel(@NonNull Parcel parcel, @NonNull FieldClassification[] fcs) {
+ parcel.writeInt(fcs.length);
+ for (int i = 0; i < fcs.length; i++) {
+ fcs[i].writeToParcel(parcel);
+ }
+ }
/**
* Represents the score of a {@link UserData} entry for the field.
@@ -170,23 +164,5 @@
private static Match readFromParcel(@NonNull Parcel parcel) {
return new Match(parcel.readString(), parcel.readFloat());
}
-
- /** @hide */
- public static Match[] readArrayFromParcel(@NonNull Parcel parcel) {
- final int length = parcel.readInt();
- final Match[] matches = new Match[length];
- for (int i = 0; i < length; i++) {
- matches[i] = readFromParcel(parcel);
- }
- return matches;
- }
-
- /** @hide */
- public static void writeArrayToParcel(@NonNull Parcel parcel, @NonNull Match[] matches) {
- parcel.writeInt(matches.length);
- for (int i = 0; i < matches.length; i++) {
- matches[i].writeToParcel(parcel);
- }
- }
}
}
diff --git a/core/java/android/service/autofill/FillEventHistory.java b/core/java/android/service/autofill/FillEventHistory.java
index 2eb44cf..df62446 100644
--- a/core/java/android/service/autofill/FillEventHistory.java
+++ b/core/java/android/service/autofill/FillEventHistory.java
@@ -156,7 +156,8 @@
final AutofillId[] detectedFields = event.mDetectedFieldIds;
parcel.writeParcelableArray(detectedFields, flags);
if (detectedFields != null) {
- parcel.writeParcelableArray(event.mDetectedFieldClassifications, flags);
+ FieldClassification.writeArrayToParcel(parcel,
+ event.mDetectedFieldClassifications);
}
}
}
@@ -551,7 +552,7 @@
AutofillId.class);
final FieldClassification[] detectedFieldClassifications =
(detectedFieldIds != null)
- ? parcel.readParcelableArray(null, FieldClassification.class)
+ ? FieldClassification.readArrayFromParcel(parcel)
: null;
selection.addEvent(new Event(eventType, datasetId, clientState,