From 80fb8a7f18b5c215cd9c1c1a7ea28439c0d543ea Mon Sep 17 00:00:00 2001 From: deniscerri <64997243+deniscerri@users.noreply.github.com> Date: Sun, 13 Jul 2025 00:04:51 +0200 Subject: [PATCH] . --- .../webview/PoTokenWebViewLoginActivity.kt | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/webview/PoTokenWebViewLoginActivity.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/webview/PoTokenWebViewLoginActivity.kt index efc5ba11..14f17930 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/webview/PoTokenWebViewLoginActivity.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/webview/PoTokenWebViewLoginActivity.kt @@ -7,6 +7,8 @@ import android.os.Build import android.os.Bundle import android.view.MenuItem import android.webkit.CookieManager +import android.webkit.WebSettings +import android.webkit.WebStorage import android.webkit.WebView import android.widget.Toast import androidx.compose.foundation.layout.fillMaxSize @@ -69,6 +71,20 @@ class PoTokenWebViewLoginActivity : BaseActivity() { UiUtil.copyToClipboard(id.replace("\"", ""), this@PoTokenWebViewLoginActivity) } } + R.id.incognito -> { + m.isChecked = !m.isChecked + webView.apply { + configureIncognito(this, m.isChecked) + this.reload() + } + } + R.id.desktop -> { + m.isChecked = !m.isChecked + webView.apply { + configureDesktopMode(this, m.isChecked) + this.reload() + } + } else -> {} } true @@ -157,6 +173,50 @@ class PoTokenWebViewLoginActivity : BaseActivity() { } + private fun configureIncognito(webView: WebView, incognito: Boolean) { + if (!incognito) { + webView.settings.run { + cacheMode = WebSettings.LOAD_DEFAULT + domStorageEnabled = true + setGeolocationEnabled(true) + } + }else { + webView.settings.run { + cacheMode = WebSettings.LOAD_NO_CACHE + domStorageEnabled = false + setGeolocationEnabled(false) + } + } + + if (incognito) { + WebStorage.getInstance().deleteAllData() + } + + if (incognito) { + webView.apply { + clearHistory() + clearCache(true) + clearFormData() + } + } + } + + private fun configureDesktopMode(webView: WebView, desktop: Boolean) { + webView.settings.apply { + if (desktop) { + userAgentString = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 " + + "(KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" + useWideViewPort = true + loadWithOverviewMode = true + } else { + userAgentString = WebSettings.getDefaultUserAgent(webView.context) + useWideViewPort = false + loadWithOverviewMode = false + } + } + } + + @SuppressLint("SetJavaScriptEnabled", "JavascriptInterface") @Composable fun WebViewView(url: String) {