diff options
| author | 2023-03-30 14:05:19 +0000 | |
|---|---|---|
| committer | 2023-04-03 13:24:22 +0000 | |
| commit | c9425f5ed13602af6cb65dd611b01ad40a8a552a (patch) | |
| tree | fc8b1af5693d4674b122167ac173318f3b10ac0a | |
| parent | 5bbe99a299d9742a20884fcfd4cdad9741529c65 (diff) | |
[Output Switcher] Fix layout for ongoing session
If a device is not a host and has ongoing session, we should not show
the volume bar.
Test: atest MediaOutputAdapterTest MediaOutputControllerTest MediaOutputBaseDialogTest MediaOutputDialogTest
Bug: 276313834
Change-Id: I05cdc5c80d59978413259ef8ebdf5a1cda479f3a
3 files changed, 16 insertions, 8 deletions
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 9928c4f79a96..f50a7a854169 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java @@ -205,7 +205,8 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { && mController.isSubStatusSupported() && mController.isAdvancedLayoutSupported() && device.hasSubtext()) { boolean isActiveWithOngoingSession = - (device.hasOngoingSession() && currentlyConnected); + (device.hasOngoingSession() && (currentlyConnected || isDeviceIncluded( + mController.getSelectedMediaDevice(), device))); boolean isHost = device.isHostForOngoingSession() && isActiveWithOngoingSession; if (isHost) { @@ -224,10 +225,17 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { if (isActiveWithOngoingSession) { //Selected device which has ongoing session, disable seekbar since we //only allow volume control on Host - initSeekbar(device, isCurrentSeekbarInvisible); mCurrentActivePosition = position; } - setUpDeviceIcon(device); + boolean showSeekbar = + (!device.hasOngoingSession() && currentlyConnected); + if (showSeekbar) { + updateTitleIcon(R.drawable.media_output_icon_volume, + mController.getColorItemContent()); + initSeekbar(device, isCurrentSeekbarInvisible); + } else { + setUpDeviceIcon(device); + } mSubTitleText.setText(device.getSubtextString()); Drawable deviceStatusIcon = device.hasOngoingSession() ? mContext.getDrawable( @@ -241,8 +249,8 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { updateTwoLineLayoutContentAlpha( updateClickActionBasedOnSelectionBehavior(device) ? DEVICE_CONNECTED_ALPHA : DEVICE_DISCONNECTED_ALPHA); - setTwoLineLayout(device, isActiveWithOngoingSession /* bFocused */, - isActiveWithOngoingSession /* showSeekBar */, + setTwoLineLayout(device, currentlyConnected /* bFocused */, + showSeekbar /* showSeekBar */, false /* showProgressBar */, true /* showSubtitle */, deviceStatusIcon != null /* showStatus */, isActiveWithOngoingSession /* isFakeActive */); diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java index 731bb2f4db7c..73ab52722a79 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java @@ -270,10 +270,10 @@ public abstract class MediaOutputBaseAdapter extends final Drawable backgroundDrawable; if (mController.isAdvancedLayoutSupported() && mController.isSubStatusSupported()) { backgroundDrawable = mContext.getDrawable( - showSeekBar ? R.drawable.media_output_item_background_active + showSeekBar || isFakeActive ? R.drawable.media_output_item_background_active : R.drawable.media_output_item_background).mutate(); backgroundDrawable.setTint( - showSeekBar ? mController.getColorConnectedItemBackground() + showSeekBar || isFakeActive ? mController.getColorConnectedItemBackground() : mController.getColorItemBackground()); mIconAreaLayout.setBackgroundTintList( ColorStateList.valueOf(showProgressBar || isFakeActive diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputAdapterTest.java b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputAdapterTest.java index 17d8799b4f84..7f7952feb10b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputAdapterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputAdapterTest.java @@ -532,7 +532,7 @@ public class MediaOutputAdapterTest extends SysuiTestCase { mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.GONE); - assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); + assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mStatusIcon.getVisibility()).isEqualTo(View.VISIBLE); |