Loading services/core/java/com/android/server/media/BluetoothRouteProvider.java +2 −0 Original line number Diff line number Diff line Loading @@ -85,7 +85,9 @@ class BluetoothRouteProvider { mListener = listener; mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); buildBluetoothRoutes(); } public void start() { mBluetoothAdapter.getProfileProxy(mContext, mProfileListener, BluetoothProfile.A2DP); mBluetoothAdapter.getProfileProxy(mContext, mProfileListener, BluetoothProfile.HEARING_AID); Loading services/core/java/com/android/server/media/SystemMediaRoute2Provider.java +37 −39 Original line number Diff line number Diff line Loading @@ -103,25 +103,20 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { publishProviderState(); boolean sessionInfoChanged; synchronized (mLock) { sessionInfoChanged = updateSessionInfosIfNeededLocked(); } sessionInfoChanged = updateSessionInfosIfNeeded(); if (sessionInfoChanged) { notifySessionInfoUpdated(); } }); mHandler.post(() -> notifyProviderState()); //TODO: clean up this // This is required because it is not instantiated in the main thread and // BluetoothRoutesUpdatedListener can be called before here synchronized (mLock) { updateSessionInfosIfNeededLocked(); } updateSessionInfosIfNeeded(); mContext.registerReceiver(new VolumeChangeReceiver(), new IntentFilter(AudioManager.VOLUME_CHANGED_ACTION)); mHandler.post(() -> { mBtRouteProvider.start(); notifyProviderState(); }); } @Override Loading Loading @@ -220,10 +215,12 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { /** * Updates the mSessionInfo. Returns true if the session info is changed. */ boolean updateSessionInfosIfNeededLocked() { boolean updateSessionInfosIfNeeded() { synchronized (mLock) { // Prevent to execute this method before mBtRouteProvider is created. if (mBtRouteProvider == null) return false; RoutingSessionInfo oldSessionInfo = mSessionInfos.isEmpty() ? null : mSessionInfos.get(0); RoutingSessionInfo oldSessionInfo = mSessionInfos.isEmpty() ? null : mSessionInfos.get( 0); RoutingSessionInfo.Builder builder = new RoutingSessionInfo.Builder( SYSTEM_SESSION_ID, "" /* clientPackageName */) Loading Loading @@ -251,6 +248,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { return true; } } } void publishProviderState() { updateProviderState(); Loading Loading
services/core/java/com/android/server/media/BluetoothRouteProvider.java +2 −0 Original line number Diff line number Diff line Loading @@ -85,7 +85,9 @@ class BluetoothRouteProvider { mListener = listener; mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); buildBluetoothRoutes(); } public void start() { mBluetoothAdapter.getProfileProxy(mContext, mProfileListener, BluetoothProfile.A2DP); mBluetoothAdapter.getProfileProxy(mContext, mProfileListener, BluetoothProfile.HEARING_AID); Loading
services/core/java/com/android/server/media/SystemMediaRoute2Provider.java +37 −39 Original line number Diff line number Diff line Loading @@ -103,25 +103,20 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { publishProviderState(); boolean sessionInfoChanged; synchronized (mLock) { sessionInfoChanged = updateSessionInfosIfNeededLocked(); } sessionInfoChanged = updateSessionInfosIfNeeded(); if (sessionInfoChanged) { notifySessionInfoUpdated(); } }); mHandler.post(() -> notifyProviderState()); //TODO: clean up this // This is required because it is not instantiated in the main thread and // BluetoothRoutesUpdatedListener can be called before here synchronized (mLock) { updateSessionInfosIfNeededLocked(); } updateSessionInfosIfNeeded(); mContext.registerReceiver(new VolumeChangeReceiver(), new IntentFilter(AudioManager.VOLUME_CHANGED_ACTION)); mHandler.post(() -> { mBtRouteProvider.start(); notifyProviderState(); }); } @Override Loading Loading @@ -220,10 +215,12 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { /** * Updates the mSessionInfo. Returns true if the session info is changed. */ boolean updateSessionInfosIfNeededLocked() { boolean updateSessionInfosIfNeeded() { synchronized (mLock) { // Prevent to execute this method before mBtRouteProvider is created. if (mBtRouteProvider == null) return false; RoutingSessionInfo oldSessionInfo = mSessionInfos.isEmpty() ? null : mSessionInfos.get(0); RoutingSessionInfo oldSessionInfo = mSessionInfos.isEmpty() ? null : mSessionInfos.get( 0); RoutingSessionInfo.Builder builder = new RoutingSessionInfo.Builder( SYSTEM_SESSION_ID, "" /* clientPackageName */) Loading Loading @@ -251,6 +248,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { return true; } } } void publishProviderState() { updateProviderState(); Loading