Merge "Add cancel button for private dns dialog" into pi-dev am: 7fe599f542
am: ea1d9d17d1
Change-Id: I55cab617105d21ff42ed911e6b457ec662349811
This commit is contained in:
@@ -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>
|
||||
|
@@ -156,16 +156,18 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreference imple
|
||||
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
final Context context = getContext();
|
||||
if (mMode.equals(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME)) {
|
||||
// Only clickable if hostname is valid, so we could save it safely
|
||||
Settings.Global.putString(context.getContentResolver(), HOSTNAME_KEY,
|
||||
mEditText.getText().toString());
|
||||
}
|
||||
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
|
||||
Settings.Global.putString(context.getContentResolver(), HOSTNAME_KEY,
|
||||
mEditText.getText().toString());
|
||||
}
|
||||
|
||||
FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
|
||||
MetricsProto.MetricsEvent.ACTION_PRIVATE_DNS_MODE, mMode);
|
||||
Settings.Global.putString(context.getContentResolver(), MODE_KEY, mMode);
|
||||
FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
|
||||
MetricsProto.MetricsEvent.ACTION_PRIVATE_DNS_MODE, mMode);
|
||||
Settings.Global.putString(context.getContentResolver(), MODE_KEY, mMode);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user