Loading services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +18 −14 Original line number Diff line number Diff line Loading @@ -963,7 +963,7 @@ class MediaRouter2ServiceImpl { } return showOutputSwitcher( proxyRouterRecord.mTargetPackageName, UserHandle.of(proxyRouterRecord.mUserRecord.mUserId), proxyRouterRecord.mUserRecord.mUserHandle, sessionToken); } } finally { Loading Loading @@ -1926,7 +1926,9 @@ class MediaRouter2ServiceImpl { TAG, TextUtils.formatSimple( "unregisterManager | %s, user: %d, died: %b", managerRecord.getDebugString(), userRecord.mUserId, died)); managerRecord.getDebugString(), userRecord.mUserHandle.getIdentifier(), died)); userRecord.mManagerRecords.remove(managerRecord); managerRecord.dispose(); Loading Loading @@ -2304,7 +2306,7 @@ class MediaRouter2ServiceImpl { // and purge the user record and all of its associated state. If the user is current // then leave it alone since we might be connected to a route or want to query // the same route information again soon. if (!isUserActiveLocked(userRecord.mUserId) if (!isUserActiveLocked(userRecord.mUserHandle.getIdentifier()) && userRecord.mRouterRecords.isEmpty() && userRecord.mManagerRecords.isEmpty()) { if (DEBUG) { Loading @@ -2312,7 +2314,7 @@ class MediaRouter2ServiceImpl { } userRecord.mHandler.sendMessage( obtainMessage(UserHandler::stop, userRecord.mHandler)); mUserRecords.remove(userRecord.mUserId); mUserRecords.remove(userRecord.mUserHandle.getIdentifier()); // Note: User already stopped (by switchUser) so no need to send stop message here. } } Loading Loading @@ -2355,7 +2357,7 @@ class MediaRouter2ServiceImpl { } final class UserRecord { public final int mUserId; public final UserHandle mUserHandle; //TODO: make records private for thread-safety private final ArrayList<RouterRecord> mRouterRecords = new ArrayList<>(); final ArrayList<ManagerRecord> mManagerRecords = new ArrayList<>(); Loading @@ -2370,7 +2372,7 @@ class MediaRouter2ServiceImpl { final UserHandler mHandler; UserRecord(int userId, @NonNull Looper looper) { mUserId = userId; mUserHandle = UserHandle.of(userId); mHandler = new UserHandler(/* userRecord= */ this, looper); } Loading Loading @@ -2436,7 +2438,7 @@ class MediaRouter2ServiceImpl { String indent = prefix + " "; pw.println(indent + "mUserId=" + mUserId); pw.println(indent + "user id=" + mUserHandle.getIdentifier()); pw.println(indent + "Router Records:"); if (!mRouterRecords.isEmpty()) { Loading Loading @@ -2736,7 +2738,7 @@ class MediaRouter2ServiceImpl { UserHandle transferInitiatorUserHandle = sessionInfo.getTransferInitiatorUserHandle(); String transferInitiatorPackageName = sessionInfo.getTransferInitiatorPackageName(); if (!Objects.equals(UserHandle.of(mUserRecord.mUserId), transferInitiatorUserHandle) if (!Objects.equals(mUserRecord.mUserHandle, transferInitiatorUserHandle) || !Objects.equals(mPackageName, transferInitiatorPackageName)) { return new RoutingSessionInfo.Builder(sessionInfo) .setTransferInitiator(null, null) Loading Loading @@ -2803,7 +2805,7 @@ class MediaRouter2ServiceImpl { private String getDebugString() { return TextUtils.formatSimple( "Router %s (id=%d,pid=%d,userId=%d,uid=%d)", mPackageName, mRouterId, mPid, mUserRecord.mUserId, mUid); mPackageName, mRouterId, mPid, mUserRecord.mUserHandle.getIdentifier(), mUid); } /** Loading Loading @@ -3013,7 +3015,7 @@ class MediaRouter2ServiceImpl { mOwnerPackageName, mManagerId, mOwnerPid, mUserRecord.mUserId, mUserRecord.mUserHandle.getIdentifier(), mOwnerUid, mTargetPackageName); } Loading Loading @@ -3080,11 +3082,13 @@ class MediaRouter2ServiceImpl { mSystemProvider = Flags.enableMirroringInMediaRouter2() ? SystemMediaRoute2Provider2.create( mContext, UserHandle.of(userRecord.mUserId), looper) mContext, userRecord.mUserHandle, looper) : SystemMediaRoute2Provider.create( mContext, UserHandle.of(userRecord.mUserId), looper); mContext, userRecord.mUserHandle, looper); mRouteProviders.add(getSystemProvider()); mWatcher = new MediaRoute2ProviderWatcher(mContext, this, this, mUserRecord.mUserId); mWatcher = new MediaRoute2ProviderWatcher( mContext, this, this, mUserRecord.mUserHandle.getIdentifier()); } void init() { Loading Loading @@ -3461,7 +3465,7 @@ class MediaRouter2ServiceImpl { route.getOriginalId(), sessionHints, transferReason, UserHandle.of(routerRecord.mUserRecord.mUserId), routerRecord.mUserRecord.mUserHandle, routerRecord.mPackageName); } Loading Loading
services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +18 −14 Original line number Diff line number Diff line Loading @@ -963,7 +963,7 @@ class MediaRouter2ServiceImpl { } return showOutputSwitcher( proxyRouterRecord.mTargetPackageName, UserHandle.of(proxyRouterRecord.mUserRecord.mUserId), proxyRouterRecord.mUserRecord.mUserHandle, sessionToken); } } finally { Loading Loading @@ -1926,7 +1926,9 @@ class MediaRouter2ServiceImpl { TAG, TextUtils.formatSimple( "unregisterManager | %s, user: %d, died: %b", managerRecord.getDebugString(), userRecord.mUserId, died)); managerRecord.getDebugString(), userRecord.mUserHandle.getIdentifier(), died)); userRecord.mManagerRecords.remove(managerRecord); managerRecord.dispose(); Loading Loading @@ -2304,7 +2306,7 @@ class MediaRouter2ServiceImpl { // and purge the user record and all of its associated state. If the user is current // then leave it alone since we might be connected to a route or want to query // the same route information again soon. if (!isUserActiveLocked(userRecord.mUserId) if (!isUserActiveLocked(userRecord.mUserHandle.getIdentifier()) && userRecord.mRouterRecords.isEmpty() && userRecord.mManagerRecords.isEmpty()) { if (DEBUG) { Loading @@ -2312,7 +2314,7 @@ class MediaRouter2ServiceImpl { } userRecord.mHandler.sendMessage( obtainMessage(UserHandler::stop, userRecord.mHandler)); mUserRecords.remove(userRecord.mUserId); mUserRecords.remove(userRecord.mUserHandle.getIdentifier()); // Note: User already stopped (by switchUser) so no need to send stop message here. } } Loading Loading @@ -2355,7 +2357,7 @@ class MediaRouter2ServiceImpl { } final class UserRecord { public final int mUserId; public final UserHandle mUserHandle; //TODO: make records private for thread-safety private final ArrayList<RouterRecord> mRouterRecords = new ArrayList<>(); final ArrayList<ManagerRecord> mManagerRecords = new ArrayList<>(); Loading @@ -2370,7 +2372,7 @@ class MediaRouter2ServiceImpl { final UserHandler mHandler; UserRecord(int userId, @NonNull Looper looper) { mUserId = userId; mUserHandle = UserHandle.of(userId); mHandler = new UserHandler(/* userRecord= */ this, looper); } Loading Loading @@ -2436,7 +2438,7 @@ class MediaRouter2ServiceImpl { String indent = prefix + " "; pw.println(indent + "mUserId=" + mUserId); pw.println(indent + "user id=" + mUserHandle.getIdentifier()); pw.println(indent + "Router Records:"); if (!mRouterRecords.isEmpty()) { Loading Loading @@ -2736,7 +2738,7 @@ class MediaRouter2ServiceImpl { UserHandle transferInitiatorUserHandle = sessionInfo.getTransferInitiatorUserHandle(); String transferInitiatorPackageName = sessionInfo.getTransferInitiatorPackageName(); if (!Objects.equals(UserHandle.of(mUserRecord.mUserId), transferInitiatorUserHandle) if (!Objects.equals(mUserRecord.mUserHandle, transferInitiatorUserHandle) || !Objects.equals(mPackageName, transferInitiatorPackageName)) { return new RoutingSessionInfo.Builder(sessionInfo) .setTransferInitiator(null, null) Loading Loading @@ -2803,7 +2805,7 @@ class MediaRouter2ServiceImpl { private String getDebugString() { return TextUtils.formatSimple( "Router %s (id=%d,pid=%d,userId=%d,uid=%d)", mPackageName, mRouterId, mPid, mUserRecord.mUserId, mUid); mPackageName, mRouterId, mPid, mUserRecord.mUserHandle.getIdentifier(), mUid); } /** Loading Loading @@ -3013,7 +3015,7 @@ class MediaRouter2ServiceImpl { mOwnerPackageName, mManagerId, mOwnerPid, mUserRecord.mUserId, mUserRecord.mUserHandle.getIdentifier(), mOwnerUid, mTargetPackageName); } Loading Loading @@ -3080,11 +3082,13 @@ class MediaRouter2ServiceImpl { mSystemProvider = Flags.enableMirroringInMediaRouter2() ? SystemMediaRoute2Provider2.create( mContext, UserHandle.of(userRecord.mUserId), looper) mContext, userRecord.mUserHandle, looper) : SystemMediaRoute2Provider.create( mContext, UserHandle.of(userRecord.mUserId), looper); mContext, userRecord.mUserHandle, looper); mRouteProviders.add(getSystemProvider()); mWatcher = new MediaRoute2ProviderWatcher(mContext, this, this, mUserRecord.mUserId); mWatcher = new MediaRoute2ProviderWatcher( mContext, this, this, mUserRecord.mUserHandle.getIdentifier()); } void init() { Loading Loading @@ -3461,7 +3465,7 @@ class MediaRouter2ServiceImpl { route.getOriginalId(), sessionHints, transferReason, UserHandle.of(routerRecord.mUserRecord.mUserId), routerRecord.mUserRecord.mUserHandle, routerRecord.mPackageName); } Loading