From 01ad1273a4200eed63d877108f34bd3ba30f80ce Mon Sep 17 00:00:00 2001 From: shubang Date: Wed, 6 Jan 2021 16:02:51 -0800 Subject: [PATCH] Unhide playback metrics APIs part 1 Bug: 159337195 Test: mmm Change-Id: Ifb25bbafaf97aa582cb7981c24e585620c35ef21 --- core/api/current.txt | 13 +++++++++++++ ...etricsManager.aidl => IMediaMetricsManager.aidl} | 2 +- ...MetricsManager.java => MediaMetricsManager.java} | 13 +++++++------ .../java/android/media/metrics/PlaybackSession.java | 13 +++++++++---- ...Service.java => MediaMetricsManagerService.java} | 10 +++++----- 5 files changed, 35 insertions(+), 16 deletions(-) rename media/java/android/media/metrics/{IPlaybackMetricsManager.aidl => IMediaMetricsManager.aidl} (97%) rename media/java/android/media/metrics/{PlaybackMetricsManager.java => MediaMetricsManager.java} (89%) rename services/core/java/com/android/server/media/metrics/{PlaybackMetricsManagerService.java => MediaMetricsManagerService.java} (94%) diff --git a/core/api/current.txt b/core/api/current.txt index 27660ec88f440..8b9ec5e17fdd0 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -23939,6 +23939,19 @@ package android.media.effect { } +package android.media.metrics { + + public class MediaMetricsManager { + method @NonNull public android.media.metrics.PlaybackSession createPlaybackSession(); + } + + public final class PlaybackSession implements java.lang.AutoCloseable { + method public void close(); + method @NonNull public String getId(); + } + +} + package android.media.midi { public final class MidiDevice implements java.io.Closeable { diff --git a/media/java/android/media/metrics/IPlaybackMetricsManager.aidl b/media/java/android/media/metrics/IMediaMetricsManager.aidl similarity index 97% rename from media/java/android/media/metrics/IPlaybackMetricsManager.aidl rename to media/java/android/media/metrics/IMediaMetricsManager.aidl index e55678d900787..2cb2ab5c42b5e 100644 --- a/media/java/android/media/metrics/IPlaybackMetricsManager.aidl +++ b/media/java/android/media/metrics/IMediaMetricsManager.aidl @@ -26,7 +26,7 @@ import android.media.metrics.TrackChangeEvent; * Interface to the playback manager service. * @hide */ -interface IPlaybackMetricsManager { +interface IMediaMetricsManager { void reportPlaybackMetrics(in String sessionId, in PlaybackMetrics metrics, int userId); String getSessionId(int userId); void reportNetworkEvent(in String sessionId, in NetworkEvent event, int userId); diff --git a/media/java/android/media/metrics/PlaybackMetricsManager.java b/media/java/android/media/metrics/MediaMetricsManager.java similarity index 89% rename from media/java/android/media/metrics/PlaybackMetricsManager.java rename to media/java/android/media/metrics/MediaMetricsManager.java index f48ffe7f3b226..bac2010c5cfa8 100644 --- a/media/java/android/media/metrics/PlaybackMetricsManager.java +++ b/media/java/android/media/metrics/MediaMetricsManager.java @@ -20,19 +20,19 @@ import android.annotation.NonNull; import android.os.RemoteException; /** - * @hide + * This class gives information about, and interacts with media metrics. */ -public class PlaybackMetricsManager { +public class MediaMetricsManager { // TODO: unhide APIs. - private static final String TAG = "PlaybackMetricsManager"; + private static final String TAG = "MediaMetricsManager"; - private IPlaybackMetricsManager mService; + private IMediaMetricsManager mService; private int mUserId; /** * @hide */ - public PlaybackMetricsManager(IPlaybackMetricsManager service, int userId) { + public MediaMetricsManager(IMediaMetricsManager service, int userId) { mService = service; mUserId = userId; } @@ -87,7 +87,8 @@ public class PlaybackMetricsManager { /** * Creates a playback session. */ - public PlaybackSession createSession() { + @NonNull + public PlaybackSession createPlaybackSession() { try { String id = mService.getSessionId(mUserId); PlaybackSession session = new PlaybackSession(id, this); diff --git a/media/java/android/media/metrics/PlaybackSession.java b/media/java/android/media/metrics/PlaybackSession.java index 0a77516a0b8c8..3056e9820f9d8 100644 --- a/media/java/android/media/metrics/PlaybackSession.java +++ b/media/java/android/media/metrics/PlaybackSession.java @@ -24,11 +24,11 @@ import com.android.internal.util.AnnotationValidations; import java.util.Objects; /** - * @hide + * An instances of this class represents a session of media playback. */ public final class PlaybackSession implements AutoCloseable { private final @NonNull String mId; - private final @NonNull PlaybackMetricsManager mManager; + private final @NonNull MediaMetricsManager mManager; private boolean mClosed = false; /** @@ -36,7 +36,7 @@ public final class PlaybackSession implements AutoCloseable { * * @hide */ - public PlaybackSession(@NonNull String id, @NonNull PlaybackMetricsManager manager) { + public PlaybackSession(@NonNull String id, @NonNull MediaMetricsManager manager) { mId = id; mManager = manager; AnnotationValidations.validate(NonNull.class, null, mId); @@ -45,6 +45,7 @@ public final class PlaybackSession implements AutoCloseable { /** * Reports playback metrics. + * @hide */ public void reportPlaybackMetrics(@NonNull PlaybackMetrics metrics) { mManager.reportPlaybackMetrics(mId, metrics); @@ -52,6 +53,7 @@ public final class PlaybackSession implements AutoCloseable { /** * Reports error event. + * @hide */ public void reportPlaybackErrorEvent(PlaybackErrorEvent event) { mManager.reportPlaybackErrorEvent(mId, event); @@ -59,6 +61,7 @@ public final class PlaybackSession implements AutoCloseable { /** * Reports network event. + * @hide */ public void reportNetworkEvent(NetworkEvent event) { mManager.reportNetworkEvent(mId, event); @@ -66,6 +69,7 @@ public final class PlaybackSession implements AutoCloseable { /** * Reports playback state event. + * @hide */ public void reportPlaybackStateEvent(PlaybackStateEvent event) { mManager.reportPlaybackStateEvent(mId, event); @@ -73,6 +77,7 @@ public final class PlaybackSession implements AutoCloseable { /** * Reports track change event. + * @hide */ public void reportTrackChangeEvent(TrackChangeEvent event) { mManager.reportTrackChangeEvent(mId, event); @@ -96,7 +101,7 @@ public final class PlaybackSession implements AutoCloseable { } @Override - public void close() throws Exception { + public void close() { mClosed = true; } } diff --git a/services/core/java/com/android/server/media/metrics/PlaybackMetricsManagerService.java b/services/core/java/com/android/server/media/metrics/MediaMetricsManagerService.java similarity index 94% rename from services/core/java/com/android/server/media/metrics/PlaybackMetricsManagerService.java rename to services/core/java/com/android/server/media/metrics/MediaMetricsManagerService.java index 5fa7998397898..1282396ad05d9 100644 --- a/services/core/java/com/android/server/media/metrics/PlaybackMetricsManagerService.java +++ b/services/core/java/com/android/server/media/metrics/MediaMetricsManagerService.java @@ -17,7 +17,7 @@ package com.android.server.media.metrics; import android.content.Context; -import android.media.metrics.IPlaybackMetricsManager; +import android.media.metrics.IMediaMetricsManager; import android.media.metrics.NetworkEvent; import android.media.metrics.PlaybackErrorEvent; import android.media.metrics.PlaybackMetrics; @@ -33,9 +33,9 @@ import com.android.server.SystemService; import java.security.SecureRandom; /** - * System service manages playback metrics. + * System service manages media metrics. */ -public final class PlaybackMetricsManagerService extends SystemService { +public final class MediaMetricsManagerService extends SystemService { private final SecureRandom mSecureRandom; /** @@ -43,7 +43,7 @@ public final class PlaybackMetricsManagerService extends SystemService { * * @param context The system server context. */ - public PlaybackMetricsManagerService(Context context) { + public MediaMetricsManagerService(Context context) { super(context); mSecureRandom = new SecureRandom(); } @@ -54,7 +54,7 @@ public final class PlaybackMetricsManagerService extends SystemService { publishBinderService("playback_metrics", new BinderService()); } - private final class BinderService extends IPlaybackMetricsManager.Stub { + private final class BinderService extends IMediaMetricsManager.Stub { @Override public void reportPlaybackMetrics(String sessionId, PlaybackMetrics metrics, int userId) { StatsEvent statsEvent = StatsEvent.newBuilder()