diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 4a0b2eb502dd3..54d9778de6303 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -15837,11 +15837,12 @@ package android.telephony.ims { } public final class MediaQualityStatus implements android.os.Parcelable { + ctor public MediaQualityStatus(@NonNull String, int, int, @IntRange(from=0, to=100) int, @IntRange(from=0) int, @IntRange(from=0) long); method public int describeContents(); method @NonNull public String getCallSessionId(); method public int getMediaSessionType(); - method public long getRtpInactivityMillis(); - method public int getRtpJitterMillis(); + method @IntRange(from=0) public long getRtpInactivityMillis(); + method @IntRange(from=0) public int getRtpJitterMillis(); method @IntRange(from=0, to=100) public int getRtpPacketLossRate(); method public int getTransportType(); method public void writeToParcel(@NonNull android.os.Parcel, int); @@ -15850,14 +15851,6 @@ package android.telephony.ims { field public static final int MEDIA_SESSION_TYPE_VIDEO = 2; // 0x2 } - public static final class MediaQualityStatus.Builder { - ctor public MediaQualityStatus.Builder(@NonNull String, int, int); - method @NonNull public android.telephony.ims.MediaQualityStatus build(); - method @NonNull public android.telephony.ims.MediaQualityStatus.Builder setRtpInactivityMillis(long); - method @NonNull public android.telephony.ims.MediaQualityStatus.Builder setRtpJitterMillis(int); - method @NonNull public android.telephony.ims.MediaQualityStatus.Builder setRtpPacketLossRate(@IntRange(from=0, to=100) int); - } - public final class MediaThreshold implements android.os.Parcelable { method public int describeContents(); method @NonNull public long[] getThresholdsRtpInactivityTimeMillis(); diff --git a/telephony/java/android/telephony/ims/MediaQualityStatus.java b/telephony/java/android/telephony/ims/MediaQualityStatus.java index 5038aac534bf7..76394feaed66d 100644 --- a/telephony/java/android/telephony/ims/MediaQualityStatus.java +++ b/telephony/java/android/telephony/ims/MediaQualityStatus.java @@ -40,7 +40,7 @@ public final class MediaQualityStatus implements Parcelable { private final int mMediaSessionType; private final int mTransportType; private final int mRtpPacketLossRate; - private final int mRtpJitter; + private final int mRtpJitterMillis; private final long mRtpInactivityTimeMillis; /** @hide */ @@ -52,23 +52,26 @@ public final class MediaQualityStatus implements Parcelable { public @interface MediaSessionType {} /** - * Constructor for this + * The constructor for MediaQualityStatus, which represents the media quality for each session + * type ({@link #MEDIA_SESSION_TYPE_AUDIO} or {@link #MEDIA_SESSION_TYPE_VIDEO}) of the IMS call * * @param imsCallSessionId IMS call session id of this quality status * @param mediaSessionType media session type of this quality status * @param transportType transport type of this quality status - * @param rtpPacketLossRate measured RTP packet loss rate - * @param rtpJitter measured RTP jitter value + * @param rtpPacketLossRate measured RTP packet loss rate in percentage + * @param rtpJitterMillis measured RTP jitter(RFC3550) in milliseconds * @param rptInactivityTimeMillis measured RTP inactivity time in milliseconds */ - private MediaQualityStatus(@NonNull String imsCallSessionId, + public MediaQualityStatus(@NonNull String imsCallSessionId, @MediaSessionType int mediaSessionType, @TransportType int transportType, - int rtpPacketLossRate, int rtpJitter, long rptInactivityTimeMillis) { + @IntRange(from = 0, to = 100) int rtpPacketLossRate, + @IntRange(from = 0) int rtpJitterMillis, + @IntRange(from = 0) long rptInactivityTimeMillis) { mImsCallSessionId = imsCallSessionId; mMediaSessionType = mediaSessionType; mTransportType = transportType; mRtpPacketLossRate = rtpPacketLossRate; - mRtpJitter = rtpJitter; + mRtpJitterMillis = rtpJitterMillis; mRtpInactivityTimeMillis = rptInactivityTimeMillis; } @@ -106,13 +109,15 @@ public final class MediaQualityStatus implements Parcelable { /** * Retrieves measured RTP jitter(RFC3550) value in milliseconds */ + @IntRange(from = 0) public int getRtpJitterMillis() { - return mRtpJitter; + return mRtpJitterMillis; } /** * Retrieves measured RTP inactivity time in milliseconds */ + @IntRange(from = 0) public long getRtpInactivityMillis() { return mRtpInactivityTimeMillis; } @@ -126,7 +131,7 @@ public final class MediaQualityStatus implements Parcelable { mMediaSessionType = in.readInt(); mTransportType = in.readInt(); mRtpPacketLossRate = in.readInt(); - mRtpJitter = in.readInt(); + mRtpJitterMillis = in.readInt(); mRtpInactivityTimeMillis = in.readLong(); } @@ -136,7 +141,7 @@ public final class MediaQualityStatus implements Parcelable { dest.writeInt(mMediaSessionType); dest.writeInt(mTransportType); dest.writeInt(mRtpPacketLossRate); - dest.writeInt(mRtpJitter); + dest.writeInt(mRtpJitterMillis); dest.writeLong(mRtpInactivityTimeMillis); } @@ -167,14 +172,14 @@ public final class MediaQualityStatus implements Parcelable { && mMediaSessionType == that.mMediaSessionType && mTransportType == that.mTransportType && mRtpPacketLossRate == that.mRtpPacketLossRate - && mRtpJitter == that.mRtpJitter + && mRtpJitterMillis == that.mRtpJitterMillis && mRtpInactivityTimeMillis == that.mRtpInactivityTimeMillis; } @Override public int hashCode() { return Objects.hash(mImsCallSessionId, mMediaSessionType, mTransportType, - mRtpPacketLossRate, mRtpJitter, mRtpInactivityTimeMillis); + mRtpPacketLossRate, mRtpJitterMillis, mRtpInactivityTimeMillis); } @Override @@ -188,100 +193,11 @@ public final class MediaQualityStatus implements Parcelable { sb.append(mTransportType); sb.append(", mRtpPacketLossRate="); sb.append(mRtpPacketLossRate); - sb.append(", mRtpJitter="); - sb.append(mRtpJitter); + sb.append(", mRtpJitterMillis="); + sb.append(mRtpJitterMillis); sb.append(", mRtpInactivityTimeMillis="); sb.append(mRtpInactivityTimeMillis); sb.append("}"); return sb.toString(); } - - /** - * Provides a convenient way to set the fields of an {@link MediaQualityStatus} when creating a - * new instance. - * - *

The example below shows how you might create a new {@code RtpQualityStatus}: - * - *


-     *
-     * MediaQualityStatus = new MediaQualityStatus.Builder(
-     *                                          callSessionId, mediaSessionType, transportType)
-     *     .setRtpPacketLossRate(packetLossRate)
-     *     .setRtpJitter(jitter)
-     *     .setRtpInactivityMillis(inactivityTimeMillis)
-     *     .build();
-     * 
- */ - public static final class Builder { - private final String mImsCallSessionId; - private final int mMediaSessionType; - private final int mTransportType; - private int mRtpPacketLossRate; - private int mRtpJitter; - private long mRtpInactivityTimeMillis; - - /** - * Default constructor for the Builder. - */ - public Builder( - @NonNull String imsCallSessionId, - @MediaSessionType int mediaSessionType, - @TransportType int transportType) { - mImsCallSessionId = imsCallSessionId; - mMediaSessionType = mediaSessionType; - mTransportType = transportType; - } - - /** - * Set RTP packet loss info. - * - * @param packetLossRate RTP packet loss rate in percentage - * @return The same instance of the builder. - */ - @NonNull - public Builder setRtpPacketLossRate(@IntRange(from = 0, to = 100) int packetLossRate) { - this.mRtpPacketLossRate = packetLossRate; - return this; - } - - /** - * Set calculated RTP jitter(RFC3550) value in milliseconds. - * - * @param jitter calculated RTP jitter value. - * @return The same instance of the builder. - */ - @NonNull - public Builder setRtpJitterMillis(int jitter) { - this.mRtpJitter = jitter; - return this; - } - - /** - * Set measured RTP inactivity time. - * - * @param inactivityTimeMillis RTP inactivity time in Milliseconds. - * @return The same instance of the builder. - */ - @NonNull - public Builder setRtpInactivityMillis(long inactivityTimeMillis) { - this.mRtpInactivityTimeMillis = inactivityTimeMillis; - return this; - } - - /** - * Build the {@link MediaQualityStatus} - * - * @return the {@link MediaQualityStatus} object - */ - @NonNull - public MediaQualityStatus build() { - return new MediaQualityStatus( - mImsCallSessionId, - mMediaSessionType, - mTransportType, - mRtpPacketLossRate, - mRtpJitter, - mRtpInactivityTimeMillis); - } - } }