From d8f63854ba351a77384e013337ba9297829ccf9d Mon Sep 17 00:00:00 2001 From: Santiago Seifert Date: Wed, 21 Jun 2023 13:47:33 +0000 Subject: [PATCH] Add MediaRoute2Info#TYPE_REMOTE_SMARTPHONE Bug: 287106712 Test: atest InfoMediaDeviceTest Change-Id: I96cb1e662ac56ba0a46eb3b47a2c2cd687e5f0f3 --- core/api/current.txt | 1 + media/java/android/media/MediaRoute2Info.java | 35 +++++++------------ .../settingslib/media/InfoMediaDevice.java | 4 +++ .../settingslib/media/InfoMediaManager.java | 5 +-- .../media/InfoMediaDeviceTest.java | 5 +++ 5 files changed, 26 insertions(+), 24 deletions(-) diff --git a/core/api/current.txt b/core/api/current.txt index d0e32a7db1f05..73bf90371051d 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -24384,6 +24384,7 @@ package android.media { field public static final int TYPE_REMOTE_CAR = 1008; // 0x3f0 field public static final int TYPE_REMOTE_COMPUTER = 1006; // 0x3ee field public static final int TYPE_REMOTE_GAME_CONSOLE = 1007; // 0x3ef + field public static final int TYPE_REMOTE_SMARTPHONE = 1010; // 0x3f2 field public static final int TYPE_REMOTE_SMARTWATCH = 1009; // 0x3f1 field public static final int TYPE_REMOTE_SPEAKER = 1002; // 0x3ea field public static final int TYPE_REMOTE_TABLET = 1004; // 0x3ec diff --git a/media/java/android/media/MediaRoute2Info.java b/media/java/android/media/MediaRoute2Info.java index 2075b6ca40238..3def1d0446c79 100644 --- a/media/java/android/media/MediaRoute2Info.java +++ b/media/java/android/media/MediaRoute2Info.java @@ -156,6 +156,7 @@ public final class MediaRoute2Info implements Parcelable { TYPE_REMOTE_GAME_CONSOLE, TYPE_REMOTE_CAR, TYPE_REMOTE_SMARTWATCH, + TYPE_REMOTE_SMARTPHONE, TYPE_GROUP }) @Retention(RetentionPolicy.SOURCE) @@ -336,6 +337,16 @@ public final class MediaRoute2Info implements Parcelable { */ public static final int TYPE_REMOTE_SMARTWATCH = 1009; + /** + * Indicates the route is a remote smartphone. + * + *

