From 8242d4354d2d0bd28d71a8e4b1edae7988242d33 Mon Sep 17 00:00:00 2001 From: Santiago Seifert Date: Thu, 2 Feb 2023 19:52:29 +0000 Subject: Make device types part of the public API Also add a new device: Remote audio video receiver. Allows MediaRouter clients to know the type of a system device, and Route providers to control the provide devices' type. Bug: 266923039 Test: atest MediaRouter2HostTest Change-Id: I99b20827e60789412b8da844297b745f21407502 --- .../src/com/android/settingslib/media/InfoMediaDevice.java | 2 ++ .../src/com/android/settingslib/media/InfoMediaManager.java | 6 ++++++ .../SettingsLib/src/com/android/settingslib/media/MediaDevice.java | 4 ++++ .../src/com/android/settingslib/media/PhoneMediaDevice.java | 6 ++++++ 4 files changed, 18 insertions(+) (limited to 'packages/SettingsLib/src') diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java index 6fb5555bb50e..c036fdb7982f 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java @@ -73,6 +73,8 @@ public class InfoMediaDevice extends MediaDevice { } @VisibleForTesting + // MediaRoute2Info.getType was made public on API 34, but exists since API 30. + @SuppressWarnings("NewApi") int getDrawableResId() { int resId; switch (mRouteInfo.getType()) { diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java index d222b981dc91..beb580ca628d 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java @@ -443,6 +443,8 @@ public class InfoMediaManager extends MediaManager { dispatchDeviceListAdded(); } + // MediaRoute2Info.getType was made public on API 34, but exists since API 30. + @SuppressWarnings("NewApi") private void buildAllRoutes() { for (MediaRoute2Info route : mRouterManager.getAllRoutes()) { if (DEBUG) { @@ -462,6 +464,8 @@ public class InfoMediaManager extends MediaManager { return infos; } + // MediaRoute2Info.getType was made public on API 34, but exists since API 30. + @SuppressWarnings("NewApi") private synchronized void buildAvailableRoutes() { for (MediaRoute2Info route : getAvailableRoutes(mPackageName)) { if (DEBUG) { @@ -512,6 +516,8 @@ public class InfoMediaManager extends MediaManager { } } + // MediaRoute2Info.getType was made public on API 34, but exists since API 30. + @SuppressWarnings("NewApi") @VisibleForTesting void addMediaDevice(MediaRoute2Info route) { //TODO(b/258141461): Attach flag and disable reason in MediaDevice diff --git a/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java b/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java index 50f371351f61..831393b3d059 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java @@ -114,6 +114,8 @@ public abstract class MediaDevice implements Comparable { setType(info); } + // MediaRoute2Info.getType was made public on API 34, but exists since API 30. + @SuppressWarnings("NewApi") private void setType(MediaRoute2Info info) { if (info == null) { mType = MediaDeviceType.TYPE_BLUETOOTH_DEVICE; @@ -335,6 +337,8 @@ public abstract class MediaDevice implements Comparable { * * @return true if the RouteInfo equals TYPE_BLE_HEADSET. */ + // MediaRoute2Info.getType was made public on API 34, but exists since API 30. + @SuppressWarnings("NewApi") public boolean isBLEDevice() { return mRouteInfo.getType() == TYPE_BLE_HEADSET; } diff --git a/packages/SettingsLib/src/com/android/settingslib/media/PhoneMediaDevice.java b/packages/SettingsLib/src/com/android/settingslib/media/PhoneMediaDevice.java index de16d4add0ea..1c82be9c801f 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/PhoneMediaDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/PhoneMediaDevice.java @@ -56,6 +56,8 @@ public class PhoneMediaDevice extends MediaDevice { initDeviceRecord(); } + // MediaRoute2Info.getType was made public on API 34, but exists since API 30. + @SuppressWarnings("NewApi") @Override public String getName() { CharSequence name; @@ -94,11 +96,15 @@ public class PhoneMediaDevice extends MediaDevice { return mContext.getDrawable(getDrawableResId()); } + // MediaRoute2Info.getType was made public on API 34, but exists since API 30. + @SuppressWarnings("NewApi") @VisibleForTesting int getDrawableResId() { return mDeviceIconUtil.getIconResIdFromMediaRouteType(mRouteInfo.getType()); } + // MediaRoute2Info.getType was made public on API 34, but exists since API 30. + @SuppressWarnings("NewApi") @Override public String getId() { String id; -- cgit v1.2.3-59-g8ed1b