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

Commit 01ad1273 authored by shubang's avatar shubang
Browse files

Unhide playback metrics APIs part 1

Bug: 159337195
Test: mmm
Change-Id: Ifb25bbafaf97aa582cb7981c24e585620c35ef21
parent cc9aa619
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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 {
+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()