From 26197fb4ef53cc9289e70ef52d0111fc06e60e66 Mon Sep 17 00:00:00 2001 From: Santiago Seifert Date: Tue, 13 Dec 2022 17:41:54 +0000 Subject: [PATCH] Add flag to use the system's ordering for route listing Test: atest MediaRouter2HostSideTest Bug: 241888071 Bug: 235352899 Change-Id: Ibbfb2001311eea174254dbe1f1cf86cccf36f40f --- core/api/current.txt | 3 ++- .../android/media/RouteListingPreference.java | 20 ++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/core/api/current.txt b/core/api/current.txt index 1cdacc97eef1a..05c3dae1cfd08 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -24007,9 +24007,10 @@ package android.media { } public final class RouteListingPreference implements android.os.Parcelable { - ctor public RouteListingPreference(@NonNull java.util.List); + ctor public RouteListingPreference(@NonNull java.util.List, boolean); method public int describeContents(); method @NonNull public java.util.List getItems(); + method public boolean getUseSystemOrdering(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } diff --git a/media/java/android/media/RouteListingPreference.java b/media/java/android/media/RouteListingPreference.java index b7043cbaceed2..6557277041c29 100644 --- a/media/java/android/media/RouteListingPreference.java +++ b/media/java/android/media/RouteListingPreference.java @@ -54,20 +54,24 @@ public final class RouteListingPreference implements Parcelable { }; @NonNull private final List 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 items) { + public RouteListingPreference(@NonNull List items, boolean useSystemOrdering) { mItems = List.copyOf(Objects.requireNonNull(items)); + mUseSystemOrdering = useSystemOrdering; } private RouteListingPreference(Parcel in) { List 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}. */