DO NOT MERGE: Downbranch merge conflict [Output Switcher] Make checkbox disable if a device is not deselectable

Bug: 229503847
Test: N/A
Change-Id: I5866dc5f544cebe504a03429730cc47d684ccdd6
This commit is contained in:
shaoweishen
2022-05-05 09:16:53 +00:00
committed by Shaowei Shen
parent 100004b0ca
commit ec0d7f51e5

View File

@@ -176,6 +176,8 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
true /* showProgressBar */, false /* showStatus */);
} else if (mController.getSelectedMediaDevice().size() > 1
&& isDeviceIncluded(mController.getSelectedMediaDevice(), device)) {
boolean isDeviceDeselectable = isDeviceIncluded(
mController.getDeselectableMediaDevice(), device);
mTitleText.setTextColor(mController.getColorItemContent());
setSingleLineLayout(getItemTitle(device), true /* bFocused */,
true /* showSeekBar */,
@@ -184,13 +186,20 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
mCheckBox.setOnCheckedChangeListener(null);
mCheckBox.setVisibility(View.VISIBLE);
mCheckBox.setChecked(true);
mCheckBox.setOnCheckedChangeListener(
(buttonView, isChecked) -> onGroupActionTriggered(false, device));
mCheckBox.setOnCheckedChangeListener(isDeviceDeselectable
? (buttonView, isChecked) -> onGroupActionTriggered(false, device)
: null);
mCheckBox.setEnabled(isDeviceDeselectable);
mCheckBox.setAlpha(
isDeviceDeselectable ? DEVICE_CONNECTED_ALPHA
: DEVICE_DISCONNECTED_ALPHA
);
setCheckBoxColor(mCheckBox, mController.getColorItemContent());
initSeekbar(device, isCurrentSeekbarInvisible);
mEndTouchArea.setVisibility(View.VISIBLE);
mEndTouchArea.setOnClickListener(null);
mEndTouchArea.setOnClickListener((v) -> mCheckBox.performClick());
mEndTouchArea.setOnClickListener(
isDeviceDeselectable ? (v) -> mCheckBox.performClick() : null);
mEndTouchArea.setImportantForAccessibility(
View.IMPORTANT_FOR_ACCESSIBILITY_YES);
setUpContentDescriptionForView(mEndTouchArea, true, device);