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

Commit ce51849a authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

Merge branch '1284-s-quad9' into 'v1-s'

Settings: Add Quad9 DNS as a private DNS provider

See merge request !170
parents 44354a26 e2e40d69
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -221,6 +221,9 @@
    <string name="use_ota_staging_popup_title">You are about to connect to /e/ OS test channel</string>
    <string name="use_ota_staging_popup_message">It will allow you to download and install test versions of /e/ OS. Those builds may be unstable, and should be used only for test purposes. Please accept only if you know what you are doing.</string>

	<!-- Private DNS -->
    <string name="private_dns_mode_quadnine" translatable="false">Quad9 DNS</string>

    <!-- /e/ Telemetry -->
    <string name="enable_telemetry">Enable /e/OS Telemetry</string>
    <string name="telemetry_details">Enable automatic bug reporting</string>
@@ -240,8 +243,4 @@
    <string name="e_version_pending_update_summary">/e/OS v<xliff:g id="version" example="6.0">%1$s</xliff:g> - update available</string>
    <string name="e_version_in_progress_update_summary">/e/OS v<xliff:g id="version" example="6.0">%1$s</xliff:g> - update in progress</string>
    <string name="e_version_reboot_pending_summary">/e/OS v<xliff:g id="version" example="6.0">%1$s</xliff:g> - installed reboot required</string>

    <!-- Private DNS -->
    <string name="private_dns_mode_quadnine" translatable="false">Quad9</string>
    <string name="private_dns_hostname_quadnine" translatable="false">dns.quad9.net</string>
</resources>
+5 −20
Original line number Diff line number Diff line
@@ -72,7 +72,7 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
    // DNS_MODE -> RadioButton id
    private static final Map<Integer, Integer> PRIVATE_DNS_MAP;

    // Only used in Settings, update on additions to ConnectivitySettingsUtils
    // Must match ConnectivitySettingsUtils
    private static final int PRIVATE_DNS_MODE_QUADNINE = 4;

    static {
@@ -165,15 +165,6 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
        final ContentResolver contentResolver = context.getContentResolver();

        mMode = ConnectivitySettingsManager.getPrivateDnsMode(context);
        if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) {
            final String privateDnsHostname =
                    ConnectivitySettingsManager.getPrivateDnsHostname(context);
            final String quadNineHostname =
                    context.getString(R.string.private_dns_hostname_quadnine);
            if (privateDnsHostname.equals(quadNineHostname)) {
                mMode = PRIVATE_DNS_MODE_QUADNINE;
            }
        }

        mEditText = view.findViewById(R.id.private_dns_mode_provider_hostname);
        mEditText.addTextChangedListener(this);
@@ -186,9 +177,9 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
        // Initial radio button text
        final RadioButton offRadioButton = view.findViewById(R.id.private_dns_mode_off);
        offRadioButton.setText(R.string.private_dns_mode_off);
        final RadioButton quadNineRadioButton =
        final RadioButton quadnineRadioButton =
                view.findViewById(R.id.private_dns_mode_quadnine);
        quadNineRadioButton.setText(R.string.private_dns_mode_quadnine);
        quadnineRadioButton.setText(R.string.private_dns_mode_quadnine);
        final RadioButton opportunisticRadioButton =
                view.findViewById(R.id.private_dns_mode_opportunistic);
        opportunisticRadioButton.setText(R.string.private_dns_mode_opportunistic);
@@ -212,21 +203,15 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat
    public void onClick(DialogInterface dialog, int which) {
        if (which == DialogInterface.BUTTON_POSITIVE) {
            final Context context = getContext();
            int modeToSet = mMode;
            if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) {
                // Only clickable if hostname is valid, so we could save it safely
                ConnectivitySettingsManager.setPrivateDnsHostname(context,
                        mEditText.getText().toString());
            } else if (mMode == PRIVATE_DNS_MODE_QUADNINE) {
                final String quadNineHostname =
                        context.getString(R.string.private_dns_hostname_quadnine);
                ConnectivitySettingsManager.setPrivateDnsHostname(context, quadNineHostname);
                modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
            }

            FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
                    SettingsEnums.ACTION_PRIVATE_DNS_MODE, modeToSet);
            ConnectivitySettingsManager.setPrivateDnsMode(context, modeToSet);
                    SettingsEnums.ACTION_PRIVATE_DNS_MODE, mMode);
            ConnectivitySettingsManager.setPrivateDnsMode(context, mMode);
        }
    }

+7 −12
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ public class PrivateDnsPreferenceController extends BasePreferenceController
        Settings.Global.getUriFor(PRIVATE_DNS_SPECIFIER),
    };

    // Only used in Settings, update on additions to ConnectivitySettingsUtils
    // Must match ConnectivitySettingsUtils
    private static final int PRIVATE_DNS_MODE_QUADNINE = 4;

    private final Handler mHandler;
@@ -133,21 +133,16 @@ public class PrivateDnsPreferenceController extends BasePreferenceController
            case PRIVATE_DNS_MODE_OFF:
                return res.getString(R.string.private_dns_mode_off);
            case PRIVATE_DNS_MODE_QUADNINE:
                return dnsesResolved
                        ? res.getString(R.string.private_dns_mode_quadnine)
                        : res.getString(R.string.private_dns_mode_provider_failure);
            case PRIVATE_DNS_MODE_OPPORTUNISTIC:
                return dnsesResolved ? res.getString(R.string.private_dns_mode_on)
                        : res.getString(R.string.private_dns_mode_opportunistic);
            case PRIVATE_DNS_MODE_PROVIDER_HOSTNAME:
                if (!dnsesResolved) {
                    return res.getString(R.string.private_dns_mode_provider_failure);
                }
                final String privateDnsHostname =
                        ConnectivitySettingsManager.getPrivateDnsHostname(mContext);
                final String quadNineHostname =
                        res.getString(R.string.private_dns_hostname_quadnine);
                if (privateDnsHostname.equals(quadNineHostname)) {
                    return res.getString(R.string.private_dns_mode_quadnine);
                }
                return PrivateDnsModeDialogPreference.getHostnameFromSettings(cr);
                return dnsesResolved
                        ? PrivateDnsModeDialogPreference.getHostnameFromSettings(cr)
                        : res.getString(R.string.private_dns_mode_provider_failure);
        }
        return "";
    }