Remove Fix connectivity menu for guest
- Don't add the Fix connectivity menu if the user is a guest. Bug: 252995826 Test: manual test make RunSettingsRoboTests ROBOTEST_FILTER=NetworkProviderSettingsTest Change-Id: I42fbd4b931dfaaf42b9319d1085848405db9e1be
This commit is contained in:
@@ -212,6 +212,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
protected boolean mIsRestricted;
|
||||
@VisibleForTesting
|
||||
boolean mIsAdmin = true;
|
||||
@VisibleForTesting
|
||||
boolean mIsGuest = false;
|
||||
|
||||
@VisibleForTesting
|
||||
AirplaneModeEnabler mAirplaneModeEnabler;
|
||||
@@ -302,13 +304,14 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
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 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
|
||||
@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 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
}
|
||||
|
||||
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);
|
||||
|
@@ -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 @@ public class NetworkProviderSettingsTest {
|
||||
@Mock
|
||||
private ContextMenu mContextMenu;
|
||||
@Mock
|
||||
private Menu mMenu;
|
||||
@Mock
|
||||
private MenuItem mMenuItem;
|
||||
@Mock
|
||||
InternetUpdater mInternetUpdater;
|
||||
@@ -147,6 +150,8 @@ public class NetworkProviderSettingsTest {
|
||||
|
||||
@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 @@ public class NetworkProviderSettingsTest {
|
||||
}
|
||||
|
||||
@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
|
||||
|
Reference in New Issue
Block a user