From 5369962189b4a2ca94b7dabfa06db32c77a18abc Mon Sep 17 00:00:00 2001 From: HugeFrog24 <62775760+HugeFrog24@users.noreply.github.com> Date: Sun, 5 Apr 2026 13:38:21 +0200 Subject: [PATCH] Fix Facebook login frozen/unresponsive in WebView. The Facebook OAuth page rendered but was completely uninteractive. Inputs couldn't be tapped or typed into, the content appeared behind an unskippable grey barrier. Root cause: WebLogin was missing several WebSettings that the original Sky OAuth implementation provides. Facebook's login page requires DOM storage, web database support, and third-party cookies to function. Without these, the page paints but its JavaScript cannot operate. These are local WebView settings - they don't phone home, add tracking, or include any SDK. Added the missing settings to match the original implementation: - setDomStorageEnabled (localStorage/sessionStorage for FB scripts) - setDatabaseEnabled (web database support) - setUseWideViewPort (proper viewport handling) - setAcceptThirdPartyCookies (required for cross-domain OAuth flow) --- .../java/git/artdeell/skymodloader/auth/WebLogin.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/git/artdeell/skymodloader/auth/WebLogin.java b/app/src/main/java/git/artdeell/skymodloader/auth/WebLogin.java index 2e056a9..10e3bd1 100644 --- a/app/src/main/java/git/artdeell/skymodloader/auth/WebLogin.java +++ b/app/src/main/java/git/artdeell/skymodloader/auth/WebLogin.java @@ -4,6 +4,7 @@ import android.app.Dialog; import android.view.Window; import android.view.WindowManager; +import android.os.Build; import android.webkit.CookieManager; import android.webkit.WebResourceRequest; import android.webkit.WebSettings; @@ -120,10 +121,15 @@ public boolean onCheckIsTextEditor() { webView.setWebViewClient(this); WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true); + settings.setDomStorageEnabled(true); + settings.setDatabaseEnabled(true); + settings.setUseWideViewPort(true); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true); + } if(this.accountType == SystemAccountType.kSystemAccountType_Google) { settings.setUserAgentString("Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36"); } - //webView.setInitialScale(110); webView.loadUrl(loginUrl); dialog.show(); Window dialogWindow = dialog.getWindow();