Loading media/java/android/media/flags/media_better_together.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,16 @@ flag { } } flag { name: "disable_transfer_when_apps_do_not_support" namespace: "media_better_together" description: "Fixes a bug causing output switcher routes to be incorrectly enabled for media transfer." bug: "373404114" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "enable_audio_input_device_routing_and_volume_control" namespace: "media_better_together" Loading packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +22 −2 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.settingslib.media; import static android.media.MediaRoute2Info.TYPE_AUX_LINE; import static android.media.MediaRoute2Info.TYPE_LINE_ANALOG; import static android.media.MediaRoute2Info.TYPE_LINE_DIGITAL; import static android.media.MediaRoute2Info.TYPE_BLE_HEADSET; import static android.media.MediaRoute2Info.TYPE_BLUETOOTH_A2DP; import static android.media.MediaRoute2Info.TYPE_BUILTIN_SPEAKER; Loading @@ -27,6 +25,8 @@ import static android.media.MediaRoute2Info.TYPE_HDMI; import static android.media.MediaRoute2Info.TYPE_HDMI_ARC; import static android.media.MediaRoute2Info.TYPE_HDMI_EARC; import static android.media.MediaRoute2Info.TYPE_HEARING_AID; import static android.media.MediaRoute2Info.TYPE_LINE_ANALOG; import static android.media.MediaRoute2Info.TYPE_LINE_DIGITAL; 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; Loading Loading @@ -253,6 +253,10 @@ public abstract class InfoMediaManager { @NonNull protected abstract List<MediaRoute2Info> getSelectableRoutes(@NonNull RoutingSessionInfo info); @NonNull protected abstract List<MediaRoute2Info> getTransferableRoutes( @NonNull RoutingSessionInfo info); @NonNull protected abstract List<MediaRoute2Info> getDeselectableRoutes( @NonNull RoutingSessionInfo info); Loading Loading @@ -518,6 +522,22 @@ public abstract class InfoMediaManager { return deviceList; } /** * Returns the list of {@link MediaDevice media devices} that can be transferred to with the * current {@link RoutingSessionInfo routing session} by the media route provider. */ @NonNull List<MediaDevice> getTransferableMediaDevices() { final RoutingSessionInfo info = getActiveRoutingSession(); final List<MediaDevice> deviceList = new ArrayList<>(); for (MediaRoute2Info route : getTransferableRoutes(info)) { deviceList.add( new InfoMediaDevice(mContext, route, mPreferenceItemMap.get(route.getId()))); } return deviceList; } /** * Returns the list of {@link MediaDevice media devices} that can be deselected from the current * {@link RoutingSessionInfo routing session}. Loading packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +11 −0 Original line number Diff line number Diff line Loading @@ -351,6 +351,17 @@ public class LocalMediaManager implements BluetoothCallback { return mInfoMediaManager.getSelectableMediaDevices(); } /** * Gets the MediaDevice list that can be transferred to with the current media session by the * media route provider. * * @return list of MediaDevice */ @NonNull public List<MediaDevice> getTransferableMediaDevices() { return mInfoMediaManager.getTransferableMediaDevices(); } /** * Get the MediaDevice list that can be removed from current media session. * Loading packages/SettingsLib/src/com/android/settingslib/media/ManagerInfoMediaManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,12 @@ public class ManagerInfoMediaManager extends InfoMediaManager { return mRouterManager.getSelectableRoutes(info); } @Override @NonNull protected List<MediaRoute2Info> getTransferableRoutes(@NonNull RoutingSessionInfo info) { return mRouterManager.getTransferableRoutes(info); } @Override @NonNull protected List<MediaRoute2Info> getDeselectableRoutes(@NonNull RoutingSessionInfo info) { Loading packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java +8 −3 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.settingslib.media; import static android.media.MediaRoute2Info.TYPE_AUX_LINE; import static android.media.MediaRoute2Info.TYPE_BLE_HEADSET; import static android.media.MediaRoute2Info.TYPE_BLUETOOTH_A2DP; import static android.media.MediaRoute2Info.TYPE_BUILTIN_SPEAKER; Loading @@ -24,6 +25,8 @@ import static android.media.MediaRoute2Info.TYPE_HDMI; import static android.media.MediaRoute2Info.TYPE_HDMI_ARC; import static android.media.MediaRoute2Info.TYPE_HDMI_EARC; import static android.media.MediaRoute2Info.TYPE_HEARING_AID; import static android.media.MediaRoute2Info.TYPE_LINE_ANALOG; import static android.media.MediaRoute2Info.TYPE_LINE_DIGITAL; import static android.media.MediaRoute2Info.TYPE_REMOTE_AUDIO_VIDEO_RECEIVER; import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER; import static android.media.MediaRoute2Info.TYPE_REMOTE_TV; Loading @@ -33,9 +36,6 @@ 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; import static android.media.MediaRoute2Info.TYPE_LINE_DIGITAL; import static android.media.MediaRoute2Info.TYPE_LINE_ANALOG; import static android.media.MediaRoute2Info.TYPE_AUX_LINE; import static android.media.RouteListingPreference.Item.FLAG_ONGOING_SESSION; import static android.media.RouteListingPreference.Item.FLAG_ONGOING_SESSION_MANAGED; import static android.media.RouteListingPreference.Item.FLAG_SUGGESTED; Loading Loading @@ -244,6 +244,11 @@ public abstract class MediaDevice implements Comparable<MediaDevice> { */ public abstract String getId(); /** Returns {@code true} if the device has a non-null {@link RouteListingPreference.Item}. */ public boolean hasRouteListingPreferenceItem() { return mItem != null; } /** * Get selection behavior of device * Loading Loading
media/java/android/media/flags/media_better_together.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,16 @@ flag { } } flag { name: "disable_transfer_when_apps_do_not_support" namespace: "media_better_together" description: "Fixes a bug causing output switcher routes to be incorrectly enabled for media transfer." bug: "373404114" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "enable_audio_input_device_routing_and_volume_control" namespace: "media_better_together" Loading
packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +22 −2 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.settingslib.media; import static android.media.MediaRoute2Info.TYPE_AUX_LINE; import static android.media.MediaRoute2Info.TYPE_LINE_ANALOG; import static android.media.MediaRoute2Info.TYPE_LINE_DIGITAL; import static android.media.MediaRoute2Info.TYPE_BLE_HEADSET; import static android.media.MediaRoute2Info.TYPE_BLUETOOTH_A2DP; import static android.media.MediaRoute2Info.TYPE_BUILTIN_SPEAKER; Loading @@ -27,6 +25,8 @@ import static android.media.MediaRoute2Info.TYPE_HDMI; import static android.media.MediaRoute2Info.TYPE_HDMI_ARC; import static android.media.MediaRoute2Info.TYPE_HDMI_EARC; import static android.media.MediaRoute2Info.TYPE_HEARING_AID; import static android.media.MediaRoute2Info.TYPE_LINE_ANALOG; import static android.media.MediaRoute2Info.TYPE_LINE_DIGITAL; 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; Loading Loading @@ -253,6 +253,10 @@ public abstract class InfoMediaManager { @NonNull protected abstract List<MediaRoute2Info> getSelectableRoutes(@NonNull RoutingSessionInfo info); @NonNull protected abstract List<MediaRoute2Info> getTransferableRoutes( @NonNull RoutingSessionInfo info); @NonNull protected abstract List<MediaRoute2Info> getDeselectableRoutes( @NonNull RoutingSessionInfo info); Loading Loading @@ -518,6 +522,22 @@ public abstract class InfoMediaManager { return deviceList; } /** * Returns the list of {@link MediaDevice media devices} that can be transferred to with the * current {@link RoutingSessionInfo routing session} by the media route provider. */ @NonNull List<MediaDevice> getTransferableMediaDevices() { final RoutingSessionInfo info = getActiveRoutingSession(); final List<MediaDevice> deviceList = new ArrayList<>(); for (MediaRoute2Info route : getTransferableRoutes(info)) { deviceList.add( new InfoMediaDevice(mContext, route, mPreferenceItemMap.get(route.getId()))); } return deviceList; } /** * Returns the list of {@link MediaDevice media devices} that can be deselected from the current * {@link RoutingSessionInfo routing session}. Loading
packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +11 −0 Original line number Diff line number Diff line Loading @@ -351,6 +351,17 @@ public class LocalMediaManager implements BluetoothCallback { return mInfoMediaManager.getSelectableMediaDevices(); } /** * Gets the MediaDevice list that can be transferred to with the current media session by the * media route provider. * * @return list of MediaDevice */ @NonNull public List<MediaDevice> getTransferableMediaDevices() { return mInfoMediaManager.getTransferableMediaDevices(); } /** * Get the MediaDevice list that can be removed from current media session. * Loading
packages/SettingsLib/src/com/android/settingslib/media/ManagerInfoMediaManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,12 @@ public class ManagerInfoMediaManager extends InfoMediaManager { return mRouterManager.getSelectableRoutes(info); } @Override @NonNull protected List<MediaRoute2Info> getTransferableRoutes(@NonNull RoutingSessionInfo info) { return mRouterManager.getTransferableRoutes(info); } @Override @NonNull protected List<MediaRoute2Info> getDeselectableRoutes(@NonNull RoutingSessionInfo info) { Loading
packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java +8 −3 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.settingslib.media; import static android.media.MediaRoute2Info.TYPE_AUX_LINE; import static android.media.MediaRoute2Info.TYPE_BLE_HEADSET; import static android.media.MediaRoute2Info.TYPE_BLUETOOTH_A2DP; import static android.media.MediaRoute2Info.TYPE_BUILTIN_SPEAKER; Loading @@ -24,6 +25,8 @@ import static android.media.MediaRoute2Info.TYPE_HDMI; import static android.media.MediaRoute2Info.TYPE_HDMI_ARC; import static android.media.MediaRoute2Info.TYPE_HDMI_EARC; import static android.media.MediaRoute2Info.TYPE_HEARING_AID; import static android.media.MediaRoute2Info.TYPE_LINE_ANALOG; import static android.media.MediaRoute2Info.TYPE_LINE_DIGITAL; import static android.media.MediaRoute2Info.TYPE_REMOTE_AUDIO_VIDEO_RECEIVER; import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER; import static android.media.MediaRoute2Info.TYPE_REMOTE_TV; Loading @@ -33,9 +36,6 @@ 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; import static android.media.MediaRoute2Info.TYPE_LINE_DIGITAL; import static android.media.MediaRoute2Info.TYPE_LINE_ANALOG; import static android.media.MediaRoute2Info.TYPE_AUX_LINE; import static android.media.RouteListingPreference.Item.FLAG_ONGOING_SESSION; import static android.media.RouteListingPreference.Item.FLAG_ONGOING_SESSION_MANAGED; import static android.media.RouteListingPreference.Item.FLAG_SUGGESTED; Loading Loading @@ -244,6 +244,11 @@ public abstract class MediaDevice implements Comparable<MediaDevice> { */ public abstract String getId(); /** Returns {@code true} if the device has a non-null {@link RouteListingPreference.Item}. */ public boolean hasRouteListingPreferenceItem() { return mItem != null; } /** * Get selection behavior of device * Loading