diff options
author | Allan Wang <me@allanwang.ca> | 2021-09-12 20:01:28 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-12 20:01:28 -0700 |
commit | c77455ca08695a3d3470452d69bdead5dc961f4b (patch) | |
tree | b5e9ef2b512105bd6e70d8f8d7d0b7ad22e39ba4 | |
parent | 57f761d401dd23ec7699d21cfab174f4133f4cf3 (diff) | |
parent | 039d7a7c199c4d991dd143f3b096a0707100f6a3 (diff) | |
download | frost-c77455ca08695a3d3470452d69bdead5dc961f4b.tar.gz frost-c77455ca08695a3d3470452d69bdead5dc961f4b.tar.bz2 frost-c77455ca08695a3d3470452d69bdead5dc961f4b.zip |
Merge pull request #1802 from AllanWang/fix/multiple-accounts
Fix multi account switching
9 files changed, 30 insertions, 20 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt index 19e54f68..3766aef7 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt @@ -500,7 +500,7 @@ abstract class BaseMainActivity : ) positiveButton(R.string.kau_yes) { this@BaseMainActivity.launch { - fbCookie.logout(this@BaseMainActivity) + fbCookie.logout(this@BaseMainActivity, deleteCookie = true) } } negativeButton(R.string.kau_no) diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt index bce3aa48..8bf3345e 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt @@ -233,8 +233,8 @@ class SettingsActivity : KPrefActivity() { @SuppressLint("MissingSuperCall") override fun onCreate(savedInstanceState: Bundle?) { - activityThemer.setFrostTheme(forceTransparent = true) super.onCreate(savedInstanceState) + activityThemer.setFrostTheme(forceTransparent = true) animate = prefs.animate themeExterior(false) } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/facebook/FbCookie.kt b/app/src/main/kotlin/com/pitchedapps/frost/facebook/FbCookie.kt index ea1b0946..1a714374 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/facebook/FbCookie.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/facebook/FbCookie.kt @@ -48,8 +48,11 @@ class FbCookie @Inject internal constructor( ) { companion object { - private const val FB_COOKIE_DOMAIN = HTTPS_FACEBOOK_COM - private const val MESSENGER_COOKIE_DOMAIN = HTTPS_MESSENGER_COM + /** + * Domain information. Dot prefix still matters for Android browsers. + */ + private const val FB_COOKIE_DOMAIN = ".$FACEBOOK_COM" + private const val MESSENGER_COOKIE_DOMAIN = ".$MESSENGER_COM" } /** @@ -135,22 +138,24 @@ class FbCookie @Inject internal constructor( * Helper function to remove the current cookies * and launch the proper login page */ - suspend fun logout(context: Context) { + suspend fun logout(context: Context, deleteCookie: Boolean = true) { val cookies = arrayListOf<CookieEntity>() if (context is Activity) cookies.addAll(context.cookies().filter { it.id != prefs.userId }) - logout(prefs.userId) + logout(prefs.userId, deleteCookie) context.launchLogin(cookies, true) } /** * Clear the cookies of the given id */ - suspend fun logout(id: Long) { + suspend fun logout(id: Long, deleteCookie: Boolean = true) { L.d { "Logging out user" } - cookieDao.deleteById(id) - L.d { "Fb cookie deleted" } - L._d { id } + if (deleteCookie) { + cookieDao.deleteById(id) + L.d { "Fb cookie deleted" } + L._d { id } + } reset() } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt index ec8aec6c..4ba87209 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt @@ -133,7 +133,7 @@ private inline fun <reified T : WebOverlayActivityBase> Context.launchWebOverlay if (argUrl.isFacebookUrl && argUrl.contains("/logout.php")) { L.d { "Logout php found" } ctxCoroutine.launch { - fbCookie.logout(this@launchWebOverlayImpl) + fbCookie.logout(this@launchWebOverlayImpl, deleteCookie = false) } } else if (!(prefs.linksInDefaultApp && resolveActivityForUri(Uri.parse(argUrl)))) { startActivity<T>( diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt index 0d7bbb79..9a853dae 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt @@ -121,7 +121,7 @@ class FrostJSI(val web: FrostWebView) { fun loadLogin() { L.d { "Sign up button found; load login" } context.ctxCoroutine.launch { - fbCookie.logout(context) + fbCookie.logout(context, deleteCookie = false) } } diff --git a/app/src/main/play/en-US/whatsnew b/app/src/main/play/en-US/whatsnew index dc12e80e..1f46ec04 100644 --- a/app/src/main/play/en-US/whatsnew +++ b/app/src/main/play/en-US/whatsnew @@ -1,5 +1,4 @@ -v3.0.0 +v3.1.0 -* Removed email support. Please use GitHub for all inquiries as I no longer have time to look through all emails -* Added initial support for messenger.com (settings > appearance > main activity tabs) -* Fix swipe to refresh not disabling for certain pages
\ No newline at end of file +* Fix multi account signin +* Only clear out cookies on explicit logout; Facebook logout redirects no longer erase cookies
\ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index fcacacc3..17b12dcc 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -49,7 +49,7 @@ <style name="FrostTheme.Video" parent="FrostTheme.Overlay.Fade" /> - <style name="FrostTheme.Settings" parent="FrostTheme"> + <style name="FrostTheme.Settings" parent="FrostTheme.Transparent"> <item name="android:windowAnimationStyle">@style/KauSlideInFadeOut</item> </style> diff --git a/app/src/main/res/xml/frost_changelog.xml b/app/src/main/res/xml/frost_changelog.xml index bdece3ae..9a917099 100644 --- a/app/src/main/res/xml/frost_changelog.xml +++ b/app/src/main/res/xml/frost_changelog.xml @@ -6,13 +6,15 @@ <item text="" /> --> + <version title="v3.1.0" /> + <item text="Fix multi account signin" /> + <item text="Only clear out cookies on explicit logout; Facebook logout redirects no longer erase cookies" /> + <item text="" /> + <version title="v3.0.0" /> <item text="Removed email support. Please use GitHub for all inquiries as I no longer have time to look through all emails" /> <item text="Added initial support for messenger.com (settings > appearance > main activity tabs)" /> <item text="Fix swipe to refresh not disabling for certain pages" /> - <item text="" /> - <item text="" /> - <item text="" /> <version title="v2.4.7" /> <item text="Fix theme not always sticking on refresh" /> diff --git a/docs/Changelog.md b/docs/Changelog.md index 9f4712c5..346b7087 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -1,5 +1,9 @@ # Changelog +## v3.1.0 +* Fix multi account signin +* Only clear out cookies on explicit logout; Facebook logout redirects no longer erase cookies + ## v3.0.0 * Removed email support. Please use GitHub for all inquiries as I no longer have time to look through all emails * Added initial support for messenger.com (settings > appearance > main activity tabs) |