diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/cookies/WebViewActivity.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/cookies/WebViewActivity.kt index 2d761440..90c209d7 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/more/cookies/WebViewActivity.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/cookies/WebViewActivity.kt @@ -158,7 +158,7 @@ class WebViewActivity : BaseActivity() { } webViewCompose.apply { - setContent { WebViewView(incognito, webViewClient) } + setContent { WebViewView(incognito, webViewClient, url) } } } @@ -184,6 +184,7 @@ class WebViewActivity : BaseActivity() { fun WebViewView( incognito: Boolean, webViewClient: WebViewClient, + url: String ) { val context = LocalContext.current val cookieManager = remember { CookieManager.getInstance() } @@ -228,6 +229,11 @@ class WebViewActivity : BaseActivity() { .padding(padding) .fillMaxSize(), factory = { webView }, + update = { + if (it.url != url) { + it.loadUrl(url) + } + } ) } } diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt index 4d0ef957..3ab4c8c7 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt @@ -225,6 +225,7 @@ class GenerateYoutubePoTokensFragment : Fragment() { val intent = Intent(requireContext(), PoTokenWebViewLoginActivity::class.java) intent.putExtra("url", "https://www.youtube.com") intent.putExtra("redirect_url", "https://www.youtube.com/embed/${editText.text.toString().getIDFromYoutubeURL()}") + intent.putExtra("no_auth", true) webPoTokenResultLauncher.launch(intent) } @@ -246,6 +247,7 @@ class GenerateYoutubePoTokensFragment : Fragment() { dialog.setPositiveButton(getString(R.string.auth)) { dialogInterface: DialogInterface, _: Int -> val intent = Intent(requireContext(), PoTokenWebViewLoginActivity::class.java) intent.putExtra("url", "https://www.youtube.com/account") + intent.putExtra("no_auth", false) webPoTokenResultLauncher.launch(intent) } 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 66c6ab2a..db2c4d03 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 @@ -66,6 +66,7 @@ class PoTokenWebViewLoginActivity : BaseActivity() { val url = intent.getStringExtra("url")!! var redirectUrl = intent.getStringExtra("redirect_url") + val noAuth = intent.getBooleanExtra("no_auth", false) cookiesViewModel = ViewModelProvider(this)[CookieViewModel::class.java] lifecycleScope.launch { @@ -187,6 +188,11 @@ class PoTokenWebViewLoginActivity : BaseActivity() { webView.loadUrl("https://www.youtube.com/robots.txt") } + if (savedInstanceState == null && noAuth) { + cookieManager.removeAllCookies(null) + cookieManager.flush() + } + webViewCompose.apply { setContent { WebViewView(url, webViewClient) } } @@ -233,6 +239,9 @@ class PoTokenWebViewLoginActivity : BaseActivity() { } } cookieManager.setAcceptThirdPartyCookies(this, true) + + this.webViewClient = webViewClient + this.webChromeClient = object : WebChromeClient() {} } } @@ -242,6 +251,11 @@ class PoTokenWebViewLoginActivity : BaseActivity() { .padding(padding) .fillMaxSize(), factory = { webView }, + update = { + if (it.url != url) { + it.loadUrl(url) + } + } ) } }