Add flag to use the system's ordering for route listing

Test: atest MediaRouter2HostSideTest
Bug: 241888071
Bug: 235352899
Change-Id: Ibbfb2001311eea174254dbe1f1cf86cccf36f40f
This commit is contained in:
Santiago Seifert
2022-12-13 17:41:54 +00:00
parent e0c9ef8c59
commit 26197fb4ef
2 changed files with 19 additions and 4 deletions

View File

@@ -24007,9 +24007,10 @@ package android.media {
}
public final class RouteListingPreference implements android.os.Parcelable {
ctor public RouteListingPreference(@NonNull java.util.List<android.media.RouteListingPreference.Item>);
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();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.media.RouteListingPreference> CREATOR;
}

View File

@@ -54,20 +54,24 @@ 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) {
public RouteListingPreference(@NonNull List<Item> items, boolean useSystemOrdering) {
mItems = List.copyOf(Objects.requireNonNull(items));
mUseSystemOrdering = useSystemOrdering;
}
private RouteListingPreference(Parcel in) {
List<Item> items =
in.readParcelableList(new ArrayList<>(), Item.class.getClassLoader(), Item.class);
mItems = List.copyOf(items);
mUseSystemOrdering = in.readBoolean();
}
/**
@@ -79,6 +83,15 @@ public final class RouteListingPreference implements Parcelable {
return mItems;
}
/**
* Returns true if the application would like media route listing to use the system's ordering
* strategy, or false if the application would like route listing to respect the ordering
* obtained from {@link #getItems()}.
*/
public boolean getUseSystemOrdering() {
return mUseSystemOrdering;
}
// RouteListingPreference Parcelable implementation.
@Override
@@ -89,6 +102,7 @@ public final class RouteListingPreference implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeParcelableList(mItems, flags);
dest.writeBoolean(mUseSystemOrdering);
}
// Equals and hashCode.
@@ -102,12 +116,12 @@ public final class RouteListingPreference implements Parcelable {
return false;
}
RouteListingPreference that = (RouteListingPreference) other;
return mItems.equals(that.mItems);
return mItems.equals(that.mItems) && mUseSystemOrdering == that.mUseSystemOrdering;
}
@Override
public int hashCode() {
return Objects.hash(mItems);
return Objects.hash(mItems, mUseSystemOrdering);
}
/** Holds preference information for a specific route in a {@link RouteListingPreference}. */