diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java index eff7930f054..4c5552d9f7c 100644 --- a/src/com/android/settings/network/NetworkProviderSettings.java +++ b/src/com/android/settings/network/NetworkProviderSettings.java @@ -1168,9 +1168,11 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - MenuItem item = menu.add(0, MENU_FIX_CONNECTIVITY, 0, R.string.fix_connectivity); - item.setIcon(R.drawable.ic_repair_24dp); - item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + if (!mAirplaneModeEnabler.isAirplaneModeOn()) { + MenuItem item = menu.add(0, MENU_FIX_CONNECTIVITY, 0, R.string.fix_connectivity); + item.setIcon(R.drawable.ic_repair_24dp); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + } super.onCreateOptionsMenu(menu, inflater); } diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java index f02a8066311..7affe68ab99 100644 --- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java +++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java @@ -46,6 +46,7 @@ import android.os.UserManager; import android.provider.Settings; import android.util.FeatureFlagUtils; import android.view.ContextMenu; +import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -416,6 +417,27 @@ public class NetworkProviderSettingsTest { return wifiDialog2; } + @Test + public void onCreateOptionsMenu_airplanModeOn_fixConnectivityMenuInvisible() { + doReturn(true).when(mAirplaneModeEnabler).isAirplaneModeOn(); + final Menu menu = mock(Menu.class); + mNetworkProviderSettings.onCreateOptionsMenu(menu, null /* inflater */); + + verify(menu, never()).add(anyInt(), eq(NetworkProviderSettings.MENU_FIX_CONNECTIVITY), + anyInt(), eq(R.string.fix_connectivity)); + } + + @Test + public void onCreateOptionsMenu_airplanModeOff_fixConnectivityMenuVisible() { + doReturn(false).when(mAirplaneModeEnabler).isAirplaneModeOn(); + final Menu menu = mock(Menu.class); + when(menu.add(anyInt(), anyInt(), anyInt(), anyInt())).thenReturn(mock(MenuItem.class)); + mNetworkProviderSettings.onCreateOptionsMenu(menu, null /* inflater */); + + verify(menu).add(anyInt(), eq(NetworkProviderSettings.MENU_FIX_CONNECTIVITY), + anyInt(), eq(R.string.fix_connectivity)); + } + @Test public void onOptionsItemSelected_fixConnectivity_triggerSubsystemRestart() { doReturn(true).when(mConnectivitySubsystemsRecoveryManager).isRecoveryAvailable();