Add more 'Private DNS' options

This adds thirteen DNS providers as available presets.

Credit: CalyxOS
- Chirayu Desai <chirayudesai1@gmail.com>
  https://review.calyxos.org/c/CalyxOS/platform_frameworks_libs_net/+/9676

Signed-off-by: Tad <tad@spotco.us>
Change-Id: Ide577115925a2a4991332524f670899f4d33f2a3
Signed-off-by: Dmitrii <bankersenator@gmail.com>
Signed-off-by: Jis G Jacob <studiokeys@blissroms.org>
diff --git a/framework/src/android/net/ConnectivitySettingsManager.java b/framework/src/android/net/ConnectivitySettingsManager.java
index ba7df7f..01e0726 100644
--- a/framework/src/android/net/ConnectivitySettingsManager.java
+++ b/framework/src/android/net/ConnectivitySettingsManager.java
@@ -357,6 +357,84 @@
     public static final int PRIVATE_DNS_MODE_OFF = ConnectivitySettingsUtils.PRIVATE_DNS_MODE_OFF;
 
     /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_ADGUARD =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_ADGUARD;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_APPLIEDPRIVACY =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_APPLIEDPRIVACY;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_CLEANBROWSING =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_CLEANBROWSING;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_CIRA =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_CIRA;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_CZNIC =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_CZNIC;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_CLOUDFLARE =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_CLOUDFLARE;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_GOOGLE =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_GOOGLE;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_MULLVAD =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_MULLVAD;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_QUADNINE =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_QUADNINE;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_RESTENA =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_RESTENA;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_SWITCH =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_SWITCH;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_TWNIC =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_TWNIC;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_UNCENSOREDDNS =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_UNCENSOREDDNS;
+
+    /**
      * One of the private DNS modes that indicates the private DNS mode is automatic, which
      * will try to use the current DNS as private DNS.
      */
@@ -371,10 +449,89 @@
     public static final int PRIVATE_DNS_MODE_PROVIDER_HOSTNAME =
             ConnectivitySettingsUtils.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
 
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_ADGUARD = "dns.adguard.com";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_APPLIEDPRIVACY = "dot1.applied-privacy.net";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_CIRA = "protected.canadianshield.cira.ca";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_CZNIC = "odvr.nic.cz";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_CLEANBROWSING = "security-filter-dns.cleanbrowsing.org";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_CLOUDFLARE = "security.cloudflare-dns.com";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_GOOGLE = "dns.google";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_MULLVAD = "adblock.doh.mullvad.net";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_QUADNINE = "dns.quad9.net";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_RESTENA = "kaitain.restena.lu";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_SWITCH = "dns.switch.ch";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_TWNIC = "101.101.101.101";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_UNCENSOREDDNS = "unicast.censurfridns.dk";
+
+
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(value = {
             PRIVATE_DNS_MODE_OFF,
+            PRIVATE_DNS_MODE_ADGUARD,
+            PRIVATE_DNS_MODE_APPLIEDPRIVACY,
+            PRIVATE_DNS_MODE_CLEANBROWSING,
+            PRIVATE_DNS_MODE_CIRA,
+            PRIVATE_DNS_MODE_CZNIC,
+            PRIVATE_DNS_MODE_CLOUDFLARE,
+            PRIVATE_DNS_MODE_GOOGLE,
+            PRIVATE_DNS_MODE_MULLVAD,
+            PRIVATE_DNS_MODE_QUADNINE,
+            PRIVATE_DNS_MODE_RESTENA,
+            PRIVATE_DNS_MODE_SWITCH,
+            PRIVATE_DNS_MODE_TWNIC,
+            PRIVATE_DNS_MODE_UNCENSOREDDNS,
             PRIVATE_DNS_MODE_OPPORTUNISTIC,
             PRIVATE_DNS_MODE_PROVIDER_HOSTNAME,
     })
@@ -829,6 +986,19 @@
     public static void setPrivateDnsDefaultMode(@NonNull Context context,
             @NonNull @PrivateDnsMode int mode) {
         if (!(mode == PRIVATE_DNS_MODE_OFF
+                || mode == PRIVATE_DNS_MODE_ADGUARD
+                || mode == PRIVATE_DNS_MODE_APPLIEDPRIVACY
+                || mode == PRIVATE_DNS_MODE_CLEANBROWSING
+                || mode == PRIVATE_DNS_MODE_CIRA
+                || mode == PRIVATE_DNS_MODE_CZNIC
+                || mode == PRIVATE_DNS_MODE_CLOUDFLARE
+                || mode == PRIVATE_DNS_MODE_GOOGLE
+                || mode == PRIVATE_DNS_MODE_MULLVAD
+                || mode == PRIVATE_DNS_MODE_QUADNINE
+                || mode == PRIVATE_DNS_MODE_RESTENA
+                || mode == PRIVATE_DNS_MODE_SWITCH
+                || mode == PRIVATE_DNS_MODE_TWNIC
+                || mode == PRIVATE_DNS_MODE_UNCENSOREDDNS
                 || mode == PRIVATE_DNS_MODE_OPPORTUNISTIC
                 || mode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME)) {
             throw new IllegalArgumentException("Invalid private dns mode");