Merge "Add cancel button for private dns dialog" into pi-dev am: 7fe599f542

am: ea1d9d17d1

Change-Id: I55cab617105d21ff42ed911e6b457ec662349811
This commit is contained in:
Lei Yu
2018-05-14 15:11:36 -07:00
committed by android-build-merger
3 changed files with 48 additions and 10 deletions

View File

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

View File

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

View File

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