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

Commit 2dfc869d authored by Adam He's avatar Adam He
Browse files

FillRequest provides AutofillId of view tapped in FillContext.

Fixes: 126381515
Test: atest CtsAutoFillServiceTestCases
Change-Id: I10c30d545d9a3166aad8c71d5b14d5bb83b9693f
parent 8e3967e1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -41185,8 +41185,9 @@ package android.service.autofill {
  public final class FillContext implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public android.view.autofill.AutofillId getFocusedId();
    method public int getRequestId();
    method public android.app.assist.AssistStructure getStructure();
    method @NonNull public android.app.assist.AssistStructure getStructure();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.service.autofill.FillContext> CREATOR;
  }
+18 −3
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ import java.util.LinkedList;
public final class FillContext implements Parcelable {
    private final int mRequestId;
    private final @NonNull AssistStructure mStructure;
    private final @NonNull AutofillId mFocusedId;

    /**
     * Lookup table AutofillId->ViewNode to speed up {@link #findViewNodesByAutofillIds}
@@ -58,13 +59,15 @@ public final class FillContext implements Parcelable {


    /** @hide */
    public FillContext(int requestId, @NonNull AssistStructure structure) {
    public FillContext(int requestId, @NonNull AssistStructure structure,
            @NonNull AutofillId autofillId) {
        mRequestId = requestId;
        mStructure = structure;
        mFocusedId = autofillId;
    }

    private FillContext(Parcel parcel) {
        this(parcel.readInt(), parcel.readParcelable(null));
        this(parcel.readInt(), parcel.readParcelable(null), parcel.readParcelable(null));
    }

    /**
@@ -82,15 +85,24 @@ public final class FillContext implements Parcelable {
    /**
     * @return The screen content.
     */
    @NonNull
    public AssistStructure getStructure() {
        return mStructure;
    }

    /**
     * @return the AutofillId of the view that triggered autofill.
     */
    @NonNull
    public AutofillId getFocusedId() {
        return mFocusedId;
    }

    @Override
    public String toString() {
        if (!sDebug)  return super.toString();

        return "FillContext [reqId=" + mRequestId + "]";
        return "FillContext [reqId=" + mRequestId + ", focusedId=" + mFocusedId + "]";
    }

    @Override
@@ -102,6 +114,7 @@ public final class FillContext implements Parcelable {
    public void writeToParcel(Parcel parcel, int flags) {
        parcel.writeInt(mRequestId);
        parcel.writeParcelable(mStructure, flags);
        parcel.writeParcelable(mFocusedId, flags);
    }

    /**
@@ -180,11 +193,13 @@ public final class FillContext implements Parcelable {
    public static final Parcelable.Creator<FillContext> CREATOR =
            new Parcelable.Creator<FillContext>() {
        @Override
        @NonNull
        public FillContext createFromParcel(Parcel parcel) {
            return new FillContext(parcel);
        }

        @Override
        @NonNull
        public FillContext[] newArray(int size) {
            return new FillContext[size];
        }
+1 −1
Original line number Diff line number Diff line
@@ -335,7 +335,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
                if (mContexts == null) {
                    mContexts = new ArrayList<>(1);
                }
                mContexts.add(new FillContext(requestId, structure));
                mContexts.add(new FillContext(requestId, structure, mCurrentViewId));

                cancelCurrentRequestLocked();