summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java19
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java17
2 files changed, 33 insertions, 3 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
index 07bd9ec471cd..1b832bf24d24 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
@@ -106,6 +106,15 @@ public class InfoMediaManager extends MediaManager {
mMediaDevices.clear();
mRouterManager.registerCallback(mExecutor, mMediaRouterCallback);
mRouterManager.registerScanRequest();
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE
+ && !TextUtils.isEmpty(mPackageName)) {
+ RouteListingPreference routeListingPreference =
+ mRouterManager.getRouteListingPreference(mPackageName);
+ if (routeListingPreference != null) {
+ Api34Impl.onRouteListingPreferenceUpdated(null, routeListingPreference,
+ mPreferenceItemMap);
+ }
+ }
refreshDevices();
}
@@ -500,7 +509,8 @@ public class InfoMediaManager extends MediaManager {
infos.add(transferableRoute);
}
}
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE
+ && !TextUtils.isEmpty(mPackageName)) {
RouteListingPreference routeListingPreference =
mRouterManager.getRouteListingPreference(mPackageName);
if (routeListingPreference != null) {
@@ -633,6 +643,7 @@ public class InfoMediaManager extends MediaManager {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
Api34Impl.onRouteListingPreferenceUpdated(packageName, routeListingPreference,
mPreferenceItemMap);
+ refreshDevices();
}
}
}
@@ -695,6 +706,9 @@ public class InfoMediaManager extends MediaManager {
@DoNotInline
static boolean preferRouteListingOrdering(MediaRouter2Manager mediaRouter2Manager,
String packageName) {
+ if (TextUtils.isEmpty(packageName)) {
+ return false;
+ }
RouteListingPreference routeListingPreference =
mediaRouter2Manager.getRouteListingPreference(packageName);
return routeListingPreference != null
@@ -705,6 +719,9 @@ public class InfoMediaManager extends MediaManager {
@Nullable
static ComponentName getLinkedItemComponentName(
MediaRouter2Manager mediaRouter2Manager, String packageName) {
+ if (TextUtils.isEmpty(packageName)) {
+ return null;
+ }
RouteListingPreference routeListingPreference =
mediaRouter2Manager.getRouteListingPreference(packageName);
return routeListingPreference == null ? null
diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java
index d555d05437a1..99e57406c0cb 100644
--- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java
@@ -179,6 +179,7 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
if (mCurrentActivePosition == position) {
mCurrentActivePosition = -1;
}
+ mStatusIcon.setVisibility(View.GONE);
if (mController.isAnyDeviceTransferring()) {
if (device.getState() == MediaDeviceState.STATE_CONNECTING
@@ -233,7 +234,7 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
setUpDeviceIcon(device);
mSubTitleText.setText(device.getSubtextString());
Drawable deviceStatusIcon =
- isActiveWithOngoingSession ? mContext.getDrawable(
+ device.hasOngoingSession() ? mContext.getDrawable(
R.drawable.media_output_status_session)
: Api34Impl.getDeviceStatusIconBasedOnSelectionBehavior(
device,
@@ -331,7 +332,19 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
setSingleLineLayout(getItemTitle(device));
if (mController.isAdvancedLayoutSupported()
&& mController.isSubStatusSupported()) {
- updateClickActionBasedOnSelectionBehavior(device);
+ Drawable deviceStatusIcon =
+ device.hasOngoingSession() ? mContext.getDrawable(
+ R.drawable.media_output_status_session)
+ : Api34Impl.getDeviceStatusIconBasedOnSelectionBehavior(
+ device,
+ mContext);
+ if (deviceStatusIcon != null) {
+ updateDeviceStatusIcon(deviceStatusIcon);
+ mStatusIcon.setVisibility(View.VISIBLE);
+ }
+ updateTwoLineLayoutContentAlpha(
+ updateClickActionBasedOnSelectionBehavior(device)
+ ? DEVICE_CONNECTED_ALPHA : DEVICE_DISCONNECTED_ALPHA);
} else {
updateFullItemClickListener(v -> onItemClick(v, device));
}