Loading packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ import java.util.concurrent.Executors; public class InfoMediaManager extends MediaManager { private static final String TAG = "InfoMediaManager"; private static final boolean DEBUG = false; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);; @VisibleForTesting final RouterManagerCallback mMediaRouterCallback = new RouterManagerCallback(); @VisibleForTesting Loading Loading @@ -364,8 +364,8 @@ public class InfoMediaManager extends MediaManager { private void buildAvailableRoutes() { for (MediaRoute2Info route : mRouterManager.getAvailableRoutes(mPackageName)) { if (DEBUG) { Log.d(TAG, "buildAvailableRoutes() route : " + route.getName() + ", type : " + route.getType()); Log.d(TAG, "buildAvailableRoutes() route : " + route.getName() + ", volume : " + route.getVolume() + ", type : " + route.getType()); } addMediaDevice(route); } Loading packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +6 −4 Original line number Diff line number Diff line Loading @@ -394,7 +394,9 @@ public class LocalMediaManager implements BluetoothCallback { return mPackageName; } private MediaDevice updateCurrentConnectedDevice() { @VisibleForTesting MediaDevice updateCurrentConnectedDevice() { MediaDevice connectedDevice = null; synchronized (mMediaDevicesLock) { for (MediaDevice device : mMediaDevices) { if (device instanceof BluetoothMediaDevice) { Loading @@ -402,12 +404,12 @@ public class LocalMediaManager implements BluetoothCallback { return device; } } else if (device instanceof PhoneMediaDevice) { return device; connectedDevice = device; } } } Log.w(TAG, "updateCurrentConnectedDevice() can't found current connected device"); return null; return connectedDevice; } private boolean isActiveDevice(CachedBluetoothDevice device) { Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +3 −2 Original line number Diff line number Diff line Loading @@ -590,7 +590,7 @@ public class InfoMediaManagerTest { final MediaDevice mediaDevice = mInfoMediaManager.findMediaDevice(TEST_ID); assertThat(mediaDevice).isNull(); mInfoMediaManager.mMediaRouterCallback.onTransferred(null, null); mInfoMediaManager.mMediaRouterCallback.onTransferred(sessionInfo, sessionInfo); final MediaDevice infoDevice = mInfoMediaManager.mMediaDevices.get(0); assertThat(infoDevice.getId()).isEqualTo(TEST_ID); Loading @@ -602,6 +602,7 @@ public class InfoMediaManagerTest { @Test public void onTransferred_buildAllRoutes_shouldAddMediaDevice() { final MediaRoute2Info info = mock(MediaRoute2Info.class); final RoutingSessionInfo sessionInfo = mock(RoutingSessionInfo.class); mInfoMediaManager.registerCallback(mCallback); when(info.getId()).thenReturn(TEST_ID); Loading @@ -616,7 +617,7 @@ public class InfoMediaManagerTest { assertThat(mediaDevice).isNull(); mInfoMediaManager.mPackageName = ""; mInfoMediaManager.mMediaRouterCallback.onTransferred(null, null); mInfoMediaManager.mMediaRouterCallback.onTransferred(sessionInfo, sessionInfo); final MediaDevice infoDevice = mInfoMediaManager.mMediaDevices.get(0); assertThat(infoDevice.getId()).isEqualTo(TEST_ID); Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java +41 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static org.mockito.Mockito.when; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothClass; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; import android.content.Context; import android.media.MediaRoute2Info; import android.media.MediaRouter2Manager; Loading Loading @@ -725,4 +726,44 @@ public class LocalMediaManagerTest { verify(mInfoMediaManager).adjustSessionVolume(info, 10); } @Test public void updateCurrentConnectedDevice_bluetoothDeviceIsActive_returnBluetoothDevice() { final BluetoothMediaDevice device1 = mock(BluetoothMediaDevice.class); final BluetoothMediaDevice device2 = mock(BluetoothMediaDevice.class); final PhoneMediaDevice phoneDevice = mock(PhoneMediaDevice.class); final CachedBluetoothDevice cachedDevice1 = mock(CachedBluetoothDevice.class); final CachedBluetoothDevice cachedDevice2 = mock(CachedBluetoothDevice.class); when(device1.getCachedDevice()).thenReturn(cachedDevice1); when(device2.getCachedDevice()).thenReturn(cachedDevice2); when(cachedDevice1.isActiveDevice(BluetoothProfile.A2DP)).thenReturn(false); when(cachedDevice2.isActiveDevice(BluetoothProfile.A2DP)).thenReturn(true); mLocalMediaManager.mMediaDevices.add(device1); mLocalMediaManager.mMediaDevices.add(phoneDevice); mLocalMediaManager.mMediaDevices.add(device2); assertThat(mLocalMediaManager.updateCurrentConnectedDevice()).isEqualTo(device2); } @Test public void updateCurrentConnectedDevice_phoneDeviceIsActive_returnPhoneDevice() { final BluetoothMediaDevice device1 = mock(BluetoothMediaDevice.class); final BluetoothMediaDevice device2 = mock(BluetoothMediaDevice.class); final PhoneMediaDevice phoneDevice = mock(PhoneMediaDevice.class); final CachedBluetoothDevice cachedDevice1 = mock(CachedBluetoothDevice.class); final CachedBluetoothDevice cachedDevice2 = mock(CachedBluetoothDevice.class); when(device1.getCachedDevice()).thenReturn(cachedDevice1); when(device2.getCachedDevice()).thenReturn(cachedDevice2); when(cachedDevice1.isActiveDevice(BluetoothProfile.A2DP)).thenReturn(false); when(cachedDevice2.isActiveDevice(BluetoothProfile.A2DP)).thenReturn(false); mLocalMediaManager.mMediaDevices.add(device1); mLocalMediaManager.mMediaDevices.add(phoneDevice); mLocalMediaManager.mMediaDevices.add(device2); assertThat(mLocalMediaManager.updateCurrentConnectedDevice()).isEqualTo(phoneDevice); } } Loading
packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ import java.util.concurrent.Executors; public class InfoMediaManager extends MediaManager { private static final String TAG = "InfoMediaManager"; private static final boolean DEBUG = false; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);; @VisibleForTesting final RouterManagerCallback mMediaRouterCallback = new RouterManagerCallback(); @VisibleForTesting Loading Loading @@ -364,8 +364,8 @@ public class InfoMediaManager extends MediaManager { private void buildAvailableRoutes() { for (MediaRoute2Info route : mRouterManager.getAvailableRoutes(mPackageName)) { if (DEBUG) { Log.d(TAG, "buildAvailableRoutes() route : " + route.getName() + ", type : " + route.getType()); Log.d(TAG, "buildAvailableRoutes() route : " + route.getName() + ", volume : " + route.getVolume() + ", type : " + route.getType()); } addMediaDevice(route); } Loading
packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +6 −4 Original line number Diff line number Diff line Loading @@ -394,7 +394,9 @@ public class LocalMediaManager implements BluetoothCallback { return mPackageName; } private MediaDevice updateCurrentConnectedDevice() { @VisibleForTesting MediaDevice updateCurrentConnectedDevice() { MediaDevice connectedDevice = null; synchronized (mMediaDevicesLock) { for (MediaDevice device : mMediaDevices) { if (device instanceof BluetoothMediaDevice) { Loading @@ -402,12 +404,12 @@ public class LocalMediaManager implements BluetoothCallback { return device; } } else if (device instanceof PhoneMediaDevice) { return device; connectedDevice = device; } } } Log.w(TAG, "updateCurrentConnectedDevice() can't found current connected device"); return null; return connectedDevice; } private boolean isActiveDevice(CachedBluetoothDevice device) { Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +3 −2 Original line number Diff line number Diff line Loading @@ -590,7 +590,7 @@ public class InfoMediaManagerTest { final MediaDevice mediaDevice = mInfoMediaManager.findMediaDevice(TEST_ID); assertThat(mediaDevice).isNull(); mInfoMediaManager.mMediaRouterCallback.onTransferred(null, null); mInfoMediaManager.mMediaRouterCallback.onTransferred(sessionInfo, sessionInfo); final MediaDevice infoDevice = mInfoMediaManager.mMediaDevices.get(0); assertThat(infoDevice.getId()).isEqualTo(TEST_ID); Loading @@ -602,6 +602,7 @@ public class InfoMediaManagerTest { @Test public void onTransferred_buildAllRoutes_shouldAddMediaDevice() { final MediaRoute2Info info = mock(MediaRoute2Info.class); final RoutingSessionInfo sessionInfo = mock(RoutingSessionInfo.class); mInfoMediaManager.registerCallback(mCallback); when(info.getId()).thenReturn(TEST_ID); Loading @@ -616,7 +617,7 @@ public class InfoMediaManagerTest { assertThat(mediaDevice).isNull(); mInfoMediaManager.mPackageName = ""; mInfoMediaManager.mMediaRouterCallback.onTransferred(null, null); mInfoMediaManager.mMediaRouterCallback.onTransferred(sessionInfo, sessionInfo); final MediaDevice infoDevice = mInfoMediaManager.mMediaDevices.get(0); assertThat(infoDevice.getId()).isEqualTo(TEST_ID); Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java +41 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static org.mockito.Mockito.when; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothClass; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; import android.content.Context; import android.media.MediaRoute2Info; import android.media.MediaRouter2Manager; Loading Loading @@ -725,4 +726,44 @@ public class LocalMediaManagerTest { verify(mInfoMediaManager).adjustSessionVolume(info, 10); } @Test public void updateCurrentConnectedDevice_bluetoothDeviceIsActive_returnBluetoothDevice() { final BluetoothMediaDevice device1 = mock(BluetoothMediaDevice.class); final BluetoothMediaDevice device2 = mock(BluetoothMediaDevice.class); final PhoneMediaDevice phoneDevice = mock(PhoneMediaDevice.class); final CachedBluetoothDevice cachedDevice1 = mock(CachedBluetoothDevice.class); final CachedBluetoothDevice cachedDevice2 = mock(CachedBluetoothDevice.class); when(device1.getCachedDevice()).thenReturn(cachedDevice1); when(device2.getCachedDevice()).thenReturn(cachedDevice2); when(cachedDevice1.isActiveDevice(BluetoothProfile.A2DP)).thenReturn(false); when(cachedDevice2.isActiveDevice(BluetoothProfile.A2DP)).thenReturn(true); mLocalMediaManager.mMediaDevices.add(device1); mLocalMediaManager.mMediaDevices.add(phoneDevice); mLocalMediaManager.mMediaDevices.add(device2); assertThat(mLocalMediaManager.updateCurrentConnectedDevice()).isEqualTo(device2); } @Test public void updateCurrentConnectedDevice_phoneDeviceIsActive_returnPhoneDevice() { final BluetoothMediaDevice device1 = mock(BluetoothMediaDevice.class); final BluetoothMediaDevice device2 = mock(BluetoothMediaDevice.class); final PhoneMediaDevice phoneDevice = mock(PhoneMediaDevice.class); final CachedBluetoothDevice cachedDevice1 = mock(CachedBluetoothDevice.class); final CachedBluetoothDevice cachedDevice2 = mock(CachedBluetoothDevice.class); when(device1.getCachedDevice()).thenReturn(cachedDevice1); when(device2.getCachedDevice()).thenReturn(cachedDevice2); when(cachedDevice1.isActiveDevice(BluetoothProfile.A2DP)).thenReturn(false); when(cachedDevice2.isActiveDevice(BluetoothProfile.A2DP)).thenReturn(false); mLocalMediaManager.mMediaDevices.add(device1); mLocalMediaManager.mMediaDevices.add(phoneDevice); mLocalMediaManager.mMediaDevices.add(device2); assertThat(mLocalMediaManager.updateCurrentConnectedDevice()).isEqualTo(phoneDevice); } }