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

Commit 84a835a7 authored by Santiago Seifert's avatar Santiago Seifert Committed by Android (Google) Code Review
Browse files

Merge "Add RouteListingPreference.Builder"

parents d8cf30a6 4e11dd00
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -24256,7 +24256,6 @@ package android.media {
  }
  public final class RouteListingPreference implements android.os.Parcelable {
    ctor public RouteListingPreference(@NonNull java.util.List<android.media.RouteListingPreference.Item>, boolean);
    method public int describeContents();
    method @NonNull public java.util.List<android.media.RouteListingPreference.Item> getItems();
    method public boolean getUseSystemOrdering();
@@ -24264,6 +24263,13 @@ package android.media {
    field @NonNull public static final android.os.Parcelable.Creator<android.media.RouteListingPreference> CREATOR;
  }
  public static final class RouteListingPreference.Builder {
    ctor public RouteListingPreference.Builder();
    method @NonNull public android.media.RouteListingPreference build();
    method @NonNull public android.media.RouteListingPreference.Builder setItems(@NonNull java.util.List<android.media.RouteListingPreference.Item>);
    method @NonNull public android.media.RouteListingPreference.Builder setUseSystemOrdering(boolean);
  }
  public static final class RouteListingPreference.Item implements android.os.Parcelable {
    method public int describeContents();
    method public int getDisableReason();
+49 −9
Original line number Diff line number Diff line
@@ -57,15 +57,9 @@ public final class RouteListingPreference implements Parcelable {
    @NonNull private final List<Item> mItems;
    private final boolean mUseSystemOrdering;

    /**
     * Creates an instance with the given values.
     *
     * @param items See {@link #getItems()}.
     * @param useSystemOrdering See {@link #getUseSystemOrdering()}
     */
    public RouteListingPreference(@NonNull List<Item> items, boolean useSystemOrdering) {
        mItems = List.copyOf(Objects.requireNonNull(items));
        mUseSystemOrdering = useSystemOrdering;
    private RouteListingPreference(Builder builder) {
        mItems = builder.mItems;
        mUseSystemOrdering = builder.mUseSystemOrdering;
    }

    private RouteListingPreference(Parcel in) {
@@ -128,6 +122,52 @@ public final class RouteListingPreference implements Parcelable {
        return Objects.hash(mItems, mUseSystemOrdering);
    }

    /** Builder for {@link RouteListingPreference}. */
    public static final class Builder {

        private List<Item> mItems;
        private boolean mUseSystemOrdering;

        /** Creates a new instance with default values (documented in the setters). */
        public Builder() {
            mItems = List.of();
        }

        /**
         * See {@link #getItems()}
         *
         * <p>The default value is an empty list.
         */
        @NonNull
        public Builder setItems(@NonNull List<Item> items) {
            mItems = List.copyOf(Objects.requireNonNull(items));
            mUseSystemOrdering = true;
            return this;
        }

        /**
         * See {@link #getUseSystemOrdering()}
         *
         * <p>The default value is {@code true}.
         */
        // Lint requires "isUseSystemOrdering", but "getUseSystemOrdering" is a better name.
        @SuppressWarnings("MissingGetterMatchingBuilder")
        @NonNull
        public Builder setUseSystemOrdering(boolean useSystemOrdering) {
            mUseSystemOrdering = useSystemOrdering;
            return this;
        }

        /**
         * Creates and returns a new {@link RouteListingPreference} instance with the given
         * parameters.
         */
        @NonNull
        public RouteListingPreference build() {
            return new RouteListingPreference(this);
        }
    }

    /** Holds preference information for a specific route in a {@link RouteListingPreference}. */
    public static final class Item implements Parcelable {