From 0fb29174c5df57d6fa8fda5fdce7577dade563f2 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sat, 23 Apr 2022 18:38:50 +0300 Subject: [PATCH] Fix webview useragent --- .../org/koitharu/kotatsu/browser/BrowserActivity.kt | 4 +++- .../org/koitharu/kotatsu/browser/BrowserClient.kt | 4 ---- .../kotatsu/core/network/UserAgentInterceptor.kt | 11 ++++++++++- .../settings/sources/auth/SourceAuthActivity.kt | 4 +++- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt b/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt index fc9bd599c..442808bad 100644 --- a/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/browser/BrowserActivity.kt @@ -11,10 +11,11 @@ import android.view.MenuItem import androidx.core.graphics.Insets import androidx.core.view.isVisible import androidx.core.view.updatePadding +import com.google.android.material.R as materialR import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseActivity +import org.koitharu.kotatsu.core.network.UserAgentInterceptor import org.koitharu.kotatsu.databinding.ActivityBrowserBinding -import com.google.android.material.R as materialR @SuppressLint("SetJavaScriptEnabled") class BrowserActivity : BaseActivity(), BrowserCallback { @@ -28,6 +29,7 @@ class BrowserActivity : BaseActivity(), BrowserCallback } with(binding.webView.settings) { javaScriptEnabled = true + userAgentString = UserAgentInterceptor.userAgent } binding.webView.webViewClient = BrowserClient(this) binding.webView.webChromeClient = ProgressChromeClient(binding.progressBar) diff --git a/app/src/main/java/org/koitharu/kotatsu/browser/BrowserClient.kt b/app/src/main/java/org/koitharu/kotatsu/browser/BrowserClient.kt index f39da5fb5..5e801a93f 100644 --- a/app/src/main/java/org/koitharu/kotatsu/browser/BrowserClient.kt +++ b/app/src/main/java/org/koitharu/kotatsu/browser/BrowserClient.kt @@ -2,15 +2,11 @@ package org.koitharu.kotatsu.browser import android.graphics.Bitmap import android.webkit.WebView -import okhttp3.OkHttpClient import org.koin.core.component.KoinComponent -import org.koin.core.component.inject import org.koitharu.kotatsu.core.network.WebViewClientCompat class BrowserClient(private val callback: BrowserCallback) : WebViewClientCompat(), KoinComponent { - private val okHttp by inject(mode = LazyThreadSafetyMode.SYNCHRONIZED) - override fun onPageFinished(webView: WebView, url: String) { super.onPageFinished(webView, url) callback.onLoadingStateChanged(isLoading = false) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/network/UserAgentInterceptor.kt b/app/src/main/java/org/koitharu/kotatsu/core/network/UserAgentInterceptor.kt index af589dea3..b6491f154 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/network/UserAgentInterceptor.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/network/UserAgentInterceptor.kt @@ -1,10 +1,10 @@ package org.koitharu.kotatsu.core.network import android.os.Build +import java.util.* import okhttp3.Interceptor import okhttp3.Response import org.koitharu.kotatsu.BuildConfig -import java.util.* class UserAgentInterceptor : Interceptor { @@ -30,5 +30,14 @@ class UserAgentInterceptor : Interceptor { Build.DEVICE, Locale.getDefault().language ) + + val userAgentChrome + get() = ( + "Mozilla/5.0 (Linux; Android %s; %s) AppleWebKit/537.36 (KHTML, like Gecko) " + + "Chrome/100.0.4896.127 Mobile Safari/537.36" + ).format( + Build.VERSION.RELEASE, + Build.MODEL, + ) } } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/sources/auth/SourceAuthActivity.kt b/app/src/main/java/org/koitharu/kotatsu/settings/sources/auth/SourceAuthActivity.kt index 6ad087b80..41f4afa84 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/sources/auth/SourceAuthActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/sources/auth/SourceAuthActivity.kt @@ -11,18 +11,19 @@ import androidx.activity.result.contract.ActivityResultContract import androidx.core.graphics.Insets import androidx.core.view.isVisible import androidx.core.view.updatePadding +import com.google.android.material.R as materialR import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseActivity import org.koitharu.kotatsu.browser.BrowserCallback import org.koitharu.kotatsu.browser.BrowserClient import org.koitharu.kotatsu.browser.ProgressChromeClient +import org.koitharu.kotatsu.core.network.UserAgentInterceptor import org.koitharu.kotatsu.core.parser.MangaRepository import org.koitharu.kotatsu.core.parser.RemoteMangaRepository import org.koitharu.kotatsu.databinding.ActivityBrowserBinding import org.koitharu.kotatsu.parsers.MangaParserAuthProvider import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.utils.TaggedActivityResult -import com.google.android.material.R as materialR class SourceAuthActivity : BaseActivity(), BrowserCallback { @@ -52,6 +53,7 @@ class SourceAuthActivity : BaseActivity(), BrowserCallba } with(binding.webView.settings) { javaScriptEnabled = true + userAgentString = UserAgentInterceptor.userAgentChrome } binding.webView.webViewClient = BrowserClient(this) binding.webView.webChromeClient = ProgressChromeClient(binding.progressBar)