Add RouteListingPreference.Builder

Test: atest MediaRouter2HostSideTest
Bug: 241888071
Bug: 235352899
Change-Id: Ia21f7d67a16b5507806461b992dfd46b5cb86863
This commit is contained in:
Santiago Seifert
2022-12-22 15:32:28 +00:00
parent 5c7390afde
commit 4e11dd0048
2 changed files with 56 additions and 10 deletions

View File

@@ -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();

View File

@@ -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 {