Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 79c14393 authored by Weng Su's avatar Weng Su
Browse files

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
parent 628f12c1
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -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);
+31 −11
Original line number Diff line number Diff line
@@ -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() {
    public void onCreateOptionsMenu_isGuest_neverAddFixConnectivityMenu() {
        mNetworkProviderSettings.mIsGuest = true;

        mNetworkProviderSettings.onCreateOptionsMenu(mMenu, null /* inflater */);

        verify(mMenu, never()).add(anyInt(), eq(MENU_FIX_CONNECTIVITY), anyInt(), anyInt());
    }

    @Test
    public void onCreateOptionsMenu_isNotGuest_addFixConnectivityMenu() {
        mNetworkProviderSettings.mIsGuest = false;

        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();
        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));
        mNetworkProviderSettings.onCreateOptionsMenu(mMenu, null /* inflater */);

        verify(mMenu, never()).add(anyInt(), eq(MENU_FIX_CONNECTIVITY), anyInt(), anyInt());
    }

    @Test
    public void onCreateOptionsMenu_airplanModeOff_fixConnectivityMenuVisible() {
    public void onCreateOptionsMenu_isNotAirplaneModeOn_addFixConnectivityMenu() {
        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));
        mNetworkProviderSettings.onCreateOptionsMenu(mMenu, null /* inflater */);

        verify(mMenu).add(anyInt(), eq(MENU_FIX_CONNECTIVITY), anyInt(), anyInt());
    }

    @Test