Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e554e5b4 authored by hughchen's avatar hughchen
Browse files

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
parent 0cbca1a2
Loading
Loading
Loading
Loading
+23 −2
Original line number Diff line number Diff line
@@ -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
+22 −0
Original line number Diff line number Diff line
@@ -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);
    }
}