From 14b3f133383cdf692eb1212eb1cdb9ea323f9e67 Mon Sep 17 00:00:00 2001 From: tarsin Date: Sun, 28 May 2023 17:34:00 +0800 Subject: [PATCH] Use AndroidAsyncDns --- app/build.gradle.kts | 1 + app/src/main/java/com/hippo/ehviewer/client/EhDns.kt | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 276abced6..ac9c2c2e3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -212,6 +212,7 @@ dependencies { // https://square.github.io/okhttp/changelogs/changelog/ implementation(platform("com.squareup.okhttp3:okhttp-bom:5.0.0-alpha.11")) + implementation("com.squareup.okhttp3:okhttp-android") implementation("com.squareup.okhttp3:okhttp-coroutines") implementation("com.squareup.okio:okio-jvm:3.3.0") diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhDns.kt b/app/src/main/java/com/hippo/ehviewer/client/EhDns.kt index 56299908c..e0e582c9b 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhDns.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhDns.kt @@ -1,7 +1,10 @@ package com.hippo.ehviewer.client +import android.os.Build import com.hippo.ehviewer.Settings +import okhttp3.AsyncDns import okhttp3.Dns +import okhttp3.android.AndroidAsyncDns import java.net.InetAddress private typealias HostsMap = MutableMap> @@ -20,8 +23,10 @@ private fun HostsMap.hosts(vararg hosts: String, builder: HostMapBuilder.() -> U } } +private val dnsSystem = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) AsyncDns.toDns(AndroidAsyncDns.IPv4, AndroidAsyncDns.IPv6) else Dns.SYSTEM + object EhDns : Dns { - override fun lookup(hostname: String): List = builtInHosts[hostname].takeIf { Settings.builtInHosts } ?: Dns.SYSTEM.lookup(hostname) + override fun lookup(hostname: String): List = builtInHosts[hostname].takeIf { Settings.builtInHosts } ?: dnsSystem.lookup(hostname) operator fun contains(hostname: String) = builtInHosts.contains(hostname) && Settings.builtInHosts }