diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java index f039fc2d84ae1..d3ec7a07c9b8c 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +++ b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java @@ -302,11 +302,14 @@ public class MediaControlPanel { button.setContentDescription(mediaAction.getContentDescription()); Runnable action = mediaAction.getAction(); - button.setOnClickListener(v -> { - if (action != null) { + if (action == null) { + button.setEnabled(false); + } else { + button.setEnabled(true); + button.setOnClickListener(v -> { action.run(); - } - }); + }); + } boolean visibleInCompat = actionsWhenCollapsed.contains(i); setVisibleAndAlpha(collapsedSet, actionId, visibleInCompat); setVisibleAndAlpha(expandedSet, actionId, true /*visible */); diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt b/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt index 6c3ad23603b54..6ea36ab3af2fe 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt @@ -366,15 +366,20 @@ class MediaDataManager @Inject constructor( actionsToShowCollapsed.remove(index) continue } + val runnable = if (action.actionIntent != null) { + Runnable { + try { + action.actionIntent.send() + } catch (e: PendingIntent.CanceledException) { + Log.d(TAG, "Intent canceled", e) + } + } + } else { + null + } val mediaAction = MediaAction( action.getIcon().loadDrawable(packageContext), - Runnable { - try { - action.actionIntent.send() - } catch (e: PendingIntent.CanceledException) { - Log.d(TAG, "Intent canceled", e) - } - }, + runnable, action.title) actionIcons.add(mediaAction) }