diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreference.java b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
index de7d692..09e1ca4 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchPreference.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
@@ -82,15 +82,15 @@
         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 cb53805..c0c4fd7 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.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 @@
     @Mock
     private EnforcedAdmin mEnforcedAdmin;
     private SettingsMainSwitchPreference mPreference;
+    private PreferenceViewHolder mHolder;
 
     @Before
     public void setUp() {
@@ -48,6 +53,9 @@
         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 @@
 
         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();
+    }
 }
