From 9dfc1324ad634e28a7271ca5188c3f3acb610c11 Mon Sep 17 00:00:00 2001 From: tarsin Date: Sat, 24 Jun 2023 16:05:35 +0800 Subject: [PATCH] Flush cookies after signin --- .../com/hippo/ehviewer/client/EhCookieStore.kt | 2 ++ .../ehviewer/ui/login/CookieSignInScreen.kt | 18 +++++++----------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhCookieStore.kt b/app/src/main/java/com/hippo/ehviewer/client/EhCookieStore.kt index 5f92d2c19..63dc95524 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhCookieStore.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhCookieStore.kt @@ -71,6 +71,8 @@ object EhCookieStore : CookieJar { if (EhUrl.DOMAIN_E in cookie.domain) manager.setCookie(EhUrl.HOST_E, cookie.toString()) else manager.setCookie(EhUrl.DOMAIN_EX, cookie.toString()) } + fun flush() = manager.flush() + fun getCookieHeader(url: HttpUrl): String { val cookies = get(url) val cookieHeader = StringBuilder() diff --git a/app/src/main/java/com/hippo/ehviewer/ui/login/CookieSignInScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/login/CookieSignInScreen.kt index 90fdb9d42..0057855c6 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/login/CookieSignInScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/login/CookieSignInScreen.kt @@ -92,20 +92,16 @@ fun CookieSignInScene(windowSizeClass: WindowSizeClass) { val noCookies = stringResource(R.string.from_clipboard_error) - fun newCookie(name: String, value: String, domain: String): Cookie { - return Cookie.Builder().name(name).value(value).domain(domain).expiresAt(Long.MAX_VALUE) - .build() - } + fun newCookie(name: String, value: String, domain: String) = Cookie.Builder().name(name).value(value).domain(domain).expiresAt(Long.MAX_VALUE).build() fun storeCookie(id: String, hash: String, igneous: String) { EhUtils.signOut() - val store = EhCookieStore - store.addCookie(newCookie(EhCookieStore.KEY_IPB_MEMBER_ID, id, EhUrl.DOMAIN_E)) - store.addCookie(newCookie(EhCookieStore.KEY_IPB_MEMBER_ID, id, EhUrl.DOMAIN_EX)) - store.addCookie(newCookie(EhCookieStore.KEY_IPB_PASS_HASH, hash, EhUrl.DOMAIN_E)) - store.addCookie(newCookie(EhCookieStore.KEY_IPB_PASS_HASH, hash, EhUrl.DOMAIN_EX)) - if (igneous.isBlank()) return - store.addCookie(newCookie(EhCookieStore.KEY_IGNEOUS, igneous, EhUrl.DOMAIN_EX)) + EhCookieStore.addCookie(newCookie(EhCookieStore.KEY_IPB_MEMBER_ID, id, EhUrl.DOMAIN_E)) + EhCookieStore.addCookie(newCookie(EhCookieStore.KEY_IPB_MEMBER_ID, id, EhUrl.DOMAIN_EX)) + EhCookieStore.addCookie(newCookie(EhCookieStore.KEY_IPB_PASS_HASH, hash, EhUrl.DOMAIN_E)) + EhCookieStore.addCookie(newCookie(EhCookieStore.KEY_IPB_PASS_HASH, hash, EhUrl.DOMAIN_EX)) + if (igneous.isNotBlank()) EhCookieStore.addCookie(newCookie(EhCookieStore.KEY_IGNEOUS, igneous, EhUrl.DOMAIN_EX)) + EhCookieStore.flush() } fun login() {