Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd7e9bcb authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Apply checkbox enable state on viewholder bind

Change-Id: I5b263f02fb6a1779fd567eade3776044fddb6b11
Fixes: 72809700
Test: SettingsRoboTests
parent def55bf1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ public class MasterCheckBoxPreference extends TwoTargetPreference {
        if (mCheckBox != null) {
            mCheckBox.setContentDescription(getTitle());
            mCheckBox.setChecked(mChecked);
            mCheckBox.setEnabled(mEnableCheckBox);
        }
    }

+18 −0
Original line number Diff line number Diff line
@@ -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);