Merge "Adding in hook to FGS metrics module in MediaSessionRecord." into udc-dev

This commit is contained in:
Kunal Malhotra
2023-03-27 18:27:51 +00:00
committed by Android (Google) Code Review

View File

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