Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d6049ab authored by Shubang Lu's avatar Shubang Lu Committed by Android (Google) Code Review
Browse files

Merge "Unhide playback metrics APIs part 1"

parents 3cf13808 01ad1273
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -23977,6 +23977,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 {
+1 −1
Original line number Diff line number Diff line
@@ -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);
+7 −6
Original line number Diff line number Diff line
@@ -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);
+9 −4
Original line number Diff line number Diff line
@@ -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;
    }
}
+5 −5
Original line number Diff line number Diff line
@@ -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()