A remote device uses a routing protocol managed by the application, as opposed to the + * routing being done by the system. + * + * @see #getType + */ + public static final int TYPE_REMOTE_SMARTPHONE = 1010; + /** * Indicates the route is a group of devices. * @@ -542,28 +553,6 @@ public final class MediaRoute2Info implements Parcelable { /** * Returns the type of this route. - * - * @see #TYPE_UNKNOWN - * @see #TYPE_BUILTIN_SPEAKER - * @see #TYPE_WIRED_HEADSET - * @see #TYPE_WIRED_HEADPHONES - * @see #TYPE_BLUETOOTH_A2DP - * @see #TYPE_HDMI - * @see #TYPE_DOCK - * @see #TYPE_USB_DEVICE - * @see #TYPE_USB_ACCESSORY - * @see #TYPE_USB_HEADSET - * @see #TYPE_HEARING_AID - * @see #TYPE_REMOTE_TV - * @see #TYPE_REMOTE_SPEAKER - * @see #TYPE_REMOTE_AUDIO_VIDEO_RECEIVER - * @see #TYPE_REMOTE_TABLET - * @see #TYPE_REMOTE_TABLET_DOCKED - * @see #TYPE_REMOTE_COMPUTER - * @see #TYPE_REMOTE_GAME_CONSOLE - * @see #TYPE_REMOTE_CAR - * @see #TYPE_REMOTE_SMARTWATCH - * @see #TYPE_GROUP */ @Type public int getType() { @@ -946,6 +935,8 @@ public final class MediaRoute2Info implements Parcelable { return "REMOTE_CAR"; case TYPE_REMOTE_SMARTWATCH: return "REMOTE_SMARTWATCH"; + case TYPE_REMOTE_SMARTPHONE: + return "REMOTE_SMARTPHONE"; case TYPE_GROUP: return "GROUP"; case TYPE_UNKNOWN: diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java index 632120e77c87a..b10d7946f57f6 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java @@ -19,6 +19,7 @@ import static android.media.MediaRoute2Info.TYPE_GROUP; import static android.media.MediaRoute2Info.TYPE_REMOTE_CAR; import static android.media.MediaRoute2Info.TYPE_REMOTE_COMPUTER; import static android.media.MediaRoute2Info.TYPE_REMOTE_GAME_CONSOLE; +import static android.media.MediaRoute2Info.TYPE_REMOTE_SMARTPHONE; import static android.media.MediaRoute2Info.TYPE_REMOTE_SMARTWATCH; import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER; import static android.media.MediaRoute2Info.TYPE_REMOTE_TABLET; @@ -103,6 +104,9 @@ public class InfoMediaDevice extends MediaDevice { case TYPE_REMOTE_SMARTWATCH: resId = R.drawable.ic_media_smartwatch; break; + case TYPE_REMOTE_SMARTPHONE: + resId = R.drawable.ic_smartphone; + break; case TYPE_REMOTE_SPEAKER: default: resId = R.drawable.ic_media_speaker_device; diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java index 0bd9384c3ef40..a1beed8569d98 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java @@ -26,6 +26,7 @@ import static android.media.MediaRoute2Info.TYPE_REMOTE_AUDIO_VIDEO_RECEIVER; import static android.media.MediaRoute2Info.TYPE_REMOTE_CAR; import static android.media.MediaRoute2Info.TYPE_REMOTE_COMPUTER; import static android.media.MediaRoute2Info.TYPE_REMOTE_GAME_CONSOLE; +import static android.media.MediaRoute2Info.TYPE_REMOTE_SMARTPHONE; import static android.media.MediaRoute2Info.TYPE_REMOTE_SMARTWATCH; import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER; import static android.media.MediaRoute2Info.TYPE_REMOTE_TABLET; @@ -566,8 +567,8 @@ public abstract class InfoMediaManager extends MediaManager { case TYPE_REMOTE_GAME_CONSOLE: case TYPE_REMOTE_CAR: case TYPE_REMOTE_SMARTWATCH: - mediaDevice = - createInfoMediaDevice(route, mPreferenceItemMap.get(route.getId())); + case TYPE_REMOTE_SMARTPHONE: + mediaDevice = createInfoMediaDevice(route, mPreferenceItemMap.get(route.getId())); break; case TYPE_BUILTIN_SPEAKER: case TYPE_USB_DEVICE: diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java index 67a045e9a449b..19a3db25996e6 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java @@ -20,6 +20,7 @@ import static android.media.MediaRoute2Info.TYPE_GROUP; import static android.media.MediaRoute2Info.TYPE_REMOTE_CAR; import static android.media.MediaRoute2Info.TYPE_REMOTE_COMPUTER; import static android.media.MediaRoute2Info.TYPE_REMOTE_GAME_CONSOLE; +import static android.media.MediaRoute2Info.TYPE_REMOTE_SMARTPHONE; import static android.media.MediaRoute2Info.TYPE_REMOTE_SMARTWATCH; import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER; import static android.media.MediaRoute2Info.TYPE_REMOTE_TABLET; @@ -143,5 +144,9 @@ public class InfoMediaDeviceTest { assertThat(mInfoMediaDevice.getDrawableResIdByType()).isEqualTo( R.drawable.ic_media_smartwatch); + + when(mRouteInfo.getType()).thenReturn(TYPE_REMOTE_SMARTPHONE); + + assertThat(mInfoMediaDevice.getDrawableResIdByType()).isEqualTo(R.drawable.ic_smartphone); } }