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

Commit 7a8a9e4f authored by Weng Su's avatar Weng Su Committed by Android (Google) Code Review
Browse files

Merge "Remove Modify popup menu for non-admin" into tm-qpr-dev

parents 9144681d dcfbccbf
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.PowerManager;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.telephony.TelephonyManager;
@@ -598,10 +599,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
            return;
        }

        if (mSelectedWifiEntry.isSaved() && mSelectedWifiEntry.getConnectedState()
                != WifiEntry.CONNECTED_STATE_CONNECTED) {
            menu.add(Menu.NONE, MENU_ID_MODIFY, 0 /* order */, R.string.wifi_modify);
        }
        addModifyMenuIfSuitable(menu, mSelectedWifiEntry);
    }

    @VisibleForTesting
@@ -621,6 +619,14 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
        }
    }

    @VisibleForTesting
    void addModifyMenuIfSuitable(ContextMenu menu, WifiEntry wifiEntry) {
        if (mIsAdmin && wifiEntry.isSaved()
                && wifiEntry.getConnectedState() != WifiEntry.CONNECTED_STATE_CONNECTED) {
            menu.add(Menu.NONE, MENU_ID_MODIFY, 0 /* order */, R.string.wifi_modify);
        }
    }

    private boolean canForgetNetwork() {
        return mSelectedWifiEntry.canForget() && !WifiUtils.isNetworkLockedDown(getActivity(),
                mSelectedWifiEntry.getWifiConfiguration());
@@ -643,6 +649,12 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
                        () -> launchWifiDppConfiguratorActivity(mSelectedWifiEntry));
                return true;
            case MENU_ID_MODIFY:
                if (!mIsAdmin) {
                    Log.e(TAG, "Can't modify Wi-Fi because the user isn't admin.");
                    EventLog.writeEvent(0x534e4554, "237672190", UserHandle.myUserId(),
                            "User isn't admin");
                    return true;
                }
                showDialog(mSelectedWifiEntry, WifiConfigUiBase2.MODE_MODIFY);
                return true;
            default:
+24 −0
Original line number Diff line number Diff line
@@ -17,9 +17,11 @@ package com.android.settings.network;

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;
import static com.android.settings.network.NetworkProviderSettings.MENU_ID_SHARE;
import static com.android.settings.wifi.WifiConfigUiBase2.MODE_CONNECT;
import static com.android.settings.wifi.WifiConfigUiBase2.MODE_MODIFY;
import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_DISCONNECTED;

import static com.google.common.truth.Truth.assertThat;

@@ -729,6 +731,28 @@ public class NetworkProviderSettingsTest {
        verify(mContextMenu, never()).add(anyInt(), eq(MENU_ID_FORGET), anyInt(), anyInt());
    }

    @Test
    public void addModifyMenuIfSuitable_isAdmin_addMenu() {
        mNetworkProviderSettings.mIsAdmin = true;
        when(mWifiEntry.isSaved()).thenReturn(true);
        when(mWifiEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);

        mNetworkProviderSettings.addModifyMenuIfSuitable(mContextMenu, mWifiEntry);

        verify(mContextMenu).add(anyInt(), eq(MENU_ID_MODIFY), anyInt(), anyInt());
    }

    @Test
    public void addModifyMenuIfSuitable_isNotAdmin_notAddMenu() {
        mNetworkProviderSettings.mIsAdmin = false;
        when(mWifiEntry.isSaved()).thenReturn(true);
        when(mWifiEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);

        mNetworkProviderSettings.addModifyMenuIfSuitable(mContextMenu, mWifiEntry);

        verify(mContextMenu, never()).add(anyInt(), eq(MENU_ID_MODIFY), anyInt(), anyInt());
    }

    @Test
    public void getNonIndexableKeys_allowedChangeWifiState_keyNotReturned() {
        when(mWifiRestriction.isChangeWifiStateAllowed(mContext)).thenReturn(true);