diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index f2bedf58b33..b319703570f 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -1130,7 +1130,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); } diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java index b16e64543b4..aa23419e692 100644 --- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java +++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java @@ -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; @@ -479,7 +481,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)); } /** diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java index 86a5ba3fc8e..275f9a22d15 100644 --- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java @@ -18,12 +18,15 @@ package com.android.settings.wifi.details; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyInt; 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 mForgetClickListener; @Captor private ArgumentCaptor 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); @@ -233,6 +237,8 @@ public class WifiDetailPreferenceControllerTest { when(mockHeaderController.setSummary(anyString())).thenReturn(mockHeaderController); when(mockIconInjector.getIcon(anyInt())).thenReturn(new ColorDrawable()); + doReturn(null).when(mContext).getSystemService(eq(Context.DEVICE_POLICY_SERVICE)); + setupMockedPreferenceScreen(); mController = newWifiDetailPreferenceController(); }