Shouldn't show pair another ear dialog if hearing aid supports CSIP
Some devices may supports both ASHA and CSIP. If the device supports CSIP, it'll automatically pair the other ear and thus no need to pop up the pair another ear dialog which is specially for ASHA device. Bug: 283269736 Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingAidUtilsTest Change-Id: I9a8e3876e2905b18b1c63e74f47c6877504ebdc8
This commit is contained in:
@@ -37,8 +37,10 @@ import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
|
||||
import com.android.settings.utils.ActivityControllerWrapper;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
|
||||
import com.android.settingslib.bluetooth.CsipSetCoordinatorProfile;
|
||||
import com.android.settingslib.bluetooth.HearingAidInfo;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothManager;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothProfile;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
@@ -52,6 +54,9 @@ import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadow.api.Shadow;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/** Tests for {@link HearingAidUtils}. */
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {ShadowAlertDialogCompat.class, ShadowBluetoothAdapter.class,
|
||||
@@ -72,6 +77,8 @@ public class HearingAidUtilsTest {
|
||||
private LocalBluetoothManager mLocalBluetoothManager;
|
||||
@Mock
|
||||
private CachedBluetoothDeviceManager mCachedDeviceManager;
|
||||
@Mock
|
||||
private CsipSetCoordinatorProfile mCsipSetCoordinatorProfile;
|
||||
private BluetoothDevice mBluetoothDevice;
|
||||
private BluetoothAdapter mBluetoothAdapter;
|
||||
private ShadowBluetoothAdapter mShadowBluetoothAdapter;
|
||||
@@ -136,6 +143,38 @@ public class HearingAidUtilsTest {
|
||||
assertThat(dialog).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void launchHearingAidPairingDialog_deviceSupportsCsip_csipEnabled_noDialog() {
|
||||
when(mCachedBluetoothDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
|
||||
when(mCachedBluetoothDevice.getDeviceMode()).thenReturn(
|
||||
HearingAidInfo.DeviceMode.MODE_BINAURAL);
|
||||
when(mCachedBluetoothDevice.getDeviceSide()).thenReturn(
|
||||
HearingAidInfo.DeviceSide.SIDE_LEFT);
|
||||
makeDeviceSupportCsip();
|
||||
makeDeviceEnableCsip(true);
|
||||
|
||||
HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
|
||||
|
||||
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
|
||||
assertThat(dialog).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void launchHearingAidPairingDialog_deviceSupportsCsip_csipDisabled_dialogShown() {
|
||||
when(mCachedBluetoothDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
|
||||
when(mCachedBluetoothDevice.getDeviceMode()).thenReturn(
|
||||
HearingAidInfo.DeviceMode.MODE_BINAURAL);
|
||||
when(mCachedBluetoothDevice.getDeviceSide()).thenReturn(
|
||||
HearingAidInfo.DeviceSide.SIDE_LEFT);
|
||||
makeDeviceSupportCsip();
|
||||
makeDeviceEnableCsip(false);
|
||||
|
||||
HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
|
||||
|
||||
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
|
||||
assertThat(dialog.isShowing()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void launchHearingAidPairingDialog_dialogShown() {
|
||||
when(mCachedBluetoothDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
|
||||
@@ -150,6 +189,17 @@ public class HearingAidUtilsTest {
|
||||
assertThat(dialog.isShowing()).isTrue();
|
||||
}
|
||||
|
||||
private void makeDeviceSupportCsip() {
|
||||
List<LocalBluetoothProfile> uuids = new ArrayList<>();
|
||||
uuids.add(mCsipSetCoordinatorProfile);
|
||||
when(mCachedBluetoothDevice.getProfiles()).thenReturn(uuids);
|
||||
}
|
||||
|
||||
private void makeDeviceEnableCsip(boolean enabled) {
|
||||
when(mCsipSetCoordinatorProfile.isEnabled(mCachedBluetoothDevice.getDevice()))
|
||||
.thenReturn(enabled);
|
||||
}
|
||||
|
||||
private void setupEnvironment() {
|
||||
ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
|
||||
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
|
||||
|
||||
Reference in New Issue
Block a user