summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author shubang <shubang@google.com> 2021-01-26 14:43:21 -0800
committer shubang <shubang@google.com> 2021-02-17 01:38:37 -0800
commitf2bf0fd278591ad843f3182188ed2c4b0e24980d (patch)
treebe729353d002cc4b49f16157fc01160ecbd3d0b6
parent87b3131bc861cb134435836188435c14099b930b (diff)
Unhide media metrics APIs part 2: Network event
Bug: 167036690 Test: mmm Change-Id: Idd96c19fca5e87e73d565f9141ea4bac70d42b60
-rw-r--r--core/api/current.txt24
-rw-r--r--media/java/android/media/metrics/NetworkEvent.java86
-rw-r--r--media/java/android/media/metrics/PlaybackSession.java3
-rw-r--r--services/core/java/com/android/server/media/metrics/MediaMetricsManagerService.java4
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);