Add session participant count
Allows apps to set a number of participants in the corresponding route. Test: atest MediaRouter2HostSideTest Bug: 241888071 Bug: 235352899 Change-Id: If1e7995e0e5e9903863103dc72b399d270156675
This commit is contained in:
@@ -24109,6 +24109,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
|
||||
@@ -24124,6 +24125,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 {
|
||||
|
||||
@@ -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;
|
||||
@@ -195,19 +196,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. */
|
||||
@@ -241,6 +245,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
|
||||
@@ -253,6 +268,7 @@ public final class RouteListingPreference implements Parcelable {
|
||||
dest.writeString(mRouteId);
|
||||
dest.writeInt(mFlags);
|
||||
dest.writeInt(mDisableReason);
|
||||
dest.writeInt(mSessionParticipantCount);
|
||||
}
|
||||
|
||||
// Equals and hashCode.
|
||||
@@ -268,12 +284,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}. */
|
||||
@@ -282,6 +299,7 @@ public final class RouteListingPreference implements Parcelable {
|
||||
private final String mRouteId;
|
||||
private int mFlags;
|
||||
private int mDisableReason;
|
||||
private int mSessionParticipantCount;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
@@ -308,6 +326,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() {
|
||||
|
||||
Reference in New Issue
Block a user