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

Commit efd92a34 authored by Jaewan Kim's avatar Jaewan Kim
Browse files

MediaResourceMonitor: Send broadcast to current users

Multiple users can be running foreground if work profile is enabled,
so we need to send broadcast to all of them.

Bug: 29788027
Change-Id: I80b21c97cec857bebc5fd05f0c04ca134542b4d3
parent 90b2c781
Loading
Loading
Loading
Loading
+15 −6
Original line number Original line Diff line number Diff line
@@ -24,6 +24,7 @@ import android.media.IMediaResourceMonitor;
import android.os.Binder;
import android.os.Binder;
import android.os.RemoteException;
import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserHandle;
import android.os.UserManager;
import android.util.Log;
import android.util.Log;
import android.util.Slog;
import android.util.Slog;
import com.android.server.SystemService;
import com.android.server.SystemService;
@@ -59,12 +60,20 @@ public class MediaResourceMonitorService extends SystemService {
            final long identity = Binder.clearCallingIdentity();
            final long identity = Binder.clearCallingIdentity();
            try {
            try {
                String pkgNames[] = getPackageNamesFromPid(pid);
                String pkgNames[] = getPackageNamesFromPid(pid);
                if (pkgNames != null) {
                if (pkgNames == null) {
                    return;
                }
                UserManager manager = (UserManager) getContext().getSystemService(
                        Context.USER_SERVICE);
                int[] userIds = manager.getEnabledProfileIds(ActivityManager.getCurrentUser());
                if (userIds == null || userIds.length == 0) {
                    return;
                }
                Intent intent = new Intent(Intent.ACTION_MEDIA_RESOURCE_GRANTED);
                Intent intent = new Intent(Intent.ACTION_MEDIA_RESOURCE_GRANTED);
                intent.putExtra(Intent.EXTRA_PACKAGES, pkgNames);
                intent.putExtra(Intent.EXTRA_PACKAGES, pkgNames);
                intent.putExtra(Intent.EXTRA_MEDIA_RESOURCE_TYPE, type);
                intent.putExtra(Intent.EXTRA_MEDIA_RESOURCE_TYPE, type);
                    getContext().sendBroadcastAsUser(intent,
                for (int userId : userIds) {
                            new UserHandle(ActivityManager.getCurrentUser()),
                    getContext().sendBroadcastAsUser(intent, UserHandle.of(userId),
                            android.Manifest.permission.RECEIVE_MEDIA_RESOURCE_USAGE);
                            android.Manifest.permission.RECEIVE_MEDIA_RESOURCE_USAGE);
                }
                }
            } finally {
            } finally {