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

Commit ff315720 authored by Wenyu Zhang's avatar Wenyu Zhang
Browse files

Support BLE input device

Change-Id: Ieaadff2e88ec76322d11169d90a21a8cf9dac85a
Bug: b/355684672
Test: InputMediaDeviceTest
Flag: com.android.media.flags.enable_audio_input_device_routing_and_volume_control
parent 3ea041fc
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
package com.android.settingslib.media;

import static android.media.AudioDeviceInfo.TYPE_BLE_HEADSET;
import static android.media.AudioDeviceInfo.TYPE_BLUETOOTH_SCO;
import static android.media.AudioDeviceInfo.TYPE_BUILTIN_MIC;
import static android.media.AudioDeviceInfo.TYPE_USB_ACCESSORY;
@@ -103,7 +104,8 @@ public class InputMediaDevice extends MediaDevice {
                            TYPE_USB_DEVICE,
                            TYPE_USB_HEADSET,
                            TYPE_USB_ACCESSORY,
                            TYPE_BLUETOOTH_SCO ->
                            TYPE_BLUETOOTH_SCO,
                            TYPE_BLE_HEADSET ->
                    true;
            default -> false;
        };
@@ -124,7 +126,7 @@ public class InputMediaDevice extends MediaDevice {
                    mProductName != null
                            ? mProductName
                            : mContext.getString(R.string.media_transfer_usb_device_mic_name);
            case TYPE_BLUETOOTH_SCO ->
            case TYPE_BLUETOOTH_SCO, TYPE_BLE_HEADSET ->
                    mProductName != null
                            ? mProductName
                            : mContext.getString(R.string.media_transfer_bt_device_mic_name);
+33 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ public class InputMediaDeviceTest {
    private final int WIRED_HEADSET_ID = 2;
    private final int USB_HEADSET_ID = 3;
    private final int BT_HEADSET_ID = 4;
    private final int BLE_HEADSET_ID = 5;
    private final int MAX_VOLUME = 1;
    private final int CURRENT_VOLUME = 0;
    private final boolean IS_VOLUME_FIXED = true;
@@ -45,6 +46,7 @@ public class InputMediaDeviceTest {
    private static final String PRODUCT_NAME_WIRED_HEADSET = "My Wired Headset";
    private static final String PRODUCT_NAME_USB_HEADSET = "My USB Headset";
    private static final String PRODUCT_NAME_BT_HEADSET = "My Bluetooth Headset";
    private static final String PRODUCT_NAME_BLE_HEADSET = "My BLE Headset";

    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();

@@ -163,4 +165,35 @@ public class InputMediaDeviceTest {
        assertThat(btMediaDevice.getName())
                .isEqualTo(mContext.getString(R.string.media_transfer_bt_device_mic_name));
    }

    @Test
    public void getName_returnCorrectName_bleHeadset() {
        InputMediaDevice bleMediaDevice =
                InputMediaDevice.create(
                        mContext,
                        String.valueOf(BLE_HEADSET_ID),
                        AudioDeviceInfo.TYPE_BLE_HEADSET,
                        MAX_VOLUME,
                        CURRENT_VOLUME,
                        IS_VOLUME_FIXED,
                        PRODUCT_NAME_BLE_HEADSET);
        assertThat(bleMediaDevice).isNotNull();
        assertThat(bleMediaDevice.getName()).isEqualTo(PRODUCT_NAME_BLE_HEADSET);
    }

    @Test
    public void getName_returnCorrectName_bleHeadset_nullProductName() {
        InputMediaDevice bleMediaDevice =
                InputMediaDevice.create(
                        mContext,
                        String.valueOf(BLE_HEADSET_ID),
                        AudioDeviceInfo.TYPE_BLE_HEADSET,
                        MAX_VOLUME,
                        CURRENT_VOLUME,
                        IS_VOLUME_FIXED,
                        null);
        assertThat(bleMediaDevice).isNotNull();
        assertThat(bleMediaDevice.getName())
                .isEqualTo(mContext.getString(R.string.media_transfer_bt_device_mic_name));
    }
}