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

Commit 4e11dd00 authored by Santiago Seifert's avatar Santiago Seifert
Browse files

Add RouteListingPreference.Builder

Test: atest MediaRouter2HostSideTest
Bug: 241888071
Bug: 235352899
Change-Id: Ia21f7d67a16b5507806461b992dfd46b5cb86863
parent 5c7390af
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -24211,7 +24211,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();
@@ -24219,6 +24218,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 {