summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/api/current.txt2
-rw-r--r--media/java/android/media/RouteListingPreference.java39
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() {