From f7f015e2ee5d316056137921c7b2557e336346d1 Mon Sep 17 00:00:00 2001 From: changbetty Date: Fri, 21 May 2021 16:17:23 +0800 Subject: [PATCH] [GAR] Set Fix connectivity icon invisible when airplane mode is on Bug: 179117999 Test: manual test make RunSettingsRoboTests ROBOTEST_FILTER=NetworkProviderSettingsTest Change-Id: I2c37f22c936c3409f5db819b7c945bc81c07ae60 --- .../network/NetworkProviderSettings.java | 8 ++++--- .../network/NetworkProviderSettingsTest.java | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) 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();