diff options
| author | 2021-01-26 14:43:21 -0800 | |
|---|---|---|
| committer | 2021-02-17 01:38:37 -0800 | |
| commit | f2bf0fd278591ad843f3182188ed2c4b0e24980d (patch) | |
| tree | be729353d002cc4b49f16157fc01160ecbd3d0b6 | |
| parent | 87b3131bc861cb134435836188435c14099b930b (diff) | |
Unhide media metrics APIs part 2: Network event
Bug: 167036690
Test: mmm
Change-Id: Idd96c19fca5e87e73d565f9141ea4bac70d42b60
4 files changed, 80 insertions, 37 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index f56687128b3b..830511bd8bb1 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -24085,6 +24085,29 @@ package android.media.metrics { field public static final long INVALID_TIMESTAMP = -1L; // 0xffffffffffffffffL } + public final class NetworkEvent extends android.media.metrics.Event implements android.os.Parcelable { + method public int describeContents(); + method public int getNetworkType(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.media.metrics.NetworkEvent> CREATOR; + field public static final int NETWORK_TYPE_2G = 4; // 0x4 + field public static final int NETWORK_TYPE_3G = 5; // 0x5 + field public static final int NETWORK_TYPE_4G = 6; // 0x6 + field public static final int NETWORK_TYPE_5G_NSA = 7; // 0x7 + field public static final int NETWORK_TYPE_5G_SA = 8; // 0x8 + field public static final int NETWORK_TYPE_ETHERNET = 3; // 0x3 + field public static final int NETWORK_TYPE_NONE = 0; // 0x0 + field public static final int NETWORK_TYPE_OTHER = 1; // 0x1 + field public static final int NETWORK_TYPE_WIFI = 2; // 0x2 + } + + public static final class NetworkEvent.Builder { + ctor public NetworkEvent.Builder(); + method @NonNull public android.media.metrics.NetworkEvent build(); + method @NonNull public android.media.metrics.NetworkEvent.Builder setNetworkType(int); + method @NonNull public android.media.metrics.NetworkEvent.Builder setTimeSinceCreatedMillis(@IntRange(from=0xffffffff) long); + } + public final class PlaybackErrorEvent extends android.media.metrics.Event implements android.os.Parcelable { method public int describeContents(); method public int getErrorCode(); @@ -24108,6 +24131,7 @@ package android.media.metrics { public final class PlaybackSession implements java.lang.AutoCloseable { method public void close(); method @NonNull public String getId(); + method public void reportNetworkEvent(@NonNull android.media.metrics.NetworkEvent); method public void reportPlaybackErrorEvent(@NonNull android.media.metrics.PlaybackErrorEvent); method public void reportPlaybackStateEvent(@NonNull android.media.metrics.PlaybackStateEvent); method public void reportTrackChangeEvent(@NonNull android.media.metrics.TrackChangeEvent); diff --git a/media/java/android/media/metrics/NetworkEvent.java b/media/java/android/media/metrics/NetworkEvent.java index a330bc0b66df..029edeb93374 100644 --- a/media/java/android/media/metrics/NetworkEvent.java +++ b/media/java/android/media/metrics/NetworkEvent.java @@ -17,6 +17,7 @@ package android.media.metrics; import android.annotation.IntDef; +import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; import android.os.Parcel; @@ -27,22 +28,30 @@ import java.lang.annotation.RetentionPolicy; import java.util.Objects; /** - * Playback network event. - * @hide + * Media network event. */ -public final class NetworkEvent implements Parcelable { +public final class NetworkEvent extends Event implements Parcelable { + /** Network type is not specified. Default type. */ public static final int NETWORK_TYPE_NONE = 0; + /** Other network type */ public static final int NETWORK_TYPE_OTHER = 1; + /** Wi-Fi network */ public static final int NETWORK_TYPE_WIFI = 2; + /** Ethernet network */ public static final int NETWORK_TYPE_ETHERNET = 3; + /** 2G network */ public static final int NETWORK_TYPE_2G = 4; + /** 3G network */ public static final int NETWORK_TYPE_3G = 5; + /** 4G network */ public static final int NETWORK_TYPE_4G = 6; + /** 5G NSA network */ public static final int NETWORK_TYPE_5G_NSA = 7; + /** 5G SA network */ public static final int NETWORK_TYPE_5G_SA = 8; - private final int mType; - private final long mTimeSincePlaybackCreatedMillis; + private final int mNetworkType; + private final long mTimeSinceCreatedMillis; /** @hide */ @IntDef(prefix = "NETWORK_TYPE_", value = { @@ -61,6 +70,7 @@ public final class NetworkEvent implements Parcelable { /** * Network type to string. + * @hide */ public static String networkTypeToString(@NetworkType int value) { switch (value) { @@ -92,25 +102,34 @@ public final class NetworkEvent implements Parcelable { * * @hide */ - public NetworkEvent(@NetworkType int type, long timeSincePlaybackCreatedMillis) { - this.mType = type; - this.mTimeSincePlaybackCreatedMillis = timeSincePlaybackCreatedMillis; + public NetworkEvent(@NetworkType int type, long timeSinceCreatedMillis) { + this.mNetworkType = type; + this.mTimeSinceCreatedMillis = timeSinceCreatedMillis; } + /** + * Gets network type. + */ @NetworkType - public int getType() { - return mType; + public int getNetworkType() { + return mNetworkType; } - public long getTimeSincePlaybackCreatedMillis() { - return mTimeSincePlaybackCreatedMillis; + /** + * Gets timestamp since the creation in milliseconds. + * @return the timestamp since the creation in milliseconds, or -1 if unknown. + */ + @Override + @IntRange(from = -1) + public long getTimeSinceCreatedMillis() { + return mTimeSinceCreatedMillis; } @Override public String toString() { return "NetworkEvent { " - + "type = " + mType + ", " - + "timeSincePlaybackCreatedMillis = " + mTimeSincePlaybackCreatedMillis + + "networkType = " + mNetworkType + ", " + + "timeSinceCreatedMillis = " + mTimeSinceCreatedMillis + " }"; } @@ -119,19 +138,19 @@ public final class NetworkEvent implements Parcelable { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; NetworkEvent that = (NetworkEvent) o; - return mType == that.mType - && mTimeSincePlaybackCreatedMillis == that.mTimeSincePlaybackCreatedMillis; + return mNetworkType == that.mNetworkType + && mTimeSinceCreatedMillis == that.mTimeSinceCreatedMillis; } @Override public int hashCode() { - return Objects.hash(mType, mTimeSincePlaybackCreatedMillis); + return Objects.hash(mNetworkType, mTimeSinceCreatedMillis); } @Override public void writeToParcel(@NonNull android.os.Parcel dest, int flags) { - dest.writeInt(mType); - dest.writeLong(mTimeSincePlaybackCreatedMillis); + dest.writeInt(mNetworkType); + dest.writeLong(mTimeSinceCreatedMillis); } @Override @@ -142,12 +161,15 @@ public final class NetworkEvent implements Parcelable { /** @hide */ /* package-private */ NetworkEvent(@NonNull android.os.Parcel in) { int type = in.readInt(); - long timeSincePlaybackCreatedMillis = in.readLong(); + long timeSinceCreatedMillis = in.readLong(); - this.mType = type; - this.mTimeSincePlaybackCreatedMillis = timeSincePlaybackCreatedMillis; + this.mNetworkType = type; + this.mTimeSinceCreatedMillis = timeSinceCreatedMillis; } + /** + * Used to read a NetworkEvent from a Parcel. + */ public static final @NonNull Parcelable.Creator<NetworkEvent> CREATOR = new Parcelable.Creator<NetworkEvent>() { @Override @@ -165,13 +187,11 @@ public final class NetworkEvent implements Parcelable { * A builder for {@link NetworkEvent} */ public static final class Builder { - private int mType; - private long mTimeSincePlaybackCreatedMillis; + private int mNetworkType = NETWORK_TYPE_NONE; + private long mTimeSinceCreatedMillis = -1; /** * Creates a new Builder. - * - * @hide */ public Builder() { } @@ -179,24 +199,24 @@ public final class NetworkEvent implements Parcelable { /** * Sets network type. */ - public @NonNull Builder setType(@NetworkType int value) { - mType = value; + public @NonNull Builder setNetworkType(@NetworkType int value) { + mNetworkType = value; return this; } /** * Sets timestamp since the creation in milliseconds. + * @param value the timestamp since the creation in milliseconds. + * -1 indicates the value is unknown. */ - public @NonNull Builder setTimeSincePlaybackCreatedMillis(long value) { - mTimeSincePlaybackCreatedMillis = value; + public @NonNull Builder setTimeSinceCreatedMillis(@IntRange(from = -1) long value) { + mTimeSinceCreatedMillis = value; return this; } /** Builds the instance. */ public @NonNull NetworkEvent build() { - NetworkEvent o = new NetworkEvent( - mType, - mTimeSincePlaybackCreatedMillis); + NetworkEvent o = new NetworkEvent(mNetworkType, mTimeSinceCreatedMillis); return o; } } diff --git a/media/java/android/media/metrics/PlaybackSession.java b/media/java/android/media/metrics/PlaybackSession.java index f77ba9b8d6a1..1d608d03a4bd 100644 --- a/media/java/android/media/metrics/PlaybackSession.java +++ b/media/java/android/media/metrics/PlaybackSession.java @@ -60,9 +60,8 @@ public final class PlaybackSession implements AutoCloseable { /** * Reports network event. - * @hide */ - public void reportNetworkEvent(NetworkEvent event) { + public void reportNetworkEvent(@NonNull NetworkEvent event) { mManager.reportNetworkEvent(mId, event); } diff --git a/services/core/java/com/android/server/media/metrics/MediaMetricsManagerService.java b/services/core/java/com/android/server/media/metrics/MediaMetricsManagerService.java index 83975343bf7f..639dda6f8981 100644 --- a/services/core/java/com/android/server/media/metrics/MediaMetricsManagerService.java +++ b/services/core/java/com/android/server/media/metrics/MediaMetricsManagerService.java @@ -121,8 +121,8 @@ public final class MediaMetricsManagerService extends SystemService { StatsEvent statsEvent = StatsEvent.newBuilder() .setAtomId(321) .writeString(sessionId) - .writeInt(event.getType()) - .writeLong(event.getTimeSincePlaybackCreatedMillis()) + .writeInt(event.getNetworkType()) + .writeLong(event.getTimeSinceCreatedMillis()) .usePooledBuffer() .build(); StatsLog.write(statsEvent); |