Loading services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +11 −1 Original line number Original line Diff line number Diff line Loading @@ -985,6 +985,7 @@ class MediaRouter2ServiceImpl { if (userRecord == null) { if (userRecord == null) { userRecord = new UserRecord(userId); userRecord = new UserRecord(userId); mUserRecords.put(userId, userRecord); mUserRecords.put(userId, userRecord); userRecord.init(); if (userId == mCurrentUserId) { if (userId == mCurrentUserId) { userRecord.mHandler.sendMessage( userRecord.mHandler.sendMessage( obtainMessage(UserHandler::start, userRecord.mHandler)); obtainMessage(UserHandler::start, userRecord.mHandler)); Loading Loading @@ -1034,6 +1035,10 @@ class MediaRouter2ServiceImpl { mHandler = new UserHandler(MediaRouter2ServiceImpl.this, this); mHandler = new UserHandler(MediaRouter2ServiceImpl.this, this); } } void init() { mHandler.init(); } // TODO: This assumes that only one router exists in a package. // TODO: This assumes that only one router exists in a package. // Do this in Android S or later. // Do this in Android S or later. RouterRecord findRouterRecordLocked(String packageName) { RouterRecord findRouterRecordLocked(String packageName) { Loading Loading @@ -1141,16 +1146,21 @@ class MediaRouter2ServiceImpl { private boolean mRunning; private boolean mRunning; // TODO: (In Android S+) Pull out SystemMediaRoute2Provider out of UserHandler. UserHandler(@NonNull MediaRouter2ServiceImpl service, @NonNull UserRecord userRecord) { UserHandler(@NonNull MediaRouter2ServiceImpl service, @NonNull UserRecord userRecord) { super(Looper.getMainLooper(), null, true); super(Looper.getMainLooper(), null, true); mServiceRef = new WeakReference<>(service); mServiceRef = new WeakReference<>(service); mUserRecord = userRecord; mUserRecord = userRecord; mSystemProvider = new SystemMediaRoute2Provider(service.mContext, this); mSystemProvider = new SystemMediaRoute2Provider(service.mContext); mRouteProviders.add(mSystemProvider); mRouteProviders.add(mSystemProvider); mWatcher = new MediaRoute2ProviderWatcher(service.mContext, this, mWatcher = new MediaRoute2ProviderWatcher(service.mContext, this, this, mUserRecord.mUserId); this, mUserRecord.mUserId); } } void init() { mSystemProvider.setCallback(this); } private void start() { private void start() { if (!mRunning) { if (!mRunning) { mRunning = true; mRunning = true; Loading services/core/java/com/android/server/media/SystemMediaRoute2Provider.java +12 −3 Original line number Original line Diff line number Diff line Loading @@ -98,12 +98,10 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { } } }; }; SystemMediaRoute2Provider(Context context, Callback callback) { SystemMediaRoute2Provider(Context context) { super(sComponentName); super(sComponentName); setCallback(callback); mIsSystemRouteProvider = true; mIsSystemRouteProvider = true; mContext = context; mContext = context; mHandler = new Handler(Looper.getMainLooper()); mHandler = new Handler(Looper.getMainLooper()); Loading Loading @@ -142,6 +140,13 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { updateVolume(); updateVolume(); } } @Override public void setCallback(Callback callback) { super.setCallback(callback); notifyProviderState(); notifySessionInfoUpdated(); } @Override @Override public void requestCreateSession(long requestId, String packageName, String routeId, public void requestCreateSession(long requestId, String packageName, String routeId, Bundle sessionHints) { Bundle sessionHints) { Loading Loading @@ -354,6 +359,10 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { } } void notifySessionInfoUpdated() { void notifySessionInfoUpdated() { if (mCallback == null) { return; } RoutingSessionInfo sessionInfo; RoutingSessionInfo sessionInfo; synchronized (mLock) { synchronized (mLock) { sessionInfo = mSessionInfos.get(0); sessionInfo = mSessionInfos.get(0); Loading Loading
services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +11 −1 Original line number Original line Diff line number Diff line Loading @@ -985,6 +985,7 @@ class MediaRouter2ServiceImpl { if (userRecord == null) { if (userRecord == null) { userRecord = new UserRecord(userId); userRecord = new UserRecord(userId); mUserRecords.put(userId, userRecord); mUserRecords.put(userId, userRecord); userRecord.init(); if (userId == mCurrentUserId) { if (userId == mCurrentUserId) { userRecord.mHandler.sendMessage( userRecord.mHandler.sendMessage( obtainMessage(UserHandler::start, userRecord.mHandler)); obtainMessage(UserHandler::start, userRecord.mHandler)); Loading Loading @@ -1034,6 +1035,10 @@ class MediaRouter2ServiceImpl { mHandler = new UserHandler(MediaRouter2ServiceImpl.this, this); mHandler = new UserHandler(MediaRouter2ServiceImpl.this, this); } } void init() { mHandler.init(); } // TODO: This assumes that only one router exists in a package. // TODO: This assumes that only one router exists in a package. // Do this in Android S or later. // Do this in Android S or later. RouterRecord findRouterRecordLocked(String packageName) { RouterRecord findRouterRecordLocked(String packageName) { Loading Loading @@ -1141,16 +1146,21 @@ class MediaRouter2ServiceImpl { private boolean mRunning; private boolean mRunning; // TODO: (In Android S+) Pull out SystemMediaRoute2Provider out of UserHandler. UserHandler(@NonNull MediaRouter2ServiceImpl service, @NonNull UserRecord userRecord) { UserHandler(@NonNull MediaRouter2ServiceImpl service, @NonNull UserRecord userRecord) { super(Looper.getMainLooper(), null, true); super(Looper.getMainLooper(), null, true); mServiceRef = new WeakReference<>(service); mServiceRef = new WeakReference<>(service); mUserRecord = userRecord; mUserRecord = userRecord; mSystemProvider = new SystemMediaRoute2Provider(service.mContext, this); mSystemProvider = new SystemMediaRoute2Provider(service.mContext); mRouteProviders.add(mSystemProvider); mRouteProviders.add(mSystemProvider); mWatcher = new MediaRoute2ProviderWatcher(service.mContext, this, mWatcher = new MediaRoute2ProviderWatcher(service.mContext, this, this, mUserRecord.mUserId); this, mUserRecord.mUserId); } } void init() { mSystemProvider.setCallback(this); } private void start() { private void start() { if (!mRunning) { if (!mRunning) { mRunning = true; mRunning = true; Loading
services/core/java/com/android/server/media/SystemMediaRoute2Provider.java +12 −3 Original line number Original line Diff line number Diff line Loading @@ -98,12 +98,10 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { } } }; }; SystemMediaRoute2Provider(Context context, Callback callback) { SystemMediaRoute2Provider(Context context) { super(sComponentName); super(sComponentName); setCallback(callback); mIsSystemRouteProvider = true; mIsSystemRouteProvider = true; mContext = context; mContext = context; mHandler = new Handler(Looper.getMainLooper()); mHandler = new Handler(Looper.getMainLooper()); Loading Loading @@ -142,6 +140,13 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { updateVolume(); updateVolume(); } } @Override public void setCallback(Callback callback) { super.setCallback(callback); notifyProviderState(); notifySessionInfoUpdated(); } @Override @Override public void requestCreateSession(long requestId, String packageName, String routeId, public void requestCreateSession(long requestId, String packageName, String routeId, Bundle sessionHints) { Bundle sessionHints) { Loading Loading @@ -354,6 +359,10 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { } } void notifySessionInfoUpdated() { void notifySessionInfoUpdated() { if (mCallback == null) { return; } RoutingSessionInfo sessionInfo; RoutingSessionInfo sessionInfo; synchronized (mLock) { synchronized (mLock) { sessionInfo = mSessionInfos.get(0); sessionInfo = mSessionInfos.get(0); Loading