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

Commit 231fe615 authored by Lei Yu's avatar Lei Yu
Browse files

Add cancel button for private dns dialog

Also update the onclick method.

Change-Id: I69e92584e056a4d0a686153315b8df002d91e204
Fixes: 79479021
Test: RunSettingsRoboTests
parent 3a9fbac5
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -97,6 +97,7 @@
        android:order="15"
        android:order="15"
        android:dialogTitle="@string/select_private_dns_configuration_dialog_title"
        android:dialogTitle="@string/select_private_dns_configuration_dialog_title"
        android:dialogLayout="@layout/private_dns_mode_dialog"
        android:dialogLayout="@layout/private_dns_mode_dialog"
        android:positiveButtonText="@string/save" />
        android:positiveButtonText="@string/save"
        android:negativeButtonText="@android:string/cancel" />


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


    @Override
    @Override
    public void onClick(DialogInterface dialog, int which) {
    public void onClick(DialogInterface dialog, int which) {
        if (which == DialogInterface.BUTTON_POSITIVE) {
            final Context context = getContext();
            final Context context = getContext();
            if (mMode.equals(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME)) {
            if (mMode.equals(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME)) {
                // Only clickable if hostname is valid, so we could save it safely
                // 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);
                    MetricsProto.MetricsEvent.ACTION_PRIVATE_DNS_MODE, mMode);
            Settings.Global.putString(context.getContentResolver(), MODE_KEY, mMode);
            Settings.Global.putString(context.getContentResolver(), MODE_KEY, mMode);
        }
        }
    }


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


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