Apply checkbox enable state on viewholder bind
Change-Id: I5b263f02fb6a1779fd567eade3776044fddb6b11 Fixes: 72809700 Test: SettingsRoboTests
This commit is contained in:
@@ -83,6 +83,7 @@ public class MasterCheckBoxPreference extends TwoTargetPreference {
|
|||||||
if (mCheckBox != null) {
|
if (mCheckBox != null) {
|
||||||
mCheckBox.setContentDescription(getTitle());
|
mCheckBox.setContentDescription(getTitle());
|
||||||
mCheckBox.setChecked(mChecked);
|
mCheckBox.setChecked(mChecked);
|
||||||
|
mCheckBox.setEnabled(mEnableCheckBox);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -105,6 +105,24 @@ public class MasterCheckBoxPreferenceTest {
|
|||||||
assertThat(checkBox.isEnabled()).isTrue();
|
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
|
@Test
|
||||||
public void clickWidgetView_shouldToggleCheckBox() {
|
public void clickWidgetView_shouldToggleCheckBox() {
|
||||||
final LayoutInflater inflater = LayoutInflater.from(mContext);
|
final LayoutInflater inflater = LayoutInflater.from(mContext);
|
||||||
|
Reference in New Issue
Block a user