[GAR] Set Fix connectivity icon invisible when airplane mode is on

Bug: 179117999
Test: manual test
      make RunSettingsRoboTests
      ROBOTEST_FILTER=NetworkProviderSettingsTest
Change-Id: I2c37f22c936c3409f5db819b7c945bc81c07ae60
This commit is contained in:
changbetty
2021-05-21 16:17:23 +08:00
parent b769cf8067
commit f7f015e2ee
2 changed files with 27 additions and 3 deletions

View File

@@ -1168,9 +1168,11 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
@Override @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
if (!mAirplaneModeEnabler.isAirplaneModeOn()) {
MenuItem item = menu.add(0, MENU_FIX_CONNECTIVITY, 0, R.string.fix_connectivity); MenuItem item = menu.add(0, MENU_FIX_CONNECTIVITY, 0, R.string.fix_connectivity);
item.setIcon(R.drawable.ic_repair_24dp); item.setIcon(R.drawable.ic_repair_24dp);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
super.onCreateOptionsMenu(menu, inflater); super.onCreateOptionsMenu(menu, inflater);
} }

View File

@@ -46,6 +46,7 @@ import android.os.UserManager;
import android.provider.Settings; import android.provider.Settings;
import android.util.FeatureFlagUtils; import android.util.FeatureFlagUtils;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
@@ -416,6 +417,27 @@ public class NetworkProviderSettingsTest {
return wifiDialog2; 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 @Test
public void onOptionsItemSelected_fixConnectivity_triggerSubsystemRestart() { public void onOptionsItemSelected_fixConnectivity_triggerSubsystemRestart() {
doReturn(true).when(mConnectivitySubsystemsRecoveryManager).isRecoveryAvailable(); doReturn(true).when(mConnectivitySubsystemsRecoveryManager).isRecoveryAvailable();