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

Commit 8d5052d4 authored by Wenyu Zhang's avatar Wenyu Zhang
Browse files

Support bluetooth microphone

Add support for TYPE_BLUETOOTH_SCO in InputMediaDevice.

Change-Id: Id35941f4294b1115dd29ae4175b160a3bd78e910
Bug: b/355684672, b/357123258
Test: atest InputMediaDevice
Flag: com.android.media.flags.enable_audio_input_device_routing_and_volume_control
parent 276222e0
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1651,6 +1651,9 @@
    <!-- Name of the usb audio device mic. [CHAR LIMIT=50] -->
    <string name="media_transfer_usb_device_mic_name">USB microphone</string>

    <!-- Name of the bluetooth audio device mic. [CHAR LIMIT=50] -->
    <string name="media_transfer_bt_device_mic_name">BT microphone</string>

    <!-- Label for Wifi hotspot switch on. Toggles hotspot on [CHAR LIMIT=30] -->
    <string name="wifi_hotspot_switch_on_text">On</string>
    <!-- Label for Wifi hotspot switch off. Toggles hotspot off [CHAR LIMIT=30] -->
+5 −1
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
package com.android.settingslib.media;

import static android.media.AudioDeviceInfo.TYPE_BLUETOOTH_SCO;
import static android.media.AudioDeviceInfo.TYPE_BUILTIN_MIC;
import static android.media.AudioDeviceInfo.TYPE_USB_ACCESSORY;
import static android.media.AudioDeviceInfo.TYPE_USB_DEVICE;
@@ -90,7 +91,8 @@ public class InputMediaDevice extends MediaDevice {
                            TYPE_WIRED_HEADSET,
                            TYPE_USB_DEVICE,
                            TYPE_USB_HEADSET,
                            TYPE_USB_ACCESSORY ->
                            TYPE_USB_ACCESSORY,
                            TYPE_BLUETOOTH_SCO ->
                    true;
            default -> false;
        };
@@ -103,6 +105,8 @@ public class InputMediaDevice extends MediaDevice {
                    R.string.media_transfer_wired_device_mic_name);
            case TYPE_USB_DEVICE, TYPE_USB_HEADSET, TYPE_USB_ACCESSORY -> mContext.getString(
                    R.string.media_transfer_usb_device_mic_name);
            case TYPE_BLUETOOTH_SCO -> mContext.getString(
                    R.string.media_transfer_bt_device_mic_name);
            default -> mContext.getString(R.string.media_transfer_this_device_name_desktop);
        };
        return name.toString();
+16 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ public class InputMediaDeviceTest {
    private final int BUILTIN_MIC_ID = 1;
    private final int WIRED_HEADSET_ID = 2;
    private final int USB_HEADSET_ID = 3;
    private final int BT_HEADSET_ID = 4;
    private final int MAX_VOLUME = 1;
    private final int CURRENT_VOLUME = 0;
    private final boolean IS_VOLUME_FIXED = true;
@@ -108,4 +109,19 @@ public class InputMediaDeviceTest {
        assertThat(usbMediaDevice.getName())
                .isEqualTo(mContext.getString(R.string.media_transfer_usb_device_mic_name));
    }

    @Test
    public void getName_returnCorrectName_btHeadset() {
        InputMediaDevice btMediaDevice =
                InputMediaDevice.create(
                        mContext,
                        String.valueOf(BT_HEADSET_ID),
                        AudioDeviceInfo.TYPE_BLUETOOTH_SCO,
                        MAX_VOLUME,
                        CURRENT_VOLUME,
                        IS_VOLUME_FIXED);
        assertThat(btMediaDevice).isNotNull();
        assertThat(btMediaDevice.getName())
                .isEqualTo(mContext.getString(R.string.media_transfer_bt_device_mic_name));
    }
}