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

Commit 10adff11 authored by Charles He's avatar Charles He Committed by Android (Google) Code Review
Browse files

Merge "Enforce wifi config lockdown on details page." into oc-mr1-dev

parents d57edb70 289af938
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1132,7 +1132,7 @@ public class WifiSettings extends RestrictedSettingsFragment
     * @param config The WiFi config.
     * @return true if the config is not editable through Settings.
     */
    static boolean isEditabilityLockedDown(Context context, WifiConfiguration config) {
    public static boolean isEditabilityLockedDown(Context context, WifiConfiguration config) {
        return !canModifyNetwork(context, config);
    }

+5 −1
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL;
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;

import static com.android.settings.wifi.WifiSettings.isEditabilityLockedDown;

import android.app.Fragment;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -464,7 +466,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
     * Returns whether the network represented by this preference can be forgotten.
     */
    private boolean canForgetNetwork() {
        return mWifiInfo != null && mWifiInfo.isEphemeral() || mWifiConfig != null;
        // TODO(65396674): create test for the locked down scenario
        return (mWifiInfo != null && mWifiInfo.isEphemeral())
                || (mWifiConfig != null && !isEditabilityLockedDown(mContext, mWifiConfig));
    }

    /**
+7 −1
Original line number Diff line number Diff line
@@ -18,12 +18,15 @@ package com.android.settings.wifi.details;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -138,7 +141,7 @@ public class WifiDetailPreferenceControllerTest {
    @Captor private ArgumentCaptor<View.OnClickListener> mForgetClickListener;
    @Captor private ArgumentCaptor<Preference> mIpv6AddressCaptor;

    private Context mContext = RuntimeEnvironment.application;
    private Context mContext;
    private Lifecycle mLifecycle;
    private LinkProperties mLinkProperties;
    private WifiDetailPreferenceController mController;
@@ -199,6 +202,7 @@ public class WifiDetailPreferenceControllerTest {
    public void setUp() {
        MockitoAnnotations.initMocks(this);

        mContext = spy(RuntimeEnvironment.application);
        mLifecycle = new Lifecycle();

        when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig);
@@ -230,6 +234,8 @@ public class WifiDetailPreferenceControllerTest {
                .thenReturn(mockHeaderController);
        when(mockHeaderController.setSummary(anyString())).thenReturn(mockHeaderController);

        doReturn(null).when(mContext).getSystemService(eq(Context.DEVICE_POLICY_SERVICE));

        setupMockedPreferenceScreen();
        mController = newWifiDetailPreferenceController();
    }