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