Unhide playback metrics APIs part 1

Bug: 159337195
Test: mmm
Change-Id: Ifb25bbafaf97aa582cb7981c24e585620c35ef21
This commit is contained in:
shubang
2021-01-06 16:02:51 -08:00
parent cc9aa6193a
commit 01ad1273a4
5 changed files with 35 additions and 16 deletions

View File

@@ -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 {

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;
}
}

View File

@@ -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()