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

Commit ea1d9d17 authored by Lei Yu's avatar Lei Yu Committed by android-build-merger
Browse files

Merge "Add cancel button for private dns dialog" into pi-dev

am: 7fe599f5

Change-Id: I7a866a68c27503f174b7aa4fa3101264c9174ff5
parents 73328b18 7fe599f5
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -97,6 +97,7 @@
        android:order="15"
        android:dialogTitle="@string/select_private_dns_configuration_dialog_title"
        android:dialogLayout="@layout/private_dns_mode_dialog"
        android:positiveButtonText="@string/save" />
        android:positiveButtonText="@string/save"
        android:negativeButtonText="@android:string/cancel" />

</PreferenceScreen>
+11 −9
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreference imple

    @Override
    public void onClick(DialogInterface dialog, int which) {
        if (which == DialogInterface.BUTTON_POSITIVE) {
            final Context context = getContext();
            if (mMode.equals(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME)) {
                // Only clickable if hostname is valid, so we could save it safely
@@ -167,6 +168,7 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreference imple
                    MetricsProto.MetricsEvent.ACTION_PRIVATE_DNS_MODE, mMode);
            Settings.Global.putString(context.getContentResolver(), MODE_KEY, mMode);
        }
    }

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
+35 −0
Original line number Diff line number Diff line
@@ -28,7 +28,10 @@ import static org.mockito.Mockito.when;

import android.app.AlertDialog;
import android.app.Fragment;
import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.net.ConnectivityManager;
import android.provider.Settings;
import android.view.LayoutInflater;
import android.view.View;
@@ -150,4 +153,36 @@ public class PrivateDnsModeDialogPreferenceTest {
            assertThat(mSaveButton.isEnabled()).named("provider: " + invalid).isFalse();
        }
    }

    @Test
    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);

        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);
    }

    @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);

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

        // Still equal to OFF
        assertThat(Settings.Global.getString(contentResolver,
                Settings.Global.PRIVATE_DNS_MODE)).isEqualTo(
                ConnectivityManager.PRIVATE_DNS_MODE_OFF);
    }
}