Loading src/com/android/settings/sound/AudioSwitchPreferenceController.java +18 −1 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; Loading Loading @@ -227,13 +228,29 @@ public abstract class AudioSwitchPreferenceController extends BasePreferenceCont } final List<BluetoothDevice> devices = leAudioProfile.getConnectedDevices(); for (BluetoothDevice device : devices) { if (device.isConnected()) { if (device.isConnected() && isDeviceInCachedList(device)) { connectedDevices.add(device); } } return connectedDevices; } /** * Confirm if the device exists in the cached devices list. If return true, it means * the device is main device in the LE Audio device group. Otherwise, the device is the member * device in the group. */ protected boolean isDeviceInCachedList(BluetoothDevice device) { Collection<CachedBluetoothDevice> cachedDevices = mLocalBluetoothManager.getCachedDeviceManager().getCachedDevicesCopy(); for (CachedBluetoothDevice cachedDevice : cachedDevices) { if (cachedDevice.getDevice().equals(device)) { return true; } } return false; } /** * get hearing aid profile connected device, exclude other devices with same hiSyncId. */ Loading tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java +47 −7 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ import com.android.settings.testutils.shadow.ShadowBluetoothUtils; import com.android.settingslib.bluetooth.A2dpProfile; import com.android.settingslib.bluetooth.BluetoothCallback; import com.android.settingslib.bluetooth.BluetoothEventManager; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager; import com.android.settingslib.bluetooth.HeadsetProfile; import com.android.settingslib.bluetooth.HearingAidProfile; import com.android.settingslib.bluetooth.LeAudioProfile; Loading @@ -71,6 +73,7 @@ import org.robolectric.shadows.ShadowBluetoothDevice; import org.robolectric.shadows.ShadowPackageManager; import java.util.ArrayList; import java.util.Collection; import java.util.List; @RunWith(RobolectricTestRunner.class) Loading Loading @@ -103,6 +106,12 @@ public class AudioOutputSwitchPreferenceControllerTest { private HearingAidProfile mHearingAidProfile; @Mock private LeAudioProfile mLeAudioProfile; @Mock private CachedBluetoothDeviceManager mCachedDeviceManager; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceL; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceR; private Context mContext; private PreferenceScreen mScreen; Loading @@ -121,6 +130,7 @@ public class AudioOutputSwitchPreferenceControllerTest { private List<BluetoothDevice> mLeAudioActiveDevices; private List<BluetoothDevice> mEmptyDevices; private ShadowPackageManager mPackageManager; private Collection<CachedBluetoothDevice> mCachedDevices; @Before public void setUp() { Loading @@ -135,6 +145,7 @@ public class AudioOutputSwitchPreferenceControllerTest { when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager); when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager); when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager); when(mLocalBluetoothProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile); when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile); when(mLocalBluetoothProfileManager.getHeadsetProfile()).thenReturn(mHeadsetProfile); Loading @@ -145,6 +156,11 @@ public class AudioOutputSwitchPreferenceControllerTest { mBluetoothManager = mContext.getSystemService(BluetoothManager.class); mBluetoothAdapter = mBluetoothManager.getAdapter(); mCachedDevices = new ArrayList<>(); mCachedDevices.add(mCachedBluetoothDeviceL); mCachedDevices.add(mCachedBluetoothDeviceR); when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices); mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1)); when(mBluetoothDevice.getName()).thenReturn(TEST_DEVICE_NAME_1); when(mBluetoothDevice.isConnected()).thenReturn(true); Loading Loading @@ -397,6 +413,7 @@ public class AudioOutputSwitchPreferenceControllerTest { @Test public void getConnectedLeAudioDevices_connectedLeAudioDevice_shouldAddDeviceToList() { when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice); mEmptyDevices.clear(); mProfileConnectedDevices.clear(); mProfileConnectedDevices.add(mBluetoothDevice); Loading @@ -409,22 +426,45 @@ public class AudioOutputSwitchPreferenceControllerTest { @Test public void getConnectedLeAudioDevices_disconnectedLeAudioDevice_shouldNotAddDeviceToList() { BluetoothDevice connectdBtLeAduioDevice = BluetoothDevice connectedBtLeAduioDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2)); when(connectdBtLeAduioDevice.isConnected()).thenReturn(true); BluetoothDevice disonnectdBtLeAduioDevice = when(connectedBtLeAduioDevice.isConnected()).thenReturn(true); BluetoothDevice disconnectedBtLeAduioDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_3)); when(disonnectdBtLeAduioDevice.isConnected()).thenReturn(false); when(disconnectedBtLeAduioDevice.isConnected()).thenReturn(false); when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice); when(mCachedBluetoothDeviceR.getDevice()).thenReturn(connectedBtLeAduioDevice); mEmptyDevices.clear(); mProfileConnectedDevices.clear(); mProfileConnectedDevices.add(mBluetoothDevice); mProfileConnectedDevices.add(connectdBtLeAduioDevice); mProfileConnectedDevices.add(disonnectdBtLeAduioDevice); mProfileConnectedDevices.add(connectedBtLeAduioDevice); mProfileConnectedDevices.add(disconnectedBtLeAduioDevice); when(mLeAudioProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices); mEmptyDevices.addAll(mController.getConnectedLeAudioDevices()); assertThat(mEmptyDevices).containsExactly(mBluetoothDevice, connectedBtLeAduioDevice); } @Test public void getConnectedLeAudioDevices_notInCachedDeviceList_shouldNotAddDeviceToList() { BluetoothDevice connectedBtLeAduioDevice1 = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2)); when(connectedBtLeAduioDevice1.isConnected()).thenReturn(true); BluetoothDevice connectedBtLeAduioDevice2 = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_3)); when(connectedBtLeAduioDevice2.isConnected()).thenReturn(true); when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice); when(mCachedBluetoothDeviceR.getDevice()).thenReturn(connectedBtLeAduioDevice1); mEmptyDevices.clear(); mProfileConnectedDevices.clear(); mProfileConnectedDevices.add(connectedBtLeAduioDevice1); mProfileConnectedDevices.add(connectedBtLeAduioDevice2); when(mLeAudioProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices); mEmptyDevices.addAll(mController.getConnectedLeAudioDevices()); assertThat(mEmptyDevices).containsExactly(mBluetoothDevice, connectdBtLeAduioDevice); assertThat(mEmptyDevices).containsExactly(connectedBtLeAduioDevice1); } @Test Loading tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,8 @@ import com.android.settings.bluetooth.Utils; import com.android.settings.testutils.shadow.ShadowAudioManager; import com.android.settings.testutils.shadow.ShadowBluetoothUtils; import com.android.settingslib.bluetooth.BluetoothEventManager; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager; import com.android.settingslib.bluetooth.HeadsetProfile; import com.android.settingslib.bluetooth.HearingAidProfile; import com.android.settingslib.bluetooth.LeAudioProfile; Loading @@ -63,6 +65,7 @@ import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowBluetoothDevice; import java.util.ArrayList; import java.util.Collection; import java.util.List; @RunWith(RobolectricTestRunner.class) Loading Loading @@ -100,6 +103,12 @@ public class HandsFreeProfileOutputPreferenceControllerTest { private LeAudioProfile mLeAudioProfile; @Mock private AudioSwitchPreferenceController.AudioSwitchCallback mAudioSwitchPreferenceCallback; @Mock private CachedBluetoothDeviceManager mCachedDeviceManager; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceL; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceR; private Context mContext; private PreferenceScreen mScreen; Loading @@ -117,6 +126,7 @@ public class HandsFreeProfileOutputPreferenceControllerTest { private List<BluetoothDevice> mProfileConnectedDevices; private List<BluetoothDevice> mHearingAidActiveDevices; private List<BluetoothDevice> mLeAudioActiveDevices; private Collection<CachedBluetoothDevice> mCachedDevices; @Before public void setUp() { Loading @@ -131,6 +141,7 @@ public class HandsFreeProfileOutputPreferenceControllerTest { when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager); when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager); when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager); when(mLocalBluetoothProfileManager.getHeadsetProfile()).thenReturn(mHeadsetProfile); when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile); when(mLocalBluetoothProfileManager.getLeAudioProfile()).thenReturn(mLeAudioProfile); Loading @@ -138,6 +149,11 @@ public class HandsFreeProfileOutputPreferenceControllerTest { mBluetoothManager = mContext.getSystemService(BluetoothManager.class); mBluetoothAdapter = mBluetoothManager.getAdapter(); mCachedDevices = new ArrayList<>(); mCachedDevices.add(mCachedBluetoothDeviceL); mCachedDevices.add(mCachedBluetoothDeviceR); when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices); mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1)); when(mBluetoothDevice.getName()).thenReturn(TEST_DEVICE_NAME_1); when(mBluetoothDevice.getAlias()).thenReturn(TEST_DEVICE_NAME_1); Loading Loading @@ -480,6 +496,7 @@ public class HandsFreeProfileOutputPreferenceControllerTest { public void updateState_leAudioDeviceActive_shouldSetActivatedDeviceName() { mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION); mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLE_HEADSET); when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice); when(mBluetoothDevice.getName()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1); when(mBluetoothDevice.getAlias()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1); mProfileConnectedDevices.clear(); Loading tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java +18 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,8 @@ import com.android.settings.testutils.shadow.ShadowAudioManager; import com.android.settings.testutils.shadow.ShadowBluetoothUtils; import com.android.settingslib.bluetooth.A2dpProfile; import com.android.settingslib.bluetooth.BluetoothEventManager; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager; import com.android.settingslib.bluetooth.HearingAidProfile; import com.android.settingslib.bluetooth.LeAudioProfile; import com.android.settingslib.bluetooth.LocalBluetoothManager; Loading @@ -77,6 +79,7 @@ import org.robolectric.shadows.ShadowBluetoothDevice; import org.robolectric.shadows.ShadowPackageManager; import java.util.ArrayList; import java.util.Collection; import java.util.List; @RunWith(RobolectricTestRunner.class) Loading Loading @@ -118,6 +121,12 @@ public class MediaOutputPreferenceControllerTest { private MediaSessionManager mMediaSessionManager; @Mock private MediaController mMediaController; @Mock private CachedBluetoothDeviceManager mCachedDeviceManager; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceL; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceR; private Context mContext; private PreferenceScreen mScreen; Loading @@ -142,6 +151,7 @@ public class MediaOutputPreferenceControllerTest { private ApplicationInfo mAppInfo; private PackageInfo mPackageInfo; private PackageStats mPackageStats; private Collection<CachedBluetoothDevice> mCachedDevices; @Before public void setUp() { Loading Loading @@ -173,6 +183,7 @@ public class MediaOutputPreferenceControllerTest { when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager); when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager); when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager); when(mLocalBluetoothProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile); when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile); when(mLocalBluetoothProfileManager.getLeAudioProfile()).thenReturn(mLeAudioProfile); Loading @@ -180,6 +191,11 @@ public class MediaOutputPreferenceControllerTest { mBluetoothManager = mContext.getSystemService(BluetoothManager.class); mBluetoothAdapter = mBluetoothManager.getAdapter(); mCachedDevices = new ArrayList<>(); mCachedDevices.add(mCachedBluetoothDeviceL); mCachedDevices.add(mCachedBluetoothDeviceR); when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices); mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1)); when(mBluetoothDevice.getName()).thenReturn(TEST_DEVICE_NAME_1); when(mBluetoothDevice.getAlias()).thenReturn(TEST_DEVICE_NAME_1); Loading Loading @@ -280,6 +296,8 @@ public class MediaOutputPreferenceControllerTest { public void updateState_withActiveLeAudioDevice_setActivatedDeviceName() { mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLE_HEADSET); mAudioManager.setMode(AudioManager.MODE_NORMAL); when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice); when(mCachedBluetoothDeviceR.getDevice()).thenReturn(mSecondBluetoothDevice); when(mBluetoothDevice.getAlias()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1); mProfileConnectedDevices.clear(); mProfileConnectedDevices.add(mBluetoothDevice); Loading Loading
src/com/android/settings/sound/AudioSwitchPreferenceController.java +18 −1 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; Loading Loading @@ -227,13 +228,29 @@ public abstract class AudioSwitchPreferenceController extends BasePreferenceCont } final List<BluetoothDevice> devices = leAudioProfile.getConnectedDevices(); for (BluetoothDevice device : devices) { if (device.isConnected()) { if (device.isConnected() && isDeviceInCachedList(device)) { connectedDevices.add(device); } } return connectedDevices; } /** * Confirm if the device exists in the cached devices list. If return true, it means * the device is main device in the LE Audio device group. Otherwise, the device is the member * device in the group. */ protected boolean isDeviceInCachedList(BluetoothDevice device) { Collection<CachedBluetoothDevice> cachedDevices = mLocalBluetoothManager.getCachedDeviceManager().getCachedDevicesCopy(); for (CachedBluetoothDevice cachedDevice : cachedDevices) { if (cachedDevice.getDevice().equals(device)) { return true; } } return false; } /** * get hearing aid profile connected device, exclude other devices with same hiSyncId. */ Loading
tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java +47 −7 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ import com.android.settings.testutils.shadow.ShadowBluetoothUtils; import com.android.settingslib.bluetooth.A2dpProfile; import com.android.settingslib.bluetooth.BluetoothCallback; import com.android.settingslib.bluetooth.BluetoothEventManager; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager; import com.android.settingslib.bluetooth.HeadsetProfile; import com.android.settingslib.bluetooth.HearingAidProfile; import com.android.settingslib.bluetooth.LeAudioProfile; Loading @@ -71,6 +73,7 @@ import org.robolectric.shadows.ShadowBluetoothDevice; import org.robolectric.shadows.ShadowPackageManager; import java.util.ArrayList; import java.util.Collection; import java.util.List; @RunWith(RobolectricTestRunner.class) Loading Loading @@ -103,6 +106,12 @@ public class AudioOutputSwitchPreferenceControllerTest { private HearingAidProfile mHearingAidProfile; @Mock private LeAudioProfile mLeAudioProfile; @Mock private CachedBluetoothDeviceManager mCachedDeviceManager; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceL; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceR; private Context mContext; private PreferenceScreen mScreen; Loading @@ -121,6 +130,7 @@ public class AudioOutputSwitchPreferenceControllerTest { private List<BluetoothDevice> mLeAudioActiveDevices; private List<BluetoothDevice> mEmptyDevices; private ShadowPackageManager mPackageManager; private Collection<CachedBluetoothDevice> mCachedDevices; @Before public void setUp() { Loading @@ -135,6 +145,7 @@ public class AudioOutputSwitchPreferenceControllerTest { when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager); when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager); when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager); when(mLocalBluetoothProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile); when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile); when(mLocalBluetoothProfileManager.getHeadsetProfile()).thenReturn(mHeadsetProfile); Loading @@ -145,6 +156,11 @@ public class AudioOutputSwitchPreferenceControllerTest { mBluetoothManager = mContext.getSystemService(BluetoothManager.class); mBluetoothAdapter = mBluetoothManager.getAdapter(); mCachedDevices = new ArrayList<>(); mCachedDevices.add(mCachedBluetoothDeviceL); mCachedDevices.add(mCachedBluetoothDeviceR); when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices); mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1)); when(mBluetoothDevice.getName()).thenReturn(TEST_DEVICE_NAME_1); when(mBluetoothDevice.isConnected()).thenReturn(true); Loading Loading @@ -397,6 +413,7 @@ public class AudioOutputSwitchPreferenceControllerTest { @Test public void getConnectedLeAudioDevices_connectedLeAudioDevice_shouldAddDeviceToList() { when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice); mEmptyDevices.clear(); mProfileConnectedDevices.clear(); mProfileConnectedDevices.add(mBluetoothDevice); Loading @@ -409,22 +426,45 @@ public class AudioOutputSwitchPreferenceControllerTest { @Test public void getConnectedLeAudioDevices_disconnectedLeAudioDevice_shouldNotAddDeviceToList() { BluetoothDevice connectdBtLeAduioDevice = BluetoothDevice connectedBtLeAduioDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2)); when(connectdBtLeAduioDevice.isConnected()).thenReturn(true); BluetoothDevice disonnectdBtLeAduioDevice = when(connectedBtLeAduioDevice.isConnected()).thenReturn(true); BluetoothDevice disconnectedBtLeAduioDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_3)); when(disonnectdBtLeAduioDevice.isConnected()).thenReturn(false); when(disconnectedBtLeAduioDevice.isConnected()).thenReturn(false); when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice); when(mCachedBluetoothDeviceR.getDevice()).thenReturn(connectedBtLeAduioDevice); mEmptyDevices.clear(); mProfileConnectedDevices.clear(); mProfileConnectedDevices.add(mBluetoothDevice); mProfileConnectedDevices.add(connectdBtLeAduioDevice); mProfileConnectedDevices.add(disonnectdBtLeAduioDevice); mProfileConnectedDevices.add(connectedBtLeAduioDevice); mProfileConnectedDevices.add(disconnectedBtLeAduioDevice); when(mLeAudioProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices); mEmptyDevices.addAll(mController.getConnectedLeAudioDevices()); assertThat(mEmptyDevices).containsExactly(mBluetoothDevice, connectedBtLeAduioDevice); } @Test public void getConnectedLeAudioDevices_notInCachedDeviceList_shouldNotAddDeviceToList() { BluetoothDevice connectedBtLeAduioDevice1 = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2)); when(connectedBtLeAduioDevice1.isConnected()).thenReturn(true); BluetoothDevice connectedBtLeAduioDevice2 = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_3)); when(connectedBtLeAduioDevice2.isConnected()).thenReturn(true); when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice); when(mCachedBluetoothDeviceR.getDevice()).thenReturn(connectedBtLeAduioDevice1); mEmptyDevices.clear(); mProfileConnectedDevices.clear(); mProfileConnectedDevices.add(connectedBtLeAduioDevice1); mProfileConnectedDevices.add(connectedBtLeAduioDevice2); when(mLeAudioProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices); mEmptyDevices.addAll(mController.getConnectedLeAudioDevices()); assertThat(mEmptyDevices).containsExactly(mBluetoothDevice, connectdBtLeAduioDevice); assertThat(mEmptyDevices).containsExactly(connectedBtLeAduioDevice1); } @Test Loading
tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,8 @@ import com.android.settings.bluetooth.Utils; import com.android.settings.testutils.shadow.ShadowAudioManager; import com.android.settings.testutils.shadow.ShadowBluetoothUtils; import com.android.settingslib.bluetooth.BluetoothEventManager; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager; import com.android.settingslib.bluetooth.HeadsetProfile; import com.android.settingslib.bluetooth.HearingAidProfile; import com.android.settingslib.bluetooth.LeAudioProfile; Loading @@ -63,6 +65,7 @@ import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowBluetoothDevice; import java.util.ArrayList; import java.util.Collection; import java.util.List; @RunWith(RobolectricTestRunner.class) Loading Loading @@ -100,6 +103,12 @@ public class HandsFreeProfileOutputPreferenceControllerTest { private LeAudioProfile mLeAudioProfile; @Mock private AudioSwitchPreferenceController.AudioSwitchCallback mAudioSwitchPreferenceCallback; @Mock private CachedBluetoothDeviceManager mCachedDeviceManager; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceL; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceR; private Context mContext; private PreferenceScreen mScreen; Loading @@ -117,6 +126,7 @@ public class HandsFreeProfileOutputPreferenceControllerTest { private List<BluetoothDevice> mProfileConnectedDevices; private List<BluetoothDevice> mHearingAidActiveDevices; private List<BluetoothDevice> mLeAudioActiveDevices; private Collection<CachedBluetoothDevice> mCachedDevices; @Before public void setUp() { Loading @@ -131,6 +141,7 @@ public class HandsFreeProfileOutputPreferenceControllerTest { when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager); when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager); when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager); when(mLocalBluetoothProfileManager.getHeadsetProfile()).thenReturn(mHeadsetProfile); when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile); when(mLocalBluetoothProfileManager.getLeAudioProfile()).thenReturn(mLeAudioProfile); Loading @@ -138,6 +149,11 @@ public class HandsFreeProfileOutputPreferenceControllerTest { mBluetoothManager = mContext.getSystemService(BluetoothManager.class); mBluetoothAdapter = mBluetoothManager.getAdapter(); mCachedDevices = new ArrayList<>(); mCachedDevices.add(mCachedBluetoothDeviceL); mCachedDevices.add(mCachedBluetoothDeviceR); when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices); mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1)); when(mBluetoothDevice.getName()).thenReturn(TEST_DEVICE_NAME_1); when(mBluetoothDevice.getAlias()).thenReturn(TEST_DEVICE_NAME_1); Loading Loading @@ -480,6 +496,7 @@ public class HandsFreeProfileOutputPreferenceControllerTest { public void updateState_leAudioDeviceActive_shouldSetActivatedDeviceName() { mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION); mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLE_HEADSET); when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice); when(mBluetoothDevice.getName()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1); when(mBluetoothDevice.getAlias()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1); mProfileConnectedDevices.clear(); Loading
tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java +18 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,8 @@ import com.android.settings.testutils.shadow.ShadowAudioManager; import com.android.settings.testutils.shadow.ShadowBluetoothUtils; import com.android.settingslib.bluetooth.A2dpProfile; import com.android.settingslib.bluetooth.BluetoothEventManager; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager; import com.android.settingslib.bluetooth.HearingAidProfile; import com.android.settingslib.bluetooth.LeAudioProfile; import com.android.settingslib.bluetooth.LocalBluetoothManager; Loading @@ -77,6 +79,7 @@ import org.robolectric.shadows.ShadowBluetoothDevice; import org.robolectric.shadows.ShadowPackageManager; import java.util.ArrayList; import java.util.Collection; import java.util.List; @RunWith(RobolectricTestRunner.class) Loading Loading @@ -118,6 +121,12 @@ public class MediaOutputPreferenceControllerTest { private MediaSessionManager mMediaSessionManager; @Mock private MediaController mMediaController; @Mock private CachedBluetoothDeviceManager mCachedDeviceManager; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceL; @Mock private CachedBluetoothDevice mCachedBluetoothDeviceR; private Context mContext; private PreferenceScreen mScreen; Loading @@ -142,6 +151,7 @@ public class MediaOutputPreferenceControllerTest { private ApplicationInfo mAppInfo; private PackageInfo mPackageInfo; private PackageStats mPackageStats; private Collection<CachedBluetoothDevice> mCachedDevices; @Before public void setUp() { Loading Loading @@ -173,6 +183,7 @@ public class MediaOutputPreferenceControllerTest { when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager); when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager); when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager); when(mLocalBluetoothProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile); when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile); when(mLocalBluetoothProfileManager.getLeAudioProfile()).thenReturn(mLeAudioProfile); Loading @@ -180,6 +191,11 @@ public class MediaOutputPreferenceControllerTest { mBluetoothManager = mContext.getSystemService(BluetoothManager.class); mBluetoothAdapter = mBluetoothManager.getAdapter(); mCachedDevices = new ArrayList<>(); mCachedDevices.add(mCachedBluetoothDeviceL); mCachedDevices.add(mCachedBluetoothDeviceR); when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices); mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1)); when(mBluetoothDevice.getName()).thenReturn(TEST_DEVICE_NAME_1); when(mBluetoothDevice.getAlias()).thenReturn(TEST_DEVICE_NAME_1); Loading Loading @@ -280,6 +296,8 @@ public class MediaOutputPreferenceControllerTest { public void updateState_withActiveLeAudioDevice_setActivatedDeviceName() { mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLE_HEADSET); mAudioManager.setMode(AudioManager.MODE_NORMAL); when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice); when(mCachedBluetoothDeviceR.getDevice()).thenReturn(mSecondBluetoothDevice); when(mBluetoothDevice.getAlias()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1); mProfileConnectedDevices.clear(); mProfileConnectedDevices.add(mBluetoothDevice); Loading