diff options
author | 2024-10-24 00:06:18 +0000 | |
---|---|---|
committer | 2024-10-24 00:06:18 +0000 | |
commit | 95cff9b40e17bc21a202be71d0cfa58515996bbd (patch) | |
tree | 916e637a9c502d704b79ed021eb5a3d67b29ce9c | |
parent | ca0b81ef364e14ee21847b3393c088fecc32984a (diff) | |
parent | 134f5593cfd507e73d733c2147d324a73387be50 (diff) |
Merge "audio: On desktop, show output device USB name" into main
-rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/media/PhoneMediaDevice.java | 4 | ||||
-rw-r--r-- | packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/PhoneMediaDeviceTest.java | 63 |
2 files changed, 60 insertions, 7 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/PhoneMediaDevice.java b/packages/SettingsLib/src/com/android/settingslib/media/PhoneMediaDevice.java index b94e9069da6b..481306a18f0e 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/PhoneMediaDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/PhoneMediaDevice.java @@ -41,9 +41,9 @@ import android.media.RouteListingPreference; import android.os.SystemProperties; import android.util.Log; -import androidx.annotation.VisibleForTesting; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import com.android.settingslib.R; import com.android.settingslib.media.flags.Flags; @@ -98,7 +98,7 @@ public class PhoneMediaDevice extends MediaDevice { case TYPE_USB_ACCESSORY: name = inputRoutingEnabledAndIsDesktop(context) - ? context.getString(R.string.media_transfer_usb_audio_name) + ? routeInfo.getName() : context.getString(R.string.media_transfer_wired_headphone_name); break; case TYPE_DOCK: diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/PhoneMediaDeviceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/PhoneMediaDeviceTest.java index 1739c0e5e2bf..9f7f0c9cb38d 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/PhoneMediaDeviceTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/PhoneMediaDeviceTest.java @@ -17,7 +17,9 @@ package com.android.settingslib.media; import static android.media.MediaRoute2Info.TYPE_BUILTIN_SPEAKER; +import static android.media.MediaRoute2Info.TYPE_USB_ACCESSORY; import static android.media.MediaRoute2Info.TYPE_USB_DEVICE; +import static android.media.MediaRoute2Info.TYPE_USB_HEADSET; import static android.media.MediaRoute2Info.TYPE_WIRED_HEADPHONES; import static android.media.MediaRoute2Info.TYPE_WIRED_HEADSET; @@ -120,28 +122,79 @@ public class PhoneMediaDeviceTest { @EnableFlags(Flags.FLAG_ENABLE_AUDIO_INPUT_DEVICE_ROUTING_AND_VOLUME_CONTROL) @Test - public void getName_returnCorrectName_desktop() { + public void getName_returnCorrectName_desktop_wiredHeadphones() { ShadowSystemProperties.override("ro.build.characteristics", "desktop"); when(mInfo.getType()).thenReturn(TYPE_WIRED_HEADPHONES); + // Even if the MediaRoute2Info reports a name, the default string should still be displayed, + // since the MediaRoute2Info name is only used for USB devices. + when(mInfo.getName()).thenReturn("WIRED_HEADPHONES"); assertThat(mPhoneMediaDevice.getName()) .isEqualTo(mContext.getString(R.string.media_transfer_headphone_name)); + } + + @EnableFlags(Flags.FLAG_ENABLE_AUDIO_INPUT_DEVICE_ROUTING_AND_VOLUME_CONTROL) + @Test + public void getName_returnCorrectName_desktop_wiredHeadset() { + ShadowSystemProperties.override("ro.build.characteristics", "desktop"); when(mInfo.getType()).thenReturn(TYPE_WIRED_HEADSET); + // Even if the MediaRoute2Info reports a name, the default string should still be displayed, + // since the MediaRoute2Info name is only used for USB devices. + when(mInfo.getName()).thenReturn("WIRED_HEADSET"); assertThat(mPhoneMediaDevice.getName()) .isEqualTo(mContext.getString(R.string.media_transfer_headphone_name)); + } + + @EnableFlags(Flags.FLAG_ENABLE_AUDIO_INPUT_DEVICE_ROUTING_AND_VOLUME_CONTROL) + @Test + public void getName_returnCorrectName_desktop_usbDevice() { + ShadowSystemProperties.override("ro.build.characteristics", "desktop"); when(mInfo.getType()).thenReturn(TYPE_USB_DEVICE); + final String mediaRoute2InfoName = "USB-Audio - My Device"; + when(mInfo.getName()).thenReturn(mediaRoute2InfoName); - assertThat(mPhoneMediaDevice.getName()) - .isEqualTo(mContext.getString(R.string.media_transfer_usb_audio_name)); + assertThat(mPhoneMediaDevice.getName()).isEqualTo(mediaRoute2InfoName); + } + + @EnableFlags(Flags.FLAG_ENABLE_AUDIO_INPUT_DEVICE_ROUTING_AND_VOLUME_CONTROL) + @Test + public void getName_returnCorrectName_desktop_usbHeadset() { + ShadowSystemProperties.override("ro.build.characteristics", "desktop"); + + when(mInfo.getType()).thenReturn(TYPE_USB_HEADSET); + final String mediaRoute2InfoName = "USB-Audio - My Headset"; + when(mInfo.getName()).thenReturn(mediaRoute2InfoName); + + assertThat(mPhoneMediaDevice.getName()).isEqualTo(mediaRoute2InfoName); + } + + @EnableFlags(Flags.FLAG_ENABLE_AUDIO_INPUT_DEVICE_ROUTING_AND_VOLUME_CONTROL) + @Test + public void getName_returnCorrectName_desktop_usbAccessory() { + ShadowSystemProperties.override("ro.build.characteristics", "desktop"); + + when(mInfo.getType()).thenReturn(TYPE_USB_ACCESSORY); + final String mediaRoute2InfoName = "USB-Audio - My Accessory"; + when(mInfo.getName()).thenReturn(mediaRoute2InfoName); + + assertThat(mPhoneMediaDevice.getName()).isEqualTo(mediaRoute2InfoName); + } + + @EnableFlags(Flags.FLAG_ENABLE_AUDIO_INPUT_DEVICE_ROUTING_AND_VOLUME_CONTROL) + @Test + public void getName_returnCorrectName_desktop_builtinSpeaker() { + ShadowSystemProperties.override("ro.build.characteristics", "desktop"); when(mInfo.getType()).thenReturn(TYPE_BUILTIN_SPEAKER); + // Even if the MediaRoute2Info reports a name, the default string should still be displayed, + // since the MediaRoute2Info name is only used for USB devices. + when(mInfo.getName()).thenReturn("Phone"); - assertThat(mPhoneMediaDevice.getName()) - .isEqualTo(getMediaTransferThisDeviceName(mContext)); + assertThat(mPhoneMediaDevice.getName()).isEqualTo(getMediaTransferThisDeviceName(mContext)); } @EnableFlags(Flags.FLAG_ENABLE_AUDIO_POLICIES_DEVICE_AND_BLUETOOTH_CONTROLLER) |