diff --git a/packages/SystemUI/res/drawable/ic_circle_check_box.xml b/packages/SystemUI/res/drawable/ic_circle_check_box.xml new file mode 100644 index 0000000000000..b44a32dda1723 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_circle_check_box.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/packages/SystemUI/res/drawable/ic_circular_unchecked.xml b/packages/SystemUI/res/drawable/ic_circular_unchecked.xml new file mode 100644 index 0000000000000..9b43cf64f116d --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_circular_unchecked.xml @@ -0,0 +1,9 @@ + + + diff --git a/packages/SystemUI/res/layout/media_output_list_item.xml b/packages/SystemUI/res/layout/media_output_list_item.xml index 89316893cead9..806804f2fc476 100644 --- a/packages/SystemUI/res/layout/media_output_list_item.xml +++ b/packages/SystemUI/res/layout/media_output_list_item.xml @@ -96,26 +96,6 @@ android:textSize="14sp" android:fontFamily="@*android:string/config_bodyFontFamily" android:visibility="gone"/> - - + + \ No newline at end of file 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 8b19ccb04f165..e465ae41f546f 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapter.java @@ -66,18 +66,6 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { if (position == size && mController.isZeroMode()) { viewHolder.onBind(CUSTOMIZED_ITEM_PAIR_NEW, false /* topMargin */, true /* bottomMargin */); - } else if (mIncludeDynamicGroup) { - if (position == 0) { - viewHolder.onBind(CUSTOMIZED_ITEM_DYNAMIC_GROUP, true /* topMargin */, - false /* bottomMargin */); - } else { - // When group item is added at the first(position == 0), devices will be added from - // the second item(position == 1). It means that the index of device list starts - // from "position - 1". - viewHolder.onBind(((List) (mController.getMediaDevices())) - .get(position - 1), - false /* topMargin */, position == size /* bottomMargin */, position); - } } else if (position < size) { viewHolder.onBind(((List) (mController.getMediaDevices())).get(position), position == 0 /* topMargin */, position == (size - 1) /* bottomMargin */, @@ -89,11 +77,6 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { @Override public int getItemCount() { - mIncludeDynamicGroup = mController.getSelectedMediaDevice().size() > 1; - if (mController.isZeroMode() || mIncludeDynamicGroup) { - // Add extra one for "pair new" or dynamic group - return mController.getMediaDevices().size() + 1; - } return mController.getMediaDevices().size(); } @@ -115,16 +98,6 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { mStatusIcon.setVisibility(View.GONE); mTitleText.setTextColor(Utils.getColorStateListDefaultColor(mContext, R.color.media_dialog_inactive_item_main_content)); - if (currentlyConnected && mController.isActiveRemoteDevice(device) - && mController.getSelectableMediaDevice().size() > 0) { - // Init active device layout - mAddIcon.setVisibility(View.VISIBLE); - mAddIcon.setTransitionAlpha(1); - mAddIcon.setOnClickListener(this::onEndItemClick); - } else { - // Init non-active device layout - mAddIcon.setVisibility(View.GONE); - } if (mCurrentActivePosition == position) { mCurrentActivePosition = -1; } @@ -158,6 +131,19 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { true /* showSubtitle */, true /* showStatus */); mSubTitleText.setText(R.string.media_output_dialog_connect_failed); mContainerLayout.setOnClickListener(v -> onItemClick(v, device)); + } else if (mController.getSelectedMediaDevice().size() > 1 + && isDeviceIncluded(mController.getSelectedMediaDevice(), device)) { + mTitleText.setTextColor(Utils.getColorStateListDefaultColor(mContext, + R.color.media_dialog_active_item_main_content)); + setSingleLineLayout(getItemTitle(device), true /* bFocused */, + true /* showSeekBar */, + false /* showProgressBar */, false /* showStatus */); + mCheckBox.setVisibility(View.VISIBLE); + mCheckBox.setChecked(true); + mCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> { + onCheckBoxClicked(false, device); + }); + initSessionSeekbar(); } else if (!mController.hasAdjustVolumeUserRestriction() && currentlyConnected) { mStatusIcon.setImageDrawable( mContext.getDrawable(R.drawable.media_output_status_check)); @@ -168,6 +154,16 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { false /* showProgressBar */, true /* showStatus */); initSeekbar(device); mCurrentActivePosition = position; + } else if (isDeviceIncluded(mController.getSelectableMediaDevice(), device)) { + mCheckBox.setVisibility(View.VISIBLE); + mCheckBox.setChecked(false); + mCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> { + onCheckBoxClicked(true, device); + }); + setSingleLineLayout(getItemTitle(device), false /* bFocused */, + false /* showSeekBar */, + false /* showProgressBar */, false /* showStatus */); + mContainerLayout.setOnClickListener(v -> onItemClick(v, device)); } else { setSingleLineLayout(getItemTitle(device), false /* bFocused */); mContainerLayout.setOnClickListener(v -> onItemClick(v, device)); @@ -181,7 +177,6 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { mTitleText.setTextColor(Utils.getColorStateListDefaultColor(mContext, R.color.media_dialog_inactive_item_main_content)); mCheckBox.setVisibility(View.GONE); - mAddIcon.setVisibility(View.GONE); setSingleLineLayout(mContext.getText(R.string.media_output_dialog_pairing_new), false /* bFocused */); final Drawable d = mContext.getDrawable(R.drawable.ic_add); @@ -189,28 +184,27 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { Utils.getColorAccentDefaultColor(mContext), PorterDuff.Mode.SRC_IN)); mTitleIcon.setImageDrawable(d); mContainerLayout.setOnClickListener(v -> onItemClick(CUSTOMIZED_ITEM_PAIR_NEW)); - } else if (customizedItem == CUSTOMIZED_ITEM_DYNAMIC_GROUP) { - mTitleText.setTextColor(Utils.getColorStateListDefaultColor(mContext, - R.color.media_dialog_active_item_main_content)); - mConnectedItem = mContainerLayout; - mCheckBox.setVisibility(View.GONE); - if (mController.getSelectableMediaDevice().size() > 0) { - mAddIcon.setVisibility(View.VISIBLE); - mAddIcon.setTransitionAlpha(1); - mAddIcon.setOnClickListener(this::onEndItemClick); - } else { - mAddIcon.setVisibility(View.GONE); - } - mTitleIcon.setImageDrawable(getSpeakerDrawable()); - final CharSequence sessionName = mController.getSessionName(); - final CharSequence title = TextUtils.isEmpty(sessionName) - ? mContext.getString(R.string.media_output_dialog_group) : sessionName; - setTwoLineLayout(title, true /* bFocused */, true /* showSeekBar */, - false /* showProgressBar */, false /* showSubtitle */); - initSessionSeekbar(); } } + private void onCheckBoxClicked(boolean isChecked, MediaDevice device) { + if (isChecked && isDeviceIncluded(mController.getSelectableMediaDevice(), device)) { + mController.addDeviceToPlayMedia(device); + } else if (!isChecked && isDeviceIncluded(mController.getDeselectableMediaDevice(), + device)) { + mController.removeDeviceFromPlayMedia(device); + } + } + + private boolean isDeviceIncluded(List deviceList, MediaDevice targetDevice) { + for (MediaDevice device : deviceList) { + if (TextUtils.equals(device.getId(), targetDevice.getId())) { + return true; + } + } + return false; + } + private void onItemClick(View view, MediaDevice device) { if (mController.isTransferring()) { return; @@ -229,9 +223,5 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter { mController.launchBluetoothPairing(); } } - - private void onEndItemClick(View view) { - mController.launchMediaOutputGroupDialog(mMediaOutputDialog.getDialogView()); - } } } 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 bff792c99837f..a8d30d4851419 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java @@ -118,7 +118,6 @@ public abstract class MediaOutputBaseAdapter extends final TextView mTwoLineTitleText; final TextView mSubTitleText; final ImageView mTitleIcon; - final ImageView mAddIcon; final ProgressBar mProgressBar; final SeekBar mSeekBar; final RelativeLayout mTwoLineLayout; @@ -137,7 +136,6 @@ public abstract class MediaOutputBaseAdapter extends mTitleIcon = view.requireViewById(R.id.title_icon); mProgressBar = view.requireViewById(R.id.volume_indeterminate_progress); mSeekBar = view.requireViewById(R.id.volume_seekbar); - mAddIcon = view.requireViewById(R.id.add_icon); mStatusIcon = view.requireViewById(R.id.media_output_item_status); mCheckBox = view.requireViewById(R.id.check_box); } diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java index 4eee60c75bfd1..83d581fb7897a 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java @@ -258,16 +258,15 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { drawable = mContext.getDrawable(com.android.internal.R.drawable.ic_bt_headphones_a2dp); } if (!(drawable instanceof BitmapDrawable)) { - setColorFilter(drawable, - mLocalMediaManager.getCurrentConnectedDevice().getId().equals(device.getId())); + setColorFilter(drawable, isActiveItem(device)); } return BluetoothUtils.createIconWithDrawable(drawable); } - void setColorFilter(Drawable drawable, boolean isConnected) { + void setColorFilter(Drawable drawable, boolean isActive) { final ColorStateList list = mContext.getResources().getColorStateList( - !hasAdjustVolumeUserRestriction() && isConnected && !isTransferring() + isActive ? R.color.media_dialog_active_item_main_content : R.color.media_dialog_inactive_item_main_content, mContext.getTheme()); @@ -275,6 +274,15 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { PorterDuff.Mode.SRC_IN)); } + boolean isActiveItem(MediaDevice device) { + boolean isConnected = mLocalMediaManager.getCurrentConnectedDevice().getId().equals( + device.getId()); + boolean isSelectedDeviceInGroup = getSelectedMediaDevice().size() > 1 + && getSelectedMediaDevice().contains(device); + return (!hasAdjustVolumeUserRestriction() && isConnected && !isTransferring()) + || isSelectedDeviceInGroup; + } + IconCompat getNotificationIcon() { if (TextUtils.isEmpty(mPackageName)) { return null; 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 104ddf907dc78..9b42b1dea9a4d 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputGroupAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputGroupAdapter.java @@ -35,6 +35,7 @@ import java.util.List; /** * Adapter for media output dynamic group dialog. */ +//TODO: clear this class after new UI updated public class MediaOutputGroupAdapter extends MediaOutputBaseAdapter { private static final String TAG = "MediaOutputGroupAdapter"; @@ -96,7 +97,6 @@ public class MediaOutputGroupAdapter extends MediaOutputBaseAdapter { @Override void onBind(MediaDevice device, boolean topMargin, boolean bottomMargin, int position) { super.onBind(device, topMargin, bottomMargin, position); - mAddIcon.setVisibility(View.GONE); mCheckBox.setVisibility(View.VISIBLE); mCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> { onCheckBoxClicked(isChecked, device); @@ -131,7 +131,6 @@ public class MediaOutputGroupAdapter extends MediaOutputBaseAdapter { false /* showSubtitle*/); mTitleIcon.setImageDrawable(getSpeakerDrawable()); mCheckBox.setVisibility(View.GONE); - mAddIcon.setVisibility(View.GONE); initSessionSeekbar(); } } 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 1b5e5eba0c84c..89c0712cdc7d3 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 @@ -100,7 +100,7 @@ public class MediaOutputAdapterTest extends SysuiTestCase { public void getItemCount_zeroMode_containExtraOneForPairNew() { when(mMediaOutputController.isZeroMode()).thenReturn(true); - assertThat(mMediaOutputAdapter.getItemCount()).isEqualTo(mMediaDevices.size() + 1); + assertThat(mMediaOutputAdapter.getItemCount()).isEqualTo(mMediaDevices.size()); } @Test @@ -108,7 +108,7 @@ public class MediaOutputAdapterTest extends SysuiTestCase { when(mMediaOutputController.getSelectedMediaDevice()).thenReturn(mMediaDevices); when(mMediaOutputController.isZeroMode()).thenReturn(false); - assertThat(mMediaOutputAdapter.getItemCount()).isEqualTo(mMediaDevices.size() + 1); + assertThat(mMediaOutputAdapter.getItemCount()).isEqualTo(mMediaDevices.size()); } @Test @@ -119,7 +119,6 @@ public class MediaOutputAdapterTest extends SysuiTestCase { assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mTwoLineLayout.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); - assertThat(mViewHolder.mAddIcon.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mTitleText.getText()).isEqualTo(mContext.getText( R.string.media_output_dialog_pairing_new)); @@ -134,11 +133,10 @@ public class MediaOutputAdapterTest extends SysuiTestCase { mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); - assertThat(mViewHolder.mTwoLineLayout.getVisibility()).isEqualTo(View.VISIBLE); - assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.GONE); + assertThat(mViewHolder.mTwoLineLayout.getVisibility()).isEqualTo(View.GONE); + assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); - assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE); - assertThat(mViewHolder.mTwoLineTitleText.getText()).isEqualTo(TEST_SESSION_NAME); + assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE); } @Test @@ -150,12 +148,10 @@ public class MediaOutputAdapterTest extends SysuiTestCase { mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); - assertThat(mViewHolder.mTwoLineLayout.getVisibility()).isEqualTo(View.VISIBLE); - assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.GONE); + assertThat(mViewHolder.mTwoLineLayout.getVisibility()).isEqualTo(View.GONE); + assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); - assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE); - assertThat(mViewHolder.mTwoLineTitleText.getText()).isEqualTo(mContext.getString( - R.string.media_output_dialog_group)); + assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE); } @Test @@ -171,27 +167,10 @@ public class MediaOutputAdapterTest extends SysuiTestCase { assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); } - @Test - public void onBindViewHolder_bindConnectedDevice_withSelectableDevice_showAddIcon() { - when(mMediaOutputController.getSelectableMediaDevice()).thenReturn(mMediaDevices); - mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); - - assertThat(mViewHolder.mAddIcon.getVisibility()).isEqualTo(View.VISIBLE); - } - - @Test - public void onBindViewHolder_bindConnectedDevice_withoutSelectableDevice_hideAddIcon() { - when(mMediaOutputController.getSelectableMediaDevice()).thenReturn(new ArrayList<>()); - mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); - - assertThat(mViewHolder.mAddIcon.getVisibility()).isEqualTo(View.GONE); - } - @Test public void onBindViewHolder_bindNonActiveConnectedDevice_verifyView() { 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.mCheckBox.getVisibility()).isEqualTo(View.GONE); @@ -206,7 +185,6 @@ public class MediaOutputAdapterTest extends SysuiTestCase { when(mMediaDevice2.isConnected()).thenReturn(false); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); - assertThat(mViewHolder.mAddIcon.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo( @@ -220,7 +198,6 @@ public class MediaOutputAdapterTest extends SysuiTestCase { LocalMediaManager.MediaDeviceState.STATE_CONNECTING_FAILED); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); - assertThat(mViewHolder.mAddIcon.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputGroupAdapterTest.java b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputGroupAdapterTest.java index 2c883a78e009e..cf6fd249ee33d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputGroupAdapterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputGroupAdapterTest.java @@ -99,7 +99,6 @@ public class MediaOutputGroupAdapterTest extends SysuiTestCase { assertThat(mGroupViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mSubTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); - assertThat(mGroupViewHolder.mAddIcon.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mGroupViewHolder.mTwoLineTitleText.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mGroupViewHolder.mTwoLineTitleText.getText()).isEqualTo(mContext.getText( @@ -112,7 +111,6 @@ public class MediaOutputGroupAdapterTest extends SysuiTestCase { assertThat(mGroupViewHolder.mTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); - assertThat(mGroupViewHolder.mAddIcon.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mSubTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mGroupViewHolder.mTwoLineTitleText.getVisibility()).isEqualTo(View.VISIBLE); @@ -137,7 +135,6 @@ public class MediaOutputGroupAdapterTest extends SysuiTestCase { assertThat(mGroupViewHolder.mTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); - assertThat(mGroupViewHolder.mAddIcon.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mSubTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mGroupViewHolder.mTwoLineTitleText.getVisibility()).isEqualTo(View.VISIBLE); @@ -161,7 +158,6 @@ public class MediaOutputGroupAdapterTest extends SysuiTestCase { assertThat(mGroupViewHolder.mTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); - assertThat(mGroupViewHolder.mAddIcon.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mSubTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mGroupViewHolder.mTwoLineTitleText.getVisibility()).isEqualTo(View.VISIBLE); @@ -178,7 +174,6 @@ public class MediaOutputGroupAdapterTest extends SysuiTestCase { assertThat(mGroupViewHolder.mTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); - assertThat(mGroupViewHolder.mAddIcon.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mSubTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mGroupViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mGroupViewHolder.mTwoLineTitleText.getVisibility()).isEqualTo(View.VISIBLE);