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

Commit 80d7da2c authored by Kunal Malhotra's avatar Kunal Malhotra
Browse files

Adding in hook to FGS metrics module in MediaSessionRecord.

Test: manual testing on device
Change-Id: I78147627b399f0756e3b4d205d843d1a3006af5e
Bug: b/263304156
parent 7b05ea66
Loading
Loading
Loading
Loading
+26 −1
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
package com.android.server.media;

import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.ActivityManagerInternal;
import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
@@ -55,6 +57,8 @@ import android.util.EventLog;
import android.util.Log;
import android.view.KeyEvent;

import com.android.server.LocalServices;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
@@ -422,6 +426,13 @@ public class MediaSessionRecord implements IBinder.DeathRecipient, MediaSessionR
     */
    @Override
    public void close() {
        // Log the session's active state
        // to measure usage of foreground service resources
        int callingUid = Binder.getCallingUid();
        int callingPid = Binder.getCallingPid();
        LocalServices.getService(ActivityManagerInternal.class)
                .logFgsApiEnd(ActivityManager.FOREGROUND_SERVICE_API_TYPE_MEDIA_PLAYBACK,
                callingUid, callingPid);
        synchronized (mLock) {
            if (mDestroyed) {
                return;
@@ -884,8 +895,22 @@ public class MediaSessionRecord implements IBinder.DeathRecipient, MediaSessionR

        @Override
        public void setActive(boolean active) throws RemoteException {
            // Log the session's active state
            // to measure usage of foreground service resources
            int callingUid = Binder.getCallingUid();
            int callingPid = Binder.getCallingPid();
            if (active) {
                LocalServices.getService(ActivityManagerInternal.class)
                        .logFgsApiBegin(ActivityManager.FOREGROUND_SERVICE_API_TYPE_MEDIA_PLAYBACK,
                                callingUid, callingPid);
            } else {
                LocalServices.getService(ActivityManagerInternal.class)
                        .logFgsApiEnd(ActivityManager.FOREGROUND_SERVICE_API_TYPE_MEDIA_PLAYBACK,
                                callingUid, callingPid);
            }

            mIsActive = active;
            final long token = Binder.clearCallingIdentity();
            long token = Binder.clearCallingIdentity();
            try {
                mService.onSessionActiveStateChanged(MediaSessionRecord.this);
            } finally {