diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index e995c31..79196f1 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -220,6 +220,7 @@
         mMeteredSettingsSpinner = mView.findViewById(R.id.metered_settings);
         mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);
         mHiddenSettingsSpinner.setOnItemSelectedListener(this);
+        mHiddenSettingsSpinner.setVisibility(View.GONE);
         mHiddenSettingsSpinner.setEnabled(false);
         mHiddenWarningView = mView.findViewById(R.id.hidden_settings_warning);
         mHiddenWarningView.setVisibility(
@@ -240,6 +241,7 @@
             showProxyFields();
             mView.findViewById(R.id.wifi_advanced_toggle).setVisibility(View.VISIBLE);
             // Hidden option can be changed only when the user adds a network manually.
+            mHiddenSettingsSpinner.setVisibility(View.VISIBLE);
             mHiddenSettingsSpinner.setEnabled(true);
             ((CheckBox) mView.findViewById(R.id.wifi_advanced_togglebox))
                     .setOnCheckedChangeListener(this);
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
index d445c0d..ddbc851 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
@@ -268,6 +268,19 @@
         assertThat(hiddenSpinner.isEnabled()).isTrue();
     }
 
+
+    @Test
+    public void hiddenSpinner_visibilityUpdatesCorrectly() {
+        View hiddenSpinner = mView.findViewById(R.id.hidden_settings);
+        assertThat(hiddenSpinner.isEnabled()).isFalse();
+        assertThat(hiddenSpinner.getVisibility()).isEqualTo(View.GONE);
+
+        mController = new TestWifiConfigController(mConfigUiBase, mView, null /* accessPoint */,
+                WifiConfigUiBase.MODE_CONNECT);
+        assertThat(hiddenSpinner.isEnabled()).isTrue();
+        assertThat(hiddenSpinner.getVisibility()).isEqualTo(View.VISIBLE);
+    }
+
     public class TestWifiConfigController extends WifiConfigController {
 
         private TestWifiConfigController(
