Merge "Remove Fix connectivity menu for guest"
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index 19ebd36..b622a3c 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -212,6 +212,8 @@
protected boolean mIsRestricted;
@VisibleForTesting
boolean mIsAdmin = true;
+ @VisibleForTesting
+ boolean mIsGuest = false;
@VisibleForTesting
AirplaneModeEnabler mAirplaneModeEnabler;
@@ -302,13 +304,14 @@
addPreferences();
mIsRestricted = isUiRestricted();
- mIsAdmin = isAdminUser();
+ updateUserType();
}
- private boolean isAdminUser() {
- final UserManager userManager = getSystemService(UserManager.class);
- if (userManager == null) return true;
- return userManager.isAdminUser();
+ private void updateUserType() {
+ UserManager userManager = getSystemService(UserManager.class);
+ if (userManager == null) return;
+ mIsAdmin = userManager.isAdminUser();
+ mIsGuest = userManager.isGuestUser();
}
private void addPreferences() {
@@ -1400,7 +1403,7 @@
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- if (!mAirplaneModeEnabler.isAirplaneModeOn()) {
+ if (!mIsGuest && !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);
@@ -1447,6 +1450,11 @@
}
private void fixConnectivity() {
+ if (mIsGuest) {
+ Log.e(TAG, "Can't reset network because the user is a guest.");
+ EventLog.writeEvent(0x534e4554, "252995826", UserHandle.myUserId(), "User is a guest");
+ return;
+ }
if (mInternetResetHelper == null) {
mInternetResetHelper = new InternetResetHelper(getContext(), getLifecycle());
mInternetResetHelper.setResettingPreference(mResetInternetPreference);
diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
index b347ac0..5573ca3 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
@@ -15,6 +15,7 @@
*/
package com.android.settings.network;
+import static com.android.settings.network.NetworkProviderSettings.MENU_FIX_CONNECTIVITY;
import static com.android.settings.network.NetworkProviderSettings.MENU_ID_DISCONNECT;
import static com.android.settings.network.NetworkProviderSettings.MENU_ID_FORGET;
import static com.android.settings.network.NetworkProviderSettings.MENU_ID_MODIFY;
@@ -135,6 +136,8 @@
@Mock
private ContextMenu mContextMenu;
@Mock
+ private Menu mMenu;
+ @Mock
private MenuItem mMenuItem;
@Mock
InternetUpdater mInternetUpdater;
@@ -147,6 +150,8 @@
@Before
public void setUp() {
+ when(mMenu.add(anyInt(), anyInt(), anyInt(), anyInt())).thenReturn(mMenuItem);
+
mNetworkProviderSettings = spy(new NetworkProviderSettings() {
@Override
boolean showAnySubscriptionInfo(Context context) { return true; }
@@ -483,24 +488,39 @@
}
@Test
- public void onCreateOptionsMenu_airplanModeOn_fixConnectivityMenuInvisible() {
- doReturn(true).when(mAirplaneModeEnabler).isAirplaneModeOn();
- final Menu menu = mock(Menu.class);
- mNetworkProviderSettings.onCreateOptionsMenu(menu, null /* inflater */);
+ public void onCreateOptionsMenu_isGuest_neverAddFixConnectivityMenu() {
+ mNetworkProviderSettings.mIsGuest = true;
- verify(menu, never()).add(anyInt(), eq(NetworkProviderSettings.MENU_FIX_CONNECTIVITY),
- anyInt(), eq(R.string.fix_connectivity));
+ mNetworkProviderSettings.onCreateOptionsMenu(mMenu, null /* inflater */);
+
+ verify(mMenu, never()).add(anyInt(), eq(MENU_FIX_CONNECTIVITY), anyInt(), anyInt());
}
@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 */);
+ public void onCreateOptionsMenu_isNotGuest_addFixConnectivityMenu() {
+ mNetworkProviderSettings.mIsGuest = false;
- verify(menu).add(anyInt(), eq(NetworkProviderSettings.MENU_FIX_CONNECTIVITY),
- anyInt(), eq(R.string.fix_connectivity));
+ mNetworkProviderSettings.onCreateOptionsMenu(mMenu, null /* inflater */);
+
+ verify(mMenu).add(anyInt(), eq(MENU_FIX_CONNECTIVITY), anyInt(), anyInt());
+ }
+
+ @Test
+ public void onCreateOptionsMenu_isAirplaneModeOn_neverAddFixConnectivityMenu() {
+ doReturn(true).when(mAirplaneModeEnabler).isAirplaneModeOn();
+
+ mNetworkProviderSettings.onCreateOptionsMenu(mMenu, null /* inflater */);
+
+ verify(mMenu, never()).add(anyInt(), eq(MENU_FIX_CONNECTIVITY), anyInt(), anyInt());
+ }
+
+ @Test
+ public void onCreateOptionsMenu_isNotAirplaneModeOn_addFixConnectivityMenu() {
+ doReturn(false).when(mAirplaneModeEnabler).isAirplaneModeOn();
+
+ mNetworkProviderSettings.onCreateOptionsMenu(mMenu, null /* inflater */);
+
+ verify(mMenu).add(anyInt(), eq(MENU_FIX_CONNECTIVITY), anyInt(), anyInt());
}
@Test