From bc4b584446e43b03647569a9f21460561582584a Mon Sep 17 00:00:00 2001 From: Ben Lin Date: Thu, 26 Jul 2018 12:06:48 -0700 Subject: [PATCH] Add a boolean flag to show or hide Private DNS in Network & internet. The following boolean flag is added: config_show_private_dns_settings When set to false, Private DNS will not be shown in Network & internet. Bug: 111398942 Test: make RunSettingsRoboTests ROBOTEST_FILTER=PrivateDnsPreferenceControllerTest Change-Id: I62911930680355b7fc109b295d8526bdb7eac0b3 --- res/values/bools.xml | 3 +++ .../settings/network/PrivateDnsPreferenceController.java | 4 +++- tests/robotests/res/values-mcc999/config.xml | 1 + .../network/PrivateDnsPreferenceControllerTest.java | 14 ++++++++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/res/values/bools.xml b/res/values/bools.xml index b4066059aa..ef8c5b6138 100644 --- a/res/values/bools.xml +++ b/res/values/bools.xml @@ -57,6 +57,9 @@ true + + true + false diff --git a/src/com/android/settings/network/PrivateDnsPreferenceController.java b/src/com/android/settings/network/PrivateDnsPreferenceController.java index ce3a9c0b96..1c62f81107 100644 --- a/src/com/android/settings/network/PrivateDnsPreferenceController.java +++ b/src/com/android/settings/network/PrivateDnsPreferenceController.java @@ -80,7 +80,9 @@ public class PrivateDnsPreferenceController extends BasePreferenceController @Override public int getAvailabilityStatus() { - return AVAILABLE; + return mContext.getResources().getBoolean(R.bool.config_show_private_dns_settings) + ? AVAILABLE + : UNSUPPORTED_ON_DEVICE; } @Override diff --git a/tests/robotests/res/values-mcc999/config.xml b/tests/robotests/res/values-mcc999/config.xml index 2d95b65790..1228a06eba 100644 --- a/tests/robotests/res/values-mcc999/config.xml +++ b/tests/robotests/res/values-mcc999/config.xml @@ -23,6 +23,7 @@ true false false + false true false false diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java index 47354c747e..eb17bcbbee 100644 --- a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java @@ -24,6 +24,8 @@ import static android.provider.Settings.Global.PRIVATE_DNS_MODE; import static android.provider.Settings.Global.PRIVATE_DNS_SPECIFIER; import static androidx.lifecycle.Lifecycle.Event.ON_START; import static androidx.lifecycle.Lifecycle.Event.ON_STOP; +import static com.android.settings.core.BasePreferenceController.AVAILABLE; +import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Matchers.anyString; @@ -57,6 +59,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.robolectric.annotation.Config; import org.robolectric.RuntimeEnvironment; import org.robolectric.shadow.api.Shadow; import org.robolectric.shadows.ShadowContentResolver; @@ -144,6 +147,17 @@ public class PrivateDnsPreferenceControllerTest { } @Test + public void getAvailibilityStatus_availableByDefault() { + assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); + } + + @Test + @Config(qualifiers = "mcc999") + public void getAvailabilityStatus_unsupportedWhenSet() { + assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); + } + + @Test public void goThroughLifecycle_shouldRegisterUnregisterSettingsObserver() { mLifecycle.handleLifecycleEvent(ON_START); verify(mContext, atLeastOnce()).getContentResolver(); -- 2.11.0