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

Commit 5a0a7ef4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Factor in PRIVATE_DNS_MODE_DEFAULTSETTING value" into pi-dev

parents ef950c24 aee43968
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
package com.android.settings.network;

import static android.net.ConnectivityManager.PRIVATE_DNS_DEFAULT_MODE_FALLBACK;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
@@ -79,8 +80,11 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreference imple
    static final String HOSTNAME_KEY = Settings.Global.PRIVATE_DNS_SPECIFIER;

    public static String getModeFromSettings(ContentResolver cr) {
        final String mode = Settings.Global.getString(cr, MODE_KEY);
        return PRIVATE_DNS_MAP.containsKey(mode) ? mode : PRIVATE_DNS_MODE_OPPORTUNISTIC;
        String mode = Settings.Global.getString(cr, MODE_KEY);
        if (!PRIVATE_DNS_MAP.containsKey(mode)) {
            mode = Settings.Global.getString(cr, Settings.Global.PRIVATE_DNS_DEFAULT_MODE);
        }
        return PRIVATE_DNS_MAP.containsKey(mode) ? mode : PRIVATE_DNS_DEFAULT_MODE_FALLBACK;
    }

    public static String getHostnameFromSettings(ContentResolver cr) {
+6 −2
Original line number Diff line number Diff line
@@ -19,6 +19,9 @@ package com.android.settings.network;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
import static android.provider.Settings.Global.PRIVATE_DNS_DEFAULT_MODE;
import static android.provider.Settings.Global.PRIVATE_DNS_MODE;
import static android.provider.Settings.Global.PRIVATE_DNS_SPECIFIER;

import android.content.Context;
import android.content.ContentResolver;
@@ -51,8 +54,9 @@ public class PrivateDnsPreferenceController extends BasePreferenceController
    private static final String KEY_PRIVATE_DNS_SETTINGS = "private_dns_settings";

    private static final Uri[] SETTINGS_URIS = new Uri[]{
        Settings.Global.getUriFor(Settings.Global.PRIVATE_DNS_MODE),
        Settings.Global.getUriFor(Settings.Global.PRIVATE_DNS_SPECIFIER),
        Settings.Global.getUriFor(PRIVATE_DNS_MODE),
        Settings.Global.getUriFor(PRIVATE_DNS_DEFAULT_MODE),
        Settings.Global.getUriFor(PRIVATE_DNS_SPECIFIER),
    };

    private final Handler mHandler;
+5 −7
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.settings.network;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
import static android.provider.Settings.Global.PRIVATE_DNS_MODE;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doReturn;
@@ -158,24 +159,21 @@ public class PrivateDnsModeDialogPreferenceTest {
    public void testOnClick_positiveButtonClicked_saveData() {
        // Set the default settings to OFF
        final ContentResolver contentResolver = mContext.getContentResolver();
        Settings.Global.putString(contentResolver, Settings.Global.PRIVATE_DNS_MODE,
                ConnectivityManager.PRIVATE_DNS_MODE_OFF);
        Settings.Global.putString(contentResolver, PRIVATE_DNS_MODE, PRIVATE_DNS_MODE_OFF);

        mPreference.mMode = ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
        mPreference.onClick(null, DialogInterface.BUTTON_POSITIVE);

        // Change to OPPORTUNISTIC
        assertThat(Settings.Global.getString(contentResolver,
                Settings.Global.PRIVATE_DNS_MODE)).isEqualTo(
                ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC);
        assertThat(Settings.Global.getString(contentResolver, PRIVATE_DNS_MODE)).isEqualTo(
                PRIVATE_DNS_MODE_OPPORTUNISTIC);
    }

    @Test
    public void testOnClick_negativeButtonClicked_doNothing() {
        // Set the default settings to OFF
        final ContentResolver contentResolver = mContext.getContentResolver();
        Settings.Global.putString(contentResolver, Settings.Global.PRIVATE_DNS_MODE,
                ConnectivityManager.PRIVATE_DNS_MODE_OFF);
        Settings.Global.putString(contentResolver, PRIVATE_DNS_MODE, PRIVATE_DNS_MODE_OFF);

        mPreference.mMode = ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
        mPreference.onClick(null, DialogInterface.BUTTON_NEGATIVE);
+29 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static android.arch.lifecycle.Lifecycle.Event.ON_STOP;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
import static android.provider.Settings.Global.PRIVATE_DNS_DEFAULT_MODE;
import static android.provider.Settings.Global.PRIVATE_DNS_MODE;
import static android.provider.Settings.Global.PRIVATE_DNS_SPECIFIER;
import static com.google.common.truth.Truth.assertThat;
@@ -220,6 +221,34 @@ public class PrivateDnsPreferenceControllerTest {
                getResourceString(R.string.private_dns_mode_provider_failure));
    }

    @Test
    public void getSummary_PrivateDnsDefaultMode() {
        // Default mode is opportunistic, unless overridden by a Settings push.
        setPrivateDnsMode("");
        setPrivateDnsProviderHostname("");
        mController.updateState(mPreference);
        verify(mController, atLeastOnce()).getSummary();
        verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));

        reset(mController);
        reset(mPreference);
        // Pretend an emergency gservices setting has disabled default-opportunistic.
        Settings.Global.putString(mContentResolver, PRIVATE_DNS_DEFAULT_MODE, PRIVATE_DNS_MODE_OFF);
        mController.updateState(mPreference);
        verify(mController, atLeastOnce()).getSummary();
        verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_off));

        reset(mController);
        reset(mPreference);
        // The user interacting with the Private DNS menu, explicitly choosing
        // opportunistic mode, will be able to use despite the change to the
        // default setting above.
        setPrivateDnsMode(PRIVATE_DNS_MODE_OPPORTUNISTIC);
        mController.updateState(mPreference);
        verify(mController, atLeastOnce()).getSummary();
        verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));
    }

    private void setPrivateDnsMode(String mode) {
        Settings.Global.putString(mContentResolver, PRIVATE_DNS_MODE, mode);
    }