diff options
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/facebook/FbCookie.kt')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/facebook/FbCookie.kt | 16 |
1 files changed, 16 insertions, 0 deletions
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 4e932d09..eb3580d4 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/facebook/FbCookie.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/facebook/FbCookie.kt @@ -110,6 +110,22 @@ class FbCookie(private val prefs: Prefs, private val cookieDao: CookieDao) { } } + /** + * As far as I'm aware there is no way to remove a specific cookie. + * As we only care about fb and messenger cookies, this is a workaround + * in which we remove all cookies then add back the fb one. + */ + suspend fun removeMessengerCookie() { + withContext(Dispatchers.Main + NonCancellable) { + val fbCookie = webCookie + with(CookieManager.getInstance()) { + removeAllCookies() + suspendSetWebCookie(FB_COOKIE_DOMAIN, fbCookie) + flush() + } + } + } + suspend fun switchUser(id: Long) { val cookie = cookieDao.selectById(id) ?: return L.e { "No cookie for id" } switchUser(cookie) |