Merge "Enforce wifi config lockdown on details page." into oc-mr1-dev am: 10adff1163
am: e7cf5e6221
Change-Id: I356a58cadd3e19e61d9585f08e47c9d4cdcf4318
This commit is contained in:
@@ -1130,7 +1130,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
* @param config The WiFi config.
|
* @param config The WiFi config.
|
||||||
* @return true if the config is not editable through Settings.
|
* @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);
|
return !canModifyNetwork(context, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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.NET_CAPABILITY_VALIDATED;
|
||||||
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
|
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
|
||||||
|
|
||||||
|
import static com.android.settings.wifi.WifiSettings.isEditabilityLockedDown;
|
||||||
|
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -479,7 +481,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
* Returns whether the network represented by this preference can be forgotten.
|
* Returns whether the network represented by this preference can be forgotten.
|
||||||
*/
|
*/
|
||||||
private boolean canForgetNetwork() {
|
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));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -18,12 +18,15 @@ package com.android.settings.wifi.details;
|
|||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.ArgumentMatchers.nullable;
|
import static org.mockito.ArgumentMatchers.nullable;
|
||||||
import static org.mockito.Matchers.any;
|
import static org.mockito.Matchers.any;
|
||||||
import static org.mockito.Mockito.doNothing;
|
import static org.mockito.Mockito.doNothing;
|
||||||
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.inOrder;
|
import static org.mockito.Mockito.inOrder;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.reset;
|
import static org.mockito.Mockito.reset;
|
||||||
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.times;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
@@ -138,7 +141,7 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
@Captor private ArgumentCaptor<View.OnClickListener> mForgetClickListener;
|
@Captor private ArgumentCaptor<View.OnClickListener> mForgetClickListener;
|
||||||
@Captor private ArgumentCaptor<Preference> mIpv6AddressCaptor;
|
@Captor private ArgumentCaptor<Preference> mIpv6AddressCaptor;
|
||||||
|
|
||||||
private Context mContext = RuntimeEnvironment.application;
|
private Context mContext;
|
||||||
private Lifecycle mLifecycle;
|
private Lifecycle mLifecycle;
|
||||||
private LinkProperties mLinkProperties;
|
private LinkProperties mLinkProperties;
|
||||||
private WifiDetailPreferenceController mController;
|
private WifiDetailPreferenceController mController;
|
||||||
@@ -199,6 +202,7 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
|
|
||||||
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
mLifecycle = new Lifecycle();
|
mLifecycle = new Lifecycle();
|
||||||
|
|
||||||
when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig);
|
when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig);
|
||||||
@@ -233,6 +237,8 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
when(mockHeaderController.setSummary(anyString())).thenReturn(mockHeaderController);
|
when(mockHeaderController.setSummary(anyString())).thenReturn(mockHeaderController);
|
||||||
when(mockIconInjector.getIcon(anyInt())).thenReturn(new ColorDrawable());
|
when(mockIconInjector.getIcon(anyInt())).thenReturn(new ColorDrawable());
|
||||||
|
|
||||||
|
doReturn(null).when(mContext).getSystemService(eq(Context.DEVICE_POLICY_SERVICE));
|
||||||
|
|
||||||
setupMockedPreferenceScreen();
|
setupMockedPreferenceScreen();
|
||||||
mController = newWifiDetailPreferenceController();
|
mController = newWifiDetailPreferenceController();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user