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

Commit eb49515a authored by Svet Ganov's avatar Svet Ganov
Browse files

Move the presentation view to proper location.

Test: Auto-fill tests pass

bug:33550221

Change-Id: I041a084800e761859c67b962fb4aefafce8956d8
parent e7473fae
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -36244,10 +36244,9 @@ package android.service.autofill {
  }
  public static final class Dataset.Builder {
    ctor public Dataset.Builder();
    ctor public Dataset.Builder(android.widget.RemoteViews);
    method public android.service.autofill.Dataset build();
    method public android.service.autofill.Dataset.Builder setAuthentication(android.content.IntentSender);
    method public android.service.autofill.Dataset.Builder setPresentation(android.widget.RemoteViews);
    method public android.service.autofill.Dataset.Builder setValue(android.view.autofill.AutoFillId, android.view.autofill.AutoFillValue);
  }
@@ -36267,9 +36266,8 @@ package android.service.autofill {
    method public android.service.autofill.FillResponse.Builder addDataset(android.service.autofill.Dataset);
    method public android.service.autofill.FillResponse.Builder addSavableFields(android.view.autofill.AutoFillId...);
    method public android.service.autofill.FillResponse build();
    method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender);
    method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender, android.widget.RemoteViews);
    method public android.service.autofill.FillResponse.Builder setExtras(android.os.Bundle);
    method public android.service.autofill.FillResponse.Builder setPresentation(android.widget.RemoteViews);
  }
  public final class SaveCallback {
+2 −4
Original line number Diff line number Diff line
@@ -39361,10 +39361,9 @@ package android.service.autofill {
  }
  public static final class Dataset.Builder {
    ctor public Dataset.Builder();
    ctor public Dataset.Builder(android.widget.RemoteViews);
    method public android.service.autofill.Dataset build();
    method public android.service.autofill.Dataset.Builder setAuthentication(android.content.IntentSender);
    method public android.service.autofill.Dataset.Builder setPresentation(android.widget.RemoteViews);
    method public android.service.autofill.Dataset.Builder setValue(android.view.autofill.AutoFillId, android.view.autofill.AutoFillValue);
  }
@@ -39384,9 +39383,8 @@ package android.service.autofill {
    method public android.service.autofill.FillResponse.Builder addDataset(android.service.autofill.Dataset);
    method public android.service.autofill.FillResponse.Builder addSavableFields(android.view.autofill.AutoFillId...);
    method public android.service.autofill.FillResponse build();
    method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender);
    method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender, android.widget.RemoteViews);
    method public android.service.autofill.FillResponse.Builder setExtras(android.os.Bundle);
    method public android.service.autofill.FillResponse.Builder setPresentation(android.widget.RemoteViews);
  }
  public final class SaveCallback {
+2 −4
Original line number Diff line number Diff line
@@ -36383,10 +36383,9 @@ package android.service.autofill {
  }
  public static final class Dataset.Builder {
    ctor public Dataset.Builder();
    ctor public Dataset.Builder(android.widget.RemoteViews);
    method public android.service.autofill.Dataset build();
    method public android.service.autofill.Dataset.Builder setAuthentication(android.content.IntentSender);
    method public android.service.autofill.Dataset.Builder setPresentation(android.widget.RemoteViews);
    method public android.service.autofill.Dataset.Builder setValue(android.view.autofill.AutoFillId, android.view.autofill.AutoFillValue);
  }
@@ -36406,9 +36405,8 @@ package android.service.autofill {
    method public android.service.autofill.FillResponse.Builder addDataset(android.service.autofill.Dataset);
    method public android.service.autofill.FillResponse.Builder addSavableFields(android.view.autofill.AutoFillId...);
    method public android.service.autofill.FillResponse build();
    method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender);
    method public android.service.autofill.FillResponse.Builder setAuthentication(android.content.IntentSender, android.widget.RemoteViews);
    method public android.service.autofill.FillResponse.Builder setExtras(android.os.Bundle);
    method public android.service.autofill.FillResponse.Builder setPresentation(android.widget.RemoteViews);
  }
  public final class SaveCallback {
+6 −12
Original line number Diff line number Diff line
@@ -106,15 +106,13 @@ public final class Dataset implements Parcelable {
        private boolean mDestroyed;

        /**
         * Sets the presentation used to visualize this dataset.
         * Creates a new builder.
         *
         * @param presentation The presentation view.
         *
         * @return This builder.
         * @param presentation The presentation used to visualize this dataset.
         */
        public @NonNull Builder setPresentation(@Nullable RemoteViews presentation) {
        public Builder(@NonNull RemoteViews presentation) {
            Preconditions.checkNotNull(presentation, "presentation must be non-null");
            mPresentation = presentation;
            return this;
        }

        /**
@@ -201,9 +199,6 @@ public final class Dataset implements Parcelable {
                throw new IllegalArgumentException(
                        "at least one value must be set");
            }
            if (mPresentation == null) {
                throw new IllegalArgumentException("presentation must be set");
            }
            return new Dataset(this);
        }

@@ -225,9 +220,9 @@ public final class Dataset implements Parcelable {

    @Override
    public void writeToParcel(Parcel parcel, int flags) {
        parcel.writeParcelable(mPresentation, flags);
        parcel.writeTypedArrayList(mFieldIds, flags);
        parcel.writeTypedArrayList(mFieldValues, flags);
        parcel.writeParcelable(mPresentation, flags);
        parcel.writeParcelable(mAuthentication, flags);
    }

@@ -237,7 +232,7 @@ public final class Dataset implements Parcelable {
            // Always go through the builder to ensure the data ingested by
            // the system obeys the contract of the builder to avoid attacks
            // using specially crafted parcels.
            final Builder builder = new Builder();
            final Builder builder = new Builder(parcel.readParcelable(null));
            final ArrayList<AutoFillId> ids = parcel.readTypedArrayList(null);
            final ArrayList<AutoFillValue> values = parcel.readTypedArrayList(null);
            final int idCount = (ids != null) ? ids.size() : 0;
@@ -247,7 +242,6 @@ public final class Dataset implements Parcelable {
                AutoFillValue value = (valueCount > i) ? values.get(i) : null;
                builder.setValue(id, value);
            }
            builder.setPresentation(parcel.readParcelable(null));
            builder.setAuthentication(parcel.readParcelable(null));
            return builder.build();
        }
+23 −42
Original line number Diff line number Diff line
@@ -45,8 +45,7 @@ import java.util.ArrayList;
 *
 * <pre class="prettyprint">
 *  new FillResponse.Builder()
 *      .add(new Dataset.Builder()
 *          .setPresentation(createPresentation())
 *      .add(new Dataset.Builder(createPresentation())
 *          .setTextFieldValue(id1, "homer")
 *          .setTextFieldValue(id2, "D'OH!")
 *          .build())
@@ -57,13 +56,11 @@ import java.util.ArrayList;
 *
 * <pre class="prettyprint">
 *  new FillResponse.Builder()
 *      .add(new Dataset.Builder()
 *          .setPresentation(createFirstPresentation())
 *      .add(new Dataset.Builder(createFirstPresentation())
 *          .setTextFieldValue(id1, "homer")
 *          .setTextFieldValue(id2, "D'OH!")
 *          .build())
 *      .add(new Dataset.Builder()
 *          .setPresentation(createSecondPresentation())
 *      .add(new Dataset.Builder(createSecondPresentation())
 *          .setTextFieldValue(id1, "elbarto")
 *          .setTextFieldValue(id2, "cowabonga")
 *          .build())
@@ -87,8 +84,7 @@ import java.util.ArrayList;
 *
 * <pre class="prettyprint">
 *   new FillResponse.Builder()
 *       .add(new Dataset.Builder(")
 *          .setPresentation(createPresentation())
 *       .add(new Dataset.Builder(createPresentation())
 *          .setTextFieldValue(id1, "Homer")                  // first name
 *          .setTextFieldValue(id2, "Simpson")                // last name
 *          .setTextFieldValue(id3, "742 Evergreen Terrace")  // street
@@ -116,13 +112,11 @@ import java.util.ArrayList;
 *
 * <pre class="prettyprint">
 *  new FillResponse.Builder()
 *      .add(new Dataset.Builder()
 *          .setPresentation(createFirstPresentation())
 *      .add(new Dataset.Builder(createFirstPresentation())
 *          .setTextFieldValue(id1, "Homer")
 *          .setTextFieldValue(id2, "Simpson")
 *          .build())
 *      .add(new Dataset.Builder()
 *          .setPresentation(createSecondPresentation())
 *      .add(new Dataset.Builder(createSecondPresentation())
 *          .setTextFieldValue(id1, "Bart")
 *          .setTextFieldValue(id2, "Simpson")
 *          .build())
@@ -134,13 +128,11 @@ import java.util.ArrayList;
 *
 * <pre class="prettyprint">
 *  new FillResponse.Builder()
 *      .add(new Dataset.Builder()
 *          .setPresentation(createThirdPresentation())
 *      .add(new Dataset.Builder(createThirdPresentation())
 *          .setTextFieldValue(id3, "742 Evergreen Terrace")
 *          .setTextFieldValue(id4, "Springfield")
 *          .build())
 *      .add(new Dataset.Builder()
 *          .setPresentation(createFourthPresentation())
 *      .add(new Dataset.Builder(createFourthPresentation())
 *          .setTextFieldValue(id3, "Springfield Power Plant")
 *          .setTextFieldValue(id4, "Springfield")
 *          .build())
@@ -216,23 +208,6 @@ public final class FillResponse implements Parcelable {
        private IntentSender mAuthentication;
        private boolean mDestroyed;

        /**
         * Sets the presentation used to visualize this response. You should
         * set this only if you need an authentication as this is the only
         * case the response needs to be presented to the user.
         *
         * @param presentation The presentation view.
         *
         * @return This builder.
         *
         * @see #setAuthentication(IntentSender)
         */
        public @NonNull
        FillResponse.Builder setPresentation(@Nullable RemoteViews presentation) {
            mPresentation = presentation;
            return this;
        }

        /**
         * Requires a fill response authentication before auto-filling the activity with
         * any data set in this response.
@@ -259,19 +234,29 @@ public final class FillResponse implements Parcelable {
         * available data sets some of which may need to be further authenticated, for
         * example a credit card whose CVV needs to be entered.</p>
         *
         * <p>If you provide an authentication intent you must also provide a presentation
         * which is used to visualize visualize the response for triggering the authentication
         * flow.</p>
         *
         * <p></><strong>Note:</strong> Do not make the provided pending intent
         * immutable by using {@link android.app.PendingIntent#FLAG_IMMUTABLE} as the
         * platform needs to fill in the authentication arguments.</p>
         *
         * @param authentication Intent to an activity with your authentication flow.
         * @param presentation The presentation to visualize the response.
         * @return This builder.
         *
         * @see android.app.PendingIntent#getIntentSender()
         * @see #setPresentation(RemoteViews)
         */
        public @NonNull Builder setAuthentication(@Nullable IntentSender authentication) {
        public @NonNull Builder setAuthentication(@Nullable IntentSender authentication,
                @Nullable RemoteViews presentation) {
            throwIfDestroyed();
            if (authentication == null ^ presentation == null) {
                throw new IllegalArgumentException("authentication and presentation"
                        + " must be both non-null or null");
            }
            mAuthentication = authentication;
            mPresentation = presentation;
            return this;
        }

@@ -355,10 +340,6 @@ public final class FillResponse implements Parcelable {
         */
        public FillResponse build() {
            throwIfDestroyed();
            if (mAuthentication == null ^ mPresentation == null) {
                throw new IllegalArgumentException("authentication and presentation"
                        + " must be both non-null or null");
            }
            if (mAuthentication == null && mDatasets == null && mSavableIds == null) {
                throw new IllegalArgumentException("need to provide at least one"
                        + " data set or savable ids or an authentication with a presentation");
@@ -403,8 +384,8 @@ public final class FillResponse implements Parcelable {
        parcel.writeTypedArrayList(mDatasets, flags);
        parcel.writeTypedArraySet(mSavableIds, flags);
        parcel.writeParcelable(mExtras, flags);
        parcel.writeParcelable(mPresentation, flags);
        parcel.writeParcelable(mAuthentication, flags);
        parcel.writeParcelable(mPresentation, flags);
    }

    public static final Parcelable.Creator<FillResponse> CREATOR =
@@ -426,8 +407,8 @@ public final class FillResponse implements Parcelable {
                builder.addSavableFields(fillIds.valueAt(i));
            }
            builder.setExtras(parcel.readParcelable(null));
            builder.setPresentation(parcel.readParcelable(null));
            builder.setAuthentication(parcel.readParcelable(null));
            builder.setAuthentication(parcel.readParcelable(null),
                    parcel.readParcelable(null));
            return builder.build();
        }

Loading