Loading core/api/current.txt +24 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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); media/java/android/media/metrics/NetworkEvent.java +53 −33 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 = { Loading @@ -61,6 +70,7 @@ public final class NetworkEvent implements Parcelable { /** * Network type to string. * @hide */ public static String networkTypeToString(@NetworkType int value) { switch (value) { Loading Loading @@ -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 + " }"; } Loading @@ -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 Loading @@ -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 Loading @@ -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() { } Loading @@ -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; } } Loading media/java/android/media/metrics/PlaybackSession.java +1 −2 Original line number Diff line number Diff line Loading @@ -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); } Loading services/core/java/com/android/server/media/metrics/MediaMetricsManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
core/api/current.txt +24 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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);
media/java/android/media/metrics/NetworkEvent.java +53 −33 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 = { Loading @@ -61,6 +70,7 @@ public final class NetworkEvent implements Parcelable { /** * Network type to string. * @hide */ public static String networkTypeToString(@NetworkType int value) { switch (value) { Loading Loading @@ -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 + " }"; } Loading @@ -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 Loading @@ -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 Loading @@ -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() { } Loading @@ -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; } } Loading
media/java/android/media/metrics/PlaybackSession.java +1 −2 Original line number Diff line number Diff line Loading @@ -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); } Loading
services/core/java/com/android/server/media/metrics/MediaMetricsManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -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); Loading