diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 523b9c8c8f87e..aa577a6fa5b3a 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -2878,7 +2878,7 @@ %1$d devices selected - %1$s (disconnected) + (disconnected) Couldn\'t connect. Try again. 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 125b87b31e635..113ba59cd5143 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java @@ -16,14 +16,10 @@ package com.android.systemui.media.dialog; -import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE; - import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.drawable.Drawable; -import android.text.SpannableString; import android.text.TextUtils; -import android.text.style.ForegroundColorSpan; import android.util.Log; import android.view.View; import android.view.ViewGroup; @@ -99,23 +95,6 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { return mController.getMediaDevices().size(); } - @Override - CharSequence getItemTitle(MediaDevice device) { - if (device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE - && !device.isConnected()) { - final CharSequence deviceName = device.getName(); - // Append status to title only for the disconnected Bluetooth device. - final SpannableString spannableTitle = new SpannableString( - mContext.getString(R.string.media_output_dialog_disconnected, deviceName)); - spannableTitle.setSpan(new ForegroundColorSpan( - Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondary)), - deviceName.length(), - spannableTitle.length(), SPAN_EXCLUSIVE_EXCLUSIVE); - return spannableTitle; - } - return super.getItemTitle(device); - } - class MediaDeviceViewHolder extends MediaDeviceBaseViewHolder { MediaDeviceViewHolder(View view) { @@ -166,6 +145,14 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { false /* showProgressBar */, false /* showSubtitle */); initSeekbar(device); mCurrentActivePosition = position; + } else if ( + device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE + && !device.isConnected()) { + setTwoLineLayout(device, false /* bFocused */, + false /* showSeekBar */, false /* showProgressBar */, + true /* showSubtitle */); + mSubTitleText.setText(R.string.media_output_dialog_disconnected); + mContainerLayout.setOnClickListener(v -> onItemClick(v, device)); } else { setSingleLineLayout(getItemTitle(device), false /* bFocused */); mContainerLayout.setOnClickListener(v -> onItemClick(v, device)); @@ -175,7 +162,6 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { @Override void onBind(int customizedItem, boolean topMargin, boolean bottomMargin) { - super.onBind(customizedItem, topMargin, bottomMargin); if (customizedItem == CUSTOMIZED_ITEM_PAIR_NEW) { mCheckBox.setVisibility(View.GONE); mAddIcon.setVisibility(View.GONE); 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 1ffc2c4c35bac..868193b447040 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java @@ -153,9 +153,7 @@ public abstract class MediaOutputBaseAdapter extends }); } - void onBind(int customizedItem, boolean topMargin, boolean bottomMargin) { - // TODO (b/201718621): clean up method after adjustment - } + abstract void onBind(int customizedItem, boolean topMargin, boolean bottomMargin); void setSingleLineLayout(CharSequence title, boolean bFocused) { mTwoLineLayout.setVisibility(View.GONE); diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputGroupAdapter.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputGroupAdapter.java index 11d76dba14238..a201c071bbbee 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputGroupAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputGroupAdapter.java @@ -126,7 +126,6 @@ public class MediaOutputGroupAdapter extends MediaOutputBaseAdapter { @Override void onBind(int customizedItem, boolean topMargin, boolean bottomMargin) { - super.onBind(customizedItem, topMargin, bottomMargin); if (customizedItem == CUSTOMIZED_ITEM_GROUP) { setTwoLineLayout(mContext.getText(R.string.media_output_dialog_group), true /* bFocused */, true /* showSeekBar */, false /* showProgressBar */, 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 750600ad13878..52173c13ca6ee 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 @@ -212,12 +212,14 @@ public class MediaOutputAdapterTest extends SysuiTestCase { mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); assertThat(mViewHolder.mAddIcon.getVisibility()).isEqualTo(View.GONE); - assertThat(mViewHolder.mTwoLineLayout.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mBottomDivider.getVisibility()).isEqualTo(View.GONE); - assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE); - assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo( - mContext.getString(R.string.media_output_dialog_disconnected, TEST_DEVICE_NAME_2)); + assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.GONE); + assertThat(mViewHolder.mTwoLineLayout.getVisibility()).isEqualTo(View.VISIBLE); + assertThat(mViewHolder.mTwoLineTitleText.getText().toString()).isEqualTo( + TEST_DEVICE_NAME_2); + assertThat(mViewHolder.mSubTitleText.getText().toString()).isEqualTo( + mContext.getString(R.string.media_output_dialog_disconnected)); } @Test