diff --git a/src/com/android/settings/network/InternetResetHelper.java b/src/com/android/settings/network/InternetResetHelper.java
index d6c5476..253cf56 100644
--- a/src/com/android/settings/network/InternetResetHelper.java
+++ b/src/com/android/settings/network/InternetResetHelper.java
@@ -204,7 +204,7 @@
     protected void resumePreferences() {
         if (mIsRecoveryReady && mMobileNetworkController != null) {
             Log.d(TAG, "Resume the Mobile Network controller");
-            mMobileNetworkController.hidePreference(false /* hide */, false /* immediately */);
+            mMobileNetworkController.hidePreference(false /* hide */, true /* immediately */);
         }
         if (mIsWifiReady && mWifiTogglePreferences != null) {
             Log.d(TAG, "Resume the Wi-Fi preferences");
diff --git a/tests/unit/src/com/android/settings/network/InternetResetHelperTest.java b/tests/unit/src/com/android/settings/network/InternetResetHelperTest.java
index 00ca8e1..3dbaa91 100644
--- a/tests/unit/src/com/android/settings/network/InternetResetHelperTest.java
+++ b/tests/unit/src/com/android/settings/network/InternetResetHelperTest.java
@@ -217,7 +217,7 @@
         // Show resetting preference
         assertThat(mResettingPreference.isVisible()).isTrue();
         // Show Mobile Network controller
-        verify(mMobileNetworkController).hidePreference(false /* hide */, false /* immediately*/);
+        verify(mMobileNetworkController).hidePreference(false /* hide */, true /* immediately*/);
         // Hide Wi-Fi preferences
         assertThat(mWifiTogglePreferences.isVisible()).isFalse();
         assertThat(mConnectedWifiEntryPreferences.isVisible()).isFalse();
@@ -240,7 +240,7 @@
         assertThat(mWifiEntryPreferences.isVisible()).isTrue();
         // Hide Mobile Network controller
         verify(mMobileNetworkController, never())
-                .hidePreference(false /* hide */, false /* immediately*/);
+                .hidePreference(false /* hide */, true /* immediately*/);
     }
 
     @Test
@@ -251,7 +251,7 @@
         mInternetResetHelper.resumePreferences();
 
         // Show subsystem preferences
-        verify(mMobileNetworkController).hidePreference(false, false);
+        verify(mMobileNetworkController).hidePreference(false, true);
         assertThat(mWifiTogglePreferences.isVisible()).isTrue();
         assertThat(mConnectedWifiEntryPreferences.isVisible()).isTrue();
         assertThat(mWifiEntryPreferences.isVisible()).isTrue();
