From bb9b63194226053e1c4f93a7798a1253bd515a1e Mon Sep 17 00:00:00 2001 From: DaVinci9196 Date: Fri, 21 Mar 2025 17:06:22 +0800 Subject: [PATCH 1/4] fix invalid request --- .../microg/gms/accountsettings/ui/WebViewHelper.kt | 10 +++++++++- .../microg/gms/auth/consent/ConsentSignInActivity.kt | 7 +++++++ .../org/microg/vending/billing/ui/WebViewHelper.kt | 11 ++++++++++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt b/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt index 71bebf9f90..19c1a129c9 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt @@ -8,8 +8,10 @@ package org.microg.gms.accountsettings.ui import android.content.Intent import android.content.Intent.URI_INTENT_SCHEME import android.net.Uri +import android.os.Build import android.util.Log import android.view.View +import android.webkit.CookieManager import android.webkit.WebResourceRequest import android.webkit.WebSettings import android.webkit.WebView @@ -109,7 +111,13 @@ class WebViewHelper(private val activity: AppCompatActivity, private val webView } Log.d(TAG, "Opening $authUrl") webView.post { - loadWebViewUrl(authUrl) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + CookieManager.getInstance().removeAllCookies { + loadWebViewUrl(authUrl) + } + } else { + loadWebViewUrl(authUrl) + } } } catch (e: Exception) { Log.w(TAG, "Failed to get weblogin auth.", e) diff --git a/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt b/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt index d7b2a9cd1a..068a13dd62 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt @@ -163,4 +163,11 @@ class ConsentSignInActivity : Activity() { Log.d(TAG, "consent showView: ") } } + + override fun onStop() { + super.onStop() + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + CookieManager.getInstance().removeAllCookies(null) + } + } } \ No newline at end of file diff --git a/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt b/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt index e2a1237f82..2f5a4778c0 100644 --- a/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt +++ b/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt @@ -11,6 +11,7 @@ import android.content.Intent import android.net.Uri import android.util.Log import android.view.View +import android.webkit.CookieManager import android.webkit.WebResourceRequest import android.webkit.WebSettings import android.webkit.WebView @@ -95,7 +96,15 @@ class WebViewHelper( } if (Log.isLoggable(TAG, Log.DEBUG)) Log.d(TAG, "Opening $authUrl") webView.post { - loadWebViewUrl(authUrl) + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { + CookieManager.getInstance().removeAllCookies { + if (Log.isLoggable(TAG, Log.DEBUG)) Log.d(TAG, "Cookies removed") + loadWebViewUrl(authUrl) + } + } else { + loadWebViewUrl(authUrl) + } + } } catch (e: Exception) { if (Log.isLoggable(TAG, Log.DEBUG)) Log.d(TAG, "Failed to get weblogin auth.", e) From 60f9055f1992b7b0cfd803448c82f62f54f4a7fc Mon Sep 17 00:00:00 2001 From: DaVinci9196 Date: Tue, 25 Mar 2025 09:24:10 +0800 Subject: [PATCH 2/4] Add code compatibility under LOLLIPOP version --- .../kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt | 1 + .../kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt | 2 ++ .../main/java/org/microg/vending/billing/ui/WebViewHelper.kt | 1 + 3 files changed, 4 insertions(+) diff --git a/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt b/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt index 19c1a129c9..0899648de4 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt @@ -116,6 +116,7 @@ class WebViewHelper(private val activity: AppCompatActivity, private val webView loadWebViewUrl(authUrl) } } else { + CookieManager.getInstance().removeAllCookie() loadWebViewUrl(authUrl) } } diff --git a/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt b/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt index 068a13dd62..1acfde0777 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt @@ -168,6 +168,8 @@ class ConsentSignInActivity : Activity() { super.onStop() if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { CookieManager.getInstance().removeAllCookies(null) + } else { + CookieManager.getInstance().removeAllCookie() } } } \ No newline at end of file diff --git a/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt b/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt index 2f5a4778c0..ddf63dbde6 100644 --- a/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt +++ b/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt @@ -102,6 +102,7 @@ class WebViewHelper( loadWebViewUrl(authUrl) } } else { + CookieManager.getInstance().removeAllCookie() loadWebViewUrl(authUrl) } From 237e56bb0681b160a23ab59671c6653e10e18893 Mon Sep 17 00:00:00 2001 From: DaVinci9196 Date: Mon, 31 Mar 2025 09:32:55 +0800 Subject: [PATCH 3/4] Optimizing the code --- .../kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt | 4 ++-- .../main/java/org/microg/vending/billing/ui/WebViewHelper.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt b/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt index 0899648de4..1913840e53 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/WebViewHelper.kt @@ -8,7 +8,7 @@ package org.microg.gms.accountsettings.ui import android.content.Intent import android.content.Intent.URI_INTENT_SCHEME import android.net.Uri -import android.os.Build +import android.os.Build.VERSION.SDK_INT import android.util.Log import android.view.View import android.webkit.CookieManager @@ -111,7 +111,7 @@ class WebViewHelper(private val activity: AppCompatActivity, private val webView } Log.d(TAG, "Opening $authUrl") webView.post { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + if (SDK_INT >= 21) { CookieManager.getInstance().removeAllCookies { loadWebViewUrl(authUrl) } diff --git a/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt b/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt index ddf63dbde6..0aebfd3e9d 100644 --- a/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt +++ b/vending-app/src/main/java/org/microg/vending/billing/ui/WebViewHelper.kt @@ -7,8 +7,8 @@ package org.microg.vending.billing.ui import android.accounts.Account import android.accounts.AccountManager -import android.content.Intent import android.net.Uri +import android.os.Build.VERSION.SDK_INT import android.util.Log import android.view.View import android.webkit.CookieManager @@ -96,7 +96,7 @@ class WebViewHelper( } if (Log.isLoggable(TAG, Log.DEBUG)) Log.d(TAG, "Opening $authUrl") webView.post { - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { + if (SDK_INT >= 21) { CookieManager.getInstance().removeAllCookies { if (Log.isLoggable(TAG, Log.DEBUG)) Log.d(TAG, "Cookies removed") loadWebViewUrl(authUrl) From 6babfb0901f783466fdb9045e0359179c88e2563 Mon Sep 17 00:00:00 2001 From: DaVinci9196 Date: Tue, 1 Apr 2025 09:51:31 +0800 Subject: [PATCH 4/4] Optimizing the code II --- .../org/microg/gms/auth/consent/ConsentSignInActivity.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt b/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt index 1acfde0777..022eb59869 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/auth/consent/ConsentSignInActivity.kt @@ -8,7 +8,7 @@ package org.microg.gms.auth.consent import android.annotation.SuppressLint import android.app.Activity import android.graphics.Bitmap -import android.os.Build +import android.os.Build.VERSION.SDK_INT import android.os.Bundle import android.os.Message import android.os.Messenger @@ -92,7 +92,7 @@ class ConsentSignInActivity : Activity() { private fun initCookieManager() { val cookieManager = CookieManager.getInstance() - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + if (SDK_INT >= 21) { cookieManager.removeAllCookies { _ -> setCookiesAndLoadUrl(consentUrl!!, cookieManager) } @@ -166,7 +166,7 @@ class ConsentSignInActivity : Activity() { override fun onStop() { super.onStop() - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + if (SDK_INT >= 21) { CookieManager.getInstance().removeAllCookies(null) } else { CookieManager.getInstance().removeAllCookie()