diff --git a/core/api/current.txt b/core/api/current.txt index 0c8b0100f1f39..d22c40210ff4f 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -24096,9 +24096,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}. */