From 1ab6dd7a7111e1ab3e626bd6049a2cf72d2dd7f2 Mon Sep 17 00:00:00 2001 From: hughchen Date: Thu, 6 Feb 2020 14:06:06 +0800 Subject: [PATCH] Show volume bar if MediaDevice is active device This CL before, the volume bar will shown on the top device. In this CL, the volume bar will shown on the active device. Bug: 148765806 Test: manually Change-Id: Id261201a4227151667c67ab91864cc349941372e --- src/com/android/settings/media/MediaOutputSlice.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/media/MediaOutputSlice.java b/src/com/android/settings/media/MediaOutputSlice.java index 36dba2253ab..8e6da80aae6 100644 --- a/src/com/android/settings/media/MediaOutputSlice.java +++ b/src/com/android/settings/media/MediaOutputSlice.java @@ -89,20 +89,28 @@ public class MediaOutputSlice implements CustomSliceable { final MediaDevice topDevice = isTouched ? worker.getTopDevice() : connectedDevice; if (topDevice != null) { - listBuilder.addInputRange(getActiveDeviceHeaderRow(topDevice)); + addRow(topDevice, connectedDevice, listBuilder); worker.setTopDevice(topDevice); } for (MediaDevice device : devices) { if (topDevice == null || !TextUtils.equals(topDevice.getId(), device.getId())) { - listBuilder.addRow(getMediaDeviceRow(device)); + addRow(device, connectedDevice, listBuilder); } } return listBuilder.build(); } + private void addRow(MediaDevice device, MediaDevice connectedDevice, ListBuilder listBuilder) { + if (TextUtils.equals(device.getId(), connectedDevice.getId())) { + listBuilder.addInputRange(getActiveDeviceHeaderRow(device)); + } else { + listBuilder.addRow(getMediaDeviceRow(device)); + } + } + private ListBuilder.InputRangeBuilder getActiveDeviceHeaderRow(MediaDevice device) { final String title = device.getName(); final IconCompat icon = getDeviceIconCompat(device);