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:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user