Add unique device id for usb-c headset and wired headset

- In PhoneMediaDevice is possible have 3 different type, phone,
  wired headset, usb headset. But it only have one id to represent
  them. It cause when we compare PhoneMediaDevice will not know they
  are different because they have same id.

  This CL add unique id for wired headset and usb headset  to compare
  PhoneMediaDevice.
- Add test case

Bug: 155148951
Test: make -j42 RunSettingsLibRoboTests
Change-Id: Ic2fd1155bff1e87bf0a78d03b35ab074d271e9b0
This commit is contained in:
hughchen
2020-05-06 14:11:56 +08:00
parent 0cbca1a253
commit e554e5b483
2 changed files with 45 additions and 2 deletions

View File

@@ -41,7 +41,10 @@ public class PhoneMediaDevice extends MediaDevice {
private static final String TAG = "PhoneMediaDevice";
public static final String ID = "phone_media_device_id_1";
public static final String PHONE_ID = "phone_media_device_id";
// For 3.5 mm wired headset
public static final String WIRED_HEADSET_ID = "wired_headset_media_device_id";
public static final String USB_HEADSET_ID = "usb_headset_media_device_id";
private String mSummary = "";
@@ -109,7 +112,25 @@ public class PhoneMediaDevice extends MediaDevice {
@Override
public String getId() {
return ID;
String id;
switch (mRouteInfo.getType()) {
case TYPE_WIRED_HEADSET:
case TYPE_WIRED_HEADPHONES:
id = WIRED_HEADSET_ID;
break;
case TYPE_USB_DEVICE:
case TYPE_USB_HEADSET:
case TYPE_USB_ACCESSORY:
case TYPE_DOCK:
case TYPE_HDMI:
id = USB_HEADSET_ID;
break;
case TYPE_BUILTIN_SPEAKER:
default:
id = PHONE_ID;
break;
}
return id;
}
@Override

View File

@@ -21,6 +21,10 @@ import static android.media.MediaRoute2Info.TYPE_USB_DEVICE;
import static android.media.MediaRoute2Info.TYPE_WIRED_HEADPHONES;
import static android.media.MediaRoute2Info.TYPE_WIRED_HEADSET;
import static com.android.settingslib.media.PhoneMediaDevice.PHONE_ID;
import static com.android.settingslib.media.PhoneMediaDevice.USB_HEADSET_ID;
import static com.android.settingslib.media.PhoneMediaDevice.WIRED_HEADSET_ID;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
@@ -108,4 +112,22 @@ public class PhoneMediaDeviceTest {
assertThat(mPhoneMediaDevice.getName())
.isEqualTo(mContext.getString(R.string.media_transfer_this_device_name));
}
@Test
public void getId_returnCorrectId() {
when(mInfo.getType()).thenReturn(TYPE_WIRED_HEADPHONES);
assertThat(mPhoneMediaDevice.getId())
.isEqualTo(WIRED_HEADSET_ID);
when(mInfo.getType()).thenReturn(TYPE_USB_DEVICE);
assertThat(mPhoneMediaDevice.getId())
.isEqualTo(USB_HEADSET_ID);
when(mInfo.getType()).thenReturn(TYPE_BUILTIN_SPEAKER);
assertThat(mPhoneMediaDevice.getId())
.isEqualTo(PHONE_ID);
}
}