Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe35e69d authored by Felipe Leme's avatar Felipe Leme
Browse files

Use ArrayList instead of ArraySet for FillResponse.getDatasets()...

...otherwise it might not preserve the order.

Test: manual verification
BUG: 35348724

Change-Id: Ib19d364253ea4f0cbbeca8a73b08800482e74820
parent eb30161a
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@ import android.view.autofill.AutoFillId;
import android.view.autofill.AutoFillManager;
import android.widget.RemoteViews;

import java.util.ArrayList;

/**
 * Response for a {@link
 * AutoFillService#onFillRequest(android.app.assist.AssistStructure,
@@ -163,7 +165,7 @@ import android.widget.RemoteViews;
 */
public final class FillResponse implements Parcelable {

    private final ArraySet<Dataset> mDatasets;
    private final ArrayList<Dataset> mDatasets;
    private final ArraySet<AutoFillId> mSavableIds;
    private final Bundle mExtras;
    private final RemoteViews mPresentation;
@@ -183,7 +185,7 @@ public final class FillResponse implements Parcelable {
    }

    /** @hide */
    public @Nullable ArraySet<Dataset> getDatasets() {
    public @Nullable ArrayList<Dataset> getDatasets() {
        return mDatasets;
    }

@@ -207,7 +209,7 @@ public final class FillResponse implements Parcelable {
     * one dataset or set an authentication intent with a presentation view.
     */
    public static final class Builder {
        private ArraySet<Dataset> mDatasets;
        private ArrayList<Dataset> mDatasets;
        private ArraySet<AutoFillId> mSavableIds;
        private Bundle mExtras;
        private RemoteViews mPresentation;
@@ -284,7 +286,7 @@ public final class FillResponse implements Parcelable {
                return this;
            }
            if (mDatasets == null) {
                mDatasets = new ArraySet<>();
                mDatasets = new ArrayList<>();
            }
            if (!mDatasets.add(dataset)) {
                return this;
@@ -398,7 +400,7 @@ public final class FillResponse implements Parcelable {

    @Override
    public void writeToParcel(Parcel parcel, int flags) {
        parcel.writeTypedArraySet(mDatasets, flags);
        parcel.writeTypedArrayList(mDatasets, flags);
        parcel.writeTypedArraySet(mSavableIds, flags);
        parcel.writeParcelable(mExtras, flags);
        parcel.writeParcelable(mPresentation, flags);
@@ -413,10 +415,10 @@ public final class FillResponse implements Parcelable {
            // the system obeys the contract of the builder to avoid attacks
            // using specially crafted parcels.
            final Builder builder = new Builder();
            final ArraySet<Dataset> datasets = parcel.readTypedArraySet(null);
            final ArrayList<Dataset> datasets = parcel.readTypedArrayList(null);
            final int datasetCount = (datasets != null) ? datasets.size() : 0;
            for (int i = 0; i < datasetCount; i++) {
                builder.addDataset(datasets.valueAt(i));
                builder.addDataset(datasets.get(i));
            }
            final ArraySet<AutoFillId> fillIds = parcel.readTypedArraySet(null);
            final int fillIdCount = (fillIds != null) ? fillIds.size() : 0;
+1 −2
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import android.widget.FrameLayout;
import android.widget.ListView;
import android.widget.RemoteViews;
import com.android.internal.R;
import com.android.internal.R;

import java.util.ArrayList;
import java.util.List;
@@ -48,7 +47,7 @@ final class DatasetPicker extends FrameLayout implements OnItemClickListener {

    private final ArrayAdapter<ViewItem> mAdapter;

    DatasetPicker(Context context, ArraySet<Dataset> datasets, AutoFillId filteredViewId,
    DatasetPicker(Context context, ArrayList<Dataset> datasets, AutoFillId filteredViewId,
            Listener listener) {
        super(context);
        mListener = listener;