Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 834202ee authored by Santiago Seifert's avatar Santiago Seifert
Browse files

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
parent ebf76779
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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 {
+34 −5
Original line number Diff line number Diff line
@@ -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() {