Loading media/java/android/media/MediaRouter2.java +1 −1 Original line number Diff line number Diff line Loading @@ -2713,7 +2713,7 @@ public final class MediaRouter2 { List<RoutingSessionInfo> sessionInfos = getRoutingSessions(); RoutingSessionInfo targetSession = sessionInfos.get(sessionInfos.size() - 1); transfer(targetSession, route, Process.myUserHandle(), mContext.getPackageName()); transfer(targetSession, route, mClientUser, mContext.getPackageName()); } @Override Loading packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +15 −3 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import android.media.MediaRoute2Info; import android.media.RouteListingPreference; import android.media.RoutingSessionInfo; import android.os.Build; import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -131,6 +132,7 @@ public abstract class InfoMediaManager { protected final List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>(); @NonNull protected final Context mContext; @NonNull protected final String mPackageName; @NonNull protected final UserHandle mUserHandle; private final Collection<MediaDeviceCallback> mCallbacks = new CopyOnWriteArrayList<>(); private MediaDevice mCurrentConnectedDevice; private final LocalBluetoothManager mBluetoothManager; Loading @@ -140,16 +142,19 @@ public abstract class InfoMediaManager { /* package */ InfoMediaManager( @NonNull Context context, @NonNull String packageName, @NonNull UserHandle userHandle, @NonNull LocalBluetoothManager localBluetoothManager) { mContext = context; mBluetoothManager = localBluetoothManager; mPackageName = packageName; mUserHandle = userHandle; } /** Creates an instance of InfoMediaManager. */ public static InfoMediaManager createInstance( Context context, @Nullable String packageName, @Nullable UserHandle userHandle, LocalBluetoothManager localBluetoothManager) { // The caller is only interested in system routes (headsets, built-in speakers, etc), and is Loading @@ -159,16 +164,23 @@ public abstract class InfoMediaManager { packageName = context.getPackageName(); } if (userHandle == null) { userHandle = android.os.Process.myUserHandle(); } if (Flags.useMediaRouter2ForInfoMediaManager()) { try { return new RouterInfoMediaManager(context, packageName, localBluetoothManager); return new RouterInfoMediaManager( context, packageName, userHandle, localBluetoothManager); } catch (PackageNotAvailableException ex) { // TODO: b/293578081 - Propagate this exception to callers for proper handling. Log.w(TAG, "Returning a no-op InfoMediaManager for package " + packageName); return new NoOpInfoMediaManager(context, packageName, localBluetoothManager); return new NoOpInfoMediaManager( context, packageName, userHandle, localBluetoothManager); } } else { return new ManagerInfoMediaManager(context, packageName, localBluetoothManager); return new ManagerInfoMediaManager( context, packageName, userHandle, localBluetoothManager); } } Loading packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +4 −1 Original line number Diff line number Diff line Loading @@ -138,7 +138,10 @@ public class LocalMediaManager implements BluetoothCallback { } mInfoMediaManager = InfoMediaManager.createInstance(context, packageName, mLocalBluetoothManager); // TODO: b/321969740 - Take the userHandle as a parameter and pass it through. The // package name is not sufficient to unambiguously identify an app. InfoMediaManager.createInstance( context, packageName, /* userHandle */ null, mLocalBluetoothManager); } /** Loading packages/SettingsLib/src/com/android/settingslib/media/ManagerInfoMediaManager.java +4 −3 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.media.MediaRoute2Info; import android.media.MediaRouter2Manager; import android.media.RouteListingPreference; import android.media.RoutingSessionInfo; import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -53,8 +54,9 @@ public class ManagerInfoMediaManager extends InfoMediaManager { /* package */ ManagerInfoMediaManager( Context context, @NonNull String packageName, @NonNull UserHandle userHandle, LocalBluetoothManager localBluetoothManager) { super(context, packageName, localBluetoothManager); super(context, packageName, userHandle, localBluetoothManager); mRouterManager = MediaRouter2Manager.getInstance(context); } Loading Loading @@ -87,8 +89,7 @@ public class ManagerInfoMediaManager extends InfoMediaManager { @Override protected void transferToRoute(@NonNull MediaRoute2Info route) { // TODO: b/279555229 - provide real user handle of a caller. mRouterManager.transfer(mPackageName, route, android.os.Process.myUserHandle()); mRouterManager.transfer(mPackageName, route, mUserHandle); } @Override Loading packages/SettingsLib/src/com/android/settingslib/media/NoOpInfoMediaManager.java +3 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.Context; import android.media.MediaRoute2Info; import android.media.RouteListingPreference; import android.media.RoutingSessionInfo; import android.os.UserHandle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; Loading Loading @@ -58,8 +59,9 @@ import java.util.List; NoOpInfoMediaManager( Context context, @NonNull String packageName, @NonNull UserHandle userHandle, LocalBluetoothManager localBluetoothManager) { super(context, packageName, localBluetoothManager); super(context, packageName, userHandle, localBluetoothManager); } @Override Loading Loading
media/java/android/media/MediaRouter2.java +1 −1 Original line number Diff line number Diff line Loading @@ -2713,7 +2713,7 @@ public final class MediaRouter2 { List<RoutingSessionInfo> sessionInfos = getRoutingSessions(); RoutingSessionInfo targetSession = sessionInfos.get(sessionInfos.size() - 1); transfer(targetSession, route, Process.myUserHandle(), mContext.getPackageName()); transfer(targetSession, route, mClientUser, mContext.getPackageName()); } @Override Loading
packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +15 −3 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import android.media.MediaRoute2Info; import android.media.RouteListingPreference; import android.media.RoutingSessionInfo; import android.os.Build; import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -131,6 +132,7 @@ public abstract class InfoMediaManager { protected final List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>(); @NonNull protected final Context mContext; @NonNull protected final String mPackageName; @NonNull protected final UserHandle mUserHandle; private final Collection<MediaDeviceCallback> mCallbacks = new CopyOnWriteArrayList<>(); private MediaDevice mCurrentConnectedDevice; private final LocalBluetoothManager mBluetoothManager; Loading @@ -140,16 +142,19 @@ public abstract class InfoMediaManager { /* package */ InfoMediaManager( @NonNull Context context, @NonNull String packageName, @NonNull UserHandle userHandle, @NonNull LocalBluetoothManager localBluetoothManager) { mContext = context; mBluetoothManager = localBluetoothManager; mPackageName = packageName; mUserHandle = userHandle; } /** Creates an instance of InfoMediaManager. */ public static InfoMediaManager createInstance( Context context, @Nullable String packageName, @Nullable UserHandle userHandle, LocalBluetoothManager localBluetoothManager) { // The caller is only interested in system routes (headsets, built-in speakers, etc), and is Loading @@ -159,16 +164,23 @@ public abstract class InfoMediaManager { packageName = context.getPackageName(); } if (userHandle == null) { userHandle = android.os.Process.myUserHandle(); } if (Flags.useMediaRouter2ForInfoMediaManager()) { try { return new RouterInfoMediaManager(context, packageName, localBluetoothManager); return new RouterInfoMediaManager( context, packageName, userHandle, localBluetoothManager); } catch (PackageNotAvailableException ex) { // TODO: b/293578081 - Propagate this exception to callers for proper handling. Log.w(TAG, "Returning a no-op InfoMediaManager for package " + packageName); return new NoOpInfoMediaManager(context, packageName, localBluetoothManager); return new NoOpInfoMediaManager( context, packageName, userHandle, localBluetoothManager); } } else { return new ManagerInfoMediaManager(context, packageName, localBluetoothManager); return new ManagerInfoMediaManager( context, packageName, userHandle, localBluetoothManager); } } Loading
packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +4 −1 Original line number Diff line number Diff line Loading @@ -138,7 +138,10 @@ public class LocalMediaManager implements BluetoothCallback { } mInfoMediaManager = InfoMediaManager.createInstance(context, packageName, mLocalBluetoothManager); // TODO: b/321969740 - Take the userHandle as a parameter and pass it through. The // package name is not sufficient to unambiguously identify an app. InfoMediaManager.createInstance( context, packageName, /* userHandle */ null, mLocalBluetoothManager); } /** Loading
packages/SettingsLib/src/com/android/settingslib/media/ManagerInfoMediaManager.java +4 −3 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.media.MediaRoute2Info; import android.media.MediaRouter2Manager; import android.media.RouteListingPreference; import android.media.RoutingSessionInfo; import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -53,8 +54,9 @@ public class ManagerInfoMediaManager extends InfoMediaManager { /* package */ ManagerInfoMediaManager( Context context, @NonNull String packageName, @NonNull UserHandle userHandle, LocalBluetoothManager localBluetoothManager) { super(context, packageName, localBluetoothManager); super(context, packageName, userHandle, localBluetoothManager); mRouterManager = MediaRouter2Manager.getInstance(context); } Loading Loading @@ -87,8 +89,7 @@ public class ManagerInfoMediaManager extends InfoMediaManager { @Override protected void transferToRoute(@NonNull MediaRoute2Info route) { // TODO: b/279555229 - provide real user handle of a caller. mRouterManager.transfer(mPackageName, route, android.os.Process.myUserHandle()); mRouterManager.transfer(mPackageName, route, mUserHandle); } @Override Loading
packages/SettingsLib/src/com/android/settingslib/media/NoOpInfoMediaManager.java +3 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.Context; import android.media.MediaRoute2Info; import android.media.RouteListingPreference; import android.media.RoutingSessionInfo; import android.os.UserHandle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; Loading Loading @@ -58,8 +59,9 @@ import java.util.List; NoOpInfoMediaManager( Context context, @NonNull String packageName, @NonNull UserHandle userHandle, LocalBluetoothManager localBluetoothManager) { super(context, packageName, localBluetoothManager); super(context, packageName, userHandle, localBluetoothManager); } @Override Loading