Apply checkbox enable state on viewholder bind

Change-Id: I5b263f02fb6a1779fd567eade3776044fddb6b11
Fixes: 72809700
Test: SettingsRoboTests
This commit is contained in:
Julia Reynolds
2018-02-06 15:09:43 -05:00
parent def55bf102
commit cd7e9bcb33
2 changed files with 19 additions and 0 deletions

View File

@@ -83,6 +83,7 @@ public class MasterCheckBoxPreference extends TwoTargetPreference {
if (mCheckBox != null) {
mCheckBox.setContentDescription(getTitle());
mCheckBox.setChecked(mChecked);
mCheckBox.setEnabled(mEnableCheckBox);
}
}

View File

@@ -105,6 +105,24 @@ public class MasterCheckBoxPreferenceTest {
assertThat(checkBox.isEnabled()).isTrue();
}
@Test
public void onBindViewHolder_shouldSetCheckboxEnabledState() {
final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
LayoutInflater.from(mContext).inflate(
R.layout.preference_widget_master_checkbox, null));
final CheckBox checkBox = (CheckBox) holder.findViewById(R.id.checkboxWidget);
mPreference.setCheckBoxEnabled(false);
mPreference.onBindViewHolder(holder);
assertThat(mPreference.isEnabled()).isTrue();
assertThat(checkBox.isEnabled()).isFalse();
mPreference.setCheckBoxEnabled(true);
assertThat(mPreference.isEnabled()).isTrue();
assertThat(checkBox.isEnabled()).isTrue();
}
@Test
public void clickWidgetView_shouldToggleCheckBox() {
final LayoutInflater inflater = LayoutInflater.from(mContext);