diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreference.java b/src/com/android/settings/widget/SettingsMainSwitchPreference.java index de7d6926d03..09e1ca4cdce 100644 --- a/src/com/android/settings/widget/SettingsMainSwitchPreference.java +++ b/src/com/android/settings/widget/SettingsMainSwitchPreference.java @@ -82,15 +82,15 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements holder.setDividerAllowedAbove(false); holder.setDividerAllowedBelow(false); - mMainSwitchBar = (SettingsMainSwitchBar) holder.findViewById(R.id.main_switch_bar); - mMainSwitchBar.show(); if (mRestrictedHelper != null) { mEnforcedAdmin = mRestrictedHelper.checkRestrictionEnforced(); } - updateStatus(isChecked()); - registerListenerToSwitchBar(); - - if (!mIsVisible) { + mMainSwitchBar = (SettingsMainSwitchBar) holder.findViewById(R.id.main_switch_bar); + if (mIsVisible) { + mMainSwitchBar.show(); + updateStatus(isChecked()); + registerListenerToSwitchBar(); + } else { mMainSwitchBar.hide(); } } diff --git a/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchPreferenceTest.java index cb53805cc99..c0c4fd7baa3 100644 --- a/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchPreferenceTest.java @@ -24,6 +24,10 @@ import android.content.Context; import android.view.View; import android.widget.ImageView; +import androidx.preference.PreferenceViewHolder; + +import com.android.settings.R; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -39,6 +43,7 @@ public class SettingsMainSwitchPreferenceTest { @Mock private EnforcedAdmin mEnforcedAdmin; private SettingsMainSwitchPreference mPreference; + private PreferenceViewHolder mHolder; @Before public void setUp() { @@ -48,6 +53,9 @@ public class SettingsMainSwitchPreferenceTest { mPreference = new SettingsMainSwitchPreference(context); ReflectionHelpers.setField(mPreference, "mEnforcedAdmin", mEnforcedAdmin); ReflectionHelpers.setField(mPreference, "mMainSwitchBar", switchBar); + final View rootView = View.inflate(context, R.layout.preference_widget_main_switch, + null /* parent */); + mHolder = PreferenceViewHolder.createInstanceForTests(rootView); } @Test @@ -60,4 +68,22 @@ public class SettingsMainSwitchPreferenceTest { assertThat(restrictedIcon.getVisibility() == View.VISIBLE).isTrue(); } + + @Test + public void show_preferenceShouldDisplay() { + mPreference.show(); + + mPreference.onBindViewHolder(mHolder); + + assertThat(mPreference.isShowing()).isTrue(); + } + + @Test + public void hide_preferenceShouldNotDisplay() { + mPreference.hide(); + + mPreference.onBindViewHolder(mHolder); + + assertThat(mPreference.isShowing()).isFalse(); + } }