diff options
| -rw-r--r-- | core/api/current.txt | 2 | ||||
| -rw-r--r-- | media/java/android/media/RouteListingPreference.java | 39 |
2 files changed, 36 insertions, 5 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 945531f09158..b63b0aa9784a 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -24224,6 +24224,7 @@ package android.media { method public int getDisableReason(); method public int getFlags(); method @NonNull public String getRouteId(); + method public int getSessionParticipantCount(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.media.RouteListingPreference.Item> CREATOR; field public static final int DISABLE_REASON_AD = 3; // 0x3 @@ -24239,6 +24240,7 @@ package android.media { method @NonNull public android.media.RouteListingPreference.Item build(); method @NonNull public android.media.RouteListingPreference.Item.Builder setDisableReason(int); method @NonNull public android.media.RouteListingPreference.Item.Builder setFlags(int); + method @NonNull public android.media.RouteListingPreference.Item.Builder setSessionParticipantCount(@IntRange(from=0) int); } public final class RoutingSessionInfo implements android.os.Parcelable { diff --git a/media/java/android/media/RouteListingPreference.java b/media/java/android/media/RouteListingPreference.java index d74df7ad31d8..6a5b29055cfe 100644 --- a/media/java/android/media/RouteListingPreference.java +++ b/media/java/android/media/RouteListingPreference.java @@ -17,6 +17,7 @@ package android.media; import android.annotation.IntDef; +import android.annotation.IntRange; import android.annotation.NonNull; import android.os.Parcel; import android.os.Parcelable; @@ -198,19 +199,22 @@ public final class RouteListingPreference implements Parcelable { @NonNull private final String mRouteId; @Flags private final int mFlags; @DisableReason private final int mDisableReason; + private final int mSessionParticipantCount; private Item(@NonNull Builder builder) { mRouteId = builder.mRouteId; mFlags = builder.mFlags; mDisableReason = builder.mDisableReason; + mSessionParticipantCount = builder.mSessionParticipantCount; } private Item(Parcel in) { - String routeId = in.readString(); - Preconditions.checkArgument(!TextUtils.isEmpty(routeId)); - mRouteId = routeId; + mRouteId = in.readString(); + Preconditions.checkArgument(!TextUtils.isEmpty(mRouteId)); mFlags = in.readInt(); mDisableReason = in.readInt(); + mSessionParticipantCount = in.readInt(); + Preconditions.checkArgument(mSessionParticipantCount >= 0); } /** Returns the id of the route that corresponds to this route listing preference item. */ @@ -244,6 +248,17 @@ public final class RouteListingPreference implements Parcelable { return mDisableReason; } + /** + * Returns a non-negative number of participants in the ongoing session (if any) on the + * corresponding route. + * + * <p>The system ignores this value if zero, or if {@link #getFlags()} does not include + * {@link #FLAG_ONGOING_SESSION}. + */ + public int getSessionParticipantCount() { + return mSessionParticipantCount; + } + // Item Parcelable implementation. @Override @@ -256,6 +271,7 @@ public final class RouteListingPreference implements Parcelable { dest.writeString(mRouteId); dest.writeInt(mFlags); dest.writeInt(mDisableReason); + dest.writeInt(mSessionParticipantCount); } // Equals and hashCode. @@ -271,12 +287,13 @@ public final class RouteListingPreference implements Parcelable { Item item = (Item) other; return mRouteId.equals(item.mRouteId) && mFlags == item.mFlags - && mDisableReason == item.mDisableReason; + && mDisableReason == item.mDisableReason + && mSessionParticipantCount == item.mSessionParticipantCount; } @Override public int hashCode() { - return Objects.hash(mRouteId, mFlags, mDisableReason); + return Objects.hash(mRouteId, mFlags, mDisableReason, mSessionParticipantCount); } /** Builder for {@link Item}. */ @@ -285,6 +302,7 @@ public final class RouteListingPreference implements Parcelable { private final String mRouteId; private int mFlags; private int mDisableReason; + private int mSessionParticipantCount; /** * Constructor. @@ -311,6 +329,17 @@ public final class RouteListingPreference implements Parcelable { return this; } + /** See {@link Item#getSessionParticipantCount()}. */ + @NonNull + public Builder setSessionParticipantCount( + @IntRange(from = 0) int sessionParticipantCount) { + Preconditions.checkArgument( + sessionParticipantCount >= 0, + "sessionParticipantCount must be non-negative."); + mSessionParticipantCount = sessionParticipantCount; + return this; + } + /** Creates and returns a new {@link Item} with the given parameters. */ @NonNull public Item build() { |