diff options
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java | 19 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java | 17 |
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)); } |