rollback to deprecated webview to fix embed

This commit is contained in:
deniscerri 2026-01-31 10:27:48 +01:00
parent 52fced08ea
commit f2c3caa061
No known key found for this signature in database
GPG key ID: 95C43D517D830350

View file

@ -33,6 +33,9 @@ import com.deniscerri.ytdl.database.viewmodel.CookieViewModel
import com.deniscerri.ytdl.ui.BaseActivity import com.deniscerri.ytdl.ui.BaseActivity
import com.deniscerri.ytdl.util.UiUtil import com.deniscerri.ytdl.util.UiUtil
import com.deniscerri.ytdl.util.extractors.newpipe.potoken.NewPipePoTokenGenerator import com.deniscerri.ytdl.util.extractors.newpipe.potoken.NewPipePoTokenGenerator
import com.google.accompanist.web.AccompanistWebChromeClient
import com.google.accompanist.web.AccompanistWebViewClient
import com.google.accompanist.web.rememberWebViewState
import com.google.android.material.appbar.AppBarLayout import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.appbar.MaterialToolbar import com.google.android.material.appbar.MaterialToolbar
import com.google.android.material.button.MaterialButton import com.google.android.material.button.MaterialButton
@ -47,7 +50,7 @@ class PoTokenWebViewLoginActivity : BaseActivity() {
private lateinit var toolbar: MaterialToolbar private lateinit var toolbar: MaterialToolbar
private lateinit var generateBtn: MaterialButton private lateinit var generateBtn: MaterialButton
private lateinit var cookieManager: CookieManager private lateinit var cookieManager: CookieManager
private lateinit var webViewClient: WebViewClient private lateinit var webViewClient: AccompanistWebViewClient
private lateinit var cookiesViewModel: CookieViewModel private lateinit var cookiesViewModel: CookieViewModel
private lateinit var preferences: SharedPreferences private lateinit var preferences: SharedPreferences
@ -94,8 +97,8 @@ class PoTokenWebViewLoginActivity : BaseActivity() {
preferences = PreferenceManager.getDefaultSharedPreferences(this@PoTokenWebViewLoginActivity) preferences = PreferenceManager.getDefaultSharedPreferences(this@PoTokenWebViewLoginActivity)
preferences.edit().putString("genenerate_youtube_po_token_preferred_url", url).apply() preferences.edit().putString("genenerate_youtube_po_token_preferred_url", url).apply()
webViewClient = object : WebViewClient() { webViewClient = object : AccompanistWebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) { override fun onPageFinished(view: WebView, url: String?) {
super.onPageFinished(view, url) super.onPageFinished(view, url)
kotlin.runCatching { kotlin.runCatching {
toolbar.title = view?.title ?: "" toolbar.title = view?.title ?: ""
@ -168,7 +171,7 @@ class PoTokenWebViewLoginActivity : BaseActivity() {
redirectUrl?.apply { redirectUrl?.apply {
val extraHeaders: MutableMap<String?, String?> = val extraHeaders: MutableMap<String?, String?> =
HashMap() HashMap()
extraHeaders["Referer"] = url extraHeaders["Referer"] = "https://www.google.com/"
webView.loadUrl(this, extraHeaders) webView.loadUrl(this, extraHeaders)
} }
redirectUrl = null redirectUrl = null
@ -218,10 +221,16 @@ class PoTokenWebViewLoginActivity : BaseActivity() {
@SuppressLint("SetJavaScriptEnabled", "JavascriptInterface") @SuppressLint("SetJavaScriptEnabled", "JavascriptInterface")
@Composable @Composable
fun WebViewView(url: String, webViewClient: WebViewClient) { fun WebViewView(url: String, webViewClient: AccompanistWebViewClient) {
val context = LocalContext.current val context = LocalContext.current
val cookieManager = remember { CookieManager.getInstance() } val cookieManager = remember { CookieManager.getInstance() }
val webViewChromeClient = remember {
object : AccompanistWebChromeClient() {
}
}
val webView = remember { val webView = remember {
WebView(context).apply { WebView(context).apply {
webView = this webView = this
@ -239,23 +248,19 @@ class PoTokenWebViewLoginActivity : BaseActivity() {
} }
} }
cookieManager.setAcceptThirdPartyCookies(this, true) cookieManager.setAcceptThirdPartyCookies(this, true)
this.webViewClient = webViewClient
this.webChromeClient = object : WebChromeClient() {}
} }
} }
Scaffold(modifier = Modifier.fillMaxSize()) { padding -> Scaffold(modifier = Modifier.fillMaxSize()) { padding ->
AndroidView( com.google.accompanist.web.WebView(
state = rememberWebViewState(url),
client = webViewClient,
chromeClient = webViewChromeClient,
modifier = Modifier modifier = Modifier
.padding(padding) .padding(padding)
.fillMaxSize(), .fillMaxSize(),
factory = { webView }, captureBackPresses = false,
update = { factory = { webView}
if (it.url != url) {
it.loadUrl(url)
}
}
) )
} }
} }