From c4b2bcab6695df1a8a91dc971b3c81201d83e5f8 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Tue, 30 Jan 2024 19:50:37 +0800 Subject: [PATCH] Allow clearing igneous cookie without signing out --- .../kotlin/com/hippo/ehviewer/client/EhCookieStore.kt | 10 +++++++++- .../kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt | 5 +++++ app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/EhCookieStore.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/EhCookieStore.kt index b5805b89e..ac13a9990 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/EhCookieStore.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/EhCookieStore.kt @@ -7,6 +7,7 @@ import io.ktor.client.plugins.cookies.CookiesStorage import io.ktor.http.Cookie import io.ktor.http.Url import io.ktor.http.parseClientCookiesHeader +import io.ktor.http.renderCookieHeader import io.ktor.http.renderSetCookieHeader object EhCookieStore : CookiesStorage { @@ -30,11 +31,18 @@ object EhCookieStore : CookiesStorage { value = CONTENT_WARNING_NOT_SHOW, ) + fun clearIgneous() { + manager.setCookie( + EhUrl.HOST_EX, + renderSetCookieHeader(KEY_IGNEOUS, "", maxAge = 0, domain = EhUrl.DOMAIN_EX, path = "/"), + ) + } + fun flush() = manager.flush() fun getCookieHeader(url: String): String { return load(Url(url)).fastJoinToString("; ") { - "${it.name}=${it.value}" + renderCookieHeader(it) } } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt index d27e1dad0..d384b06a6 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt @@ -119,6 +119,11 @@ fun EhScreen(navigator: DestinationsNavigator) { EhUtils.signOut() navigator.popNavigate(SignInScreenDestination) } + if (igneous != null) { + setNegativeButton(R.string.settings_eh_clear_igneous) { _, _ -> + EhCookieStore.clearIgneous() + } + } }.show() } if (signin) { diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 547e55b6e..dd04e3c85 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -288,6 +288,7 @@ 身份 Cookie 可用于登录该账号。<br><b>注意数据安全</b><br><br>%s 游客模式 复制 Cookies + 清除 igneous EHentai 设置 EHentai 网站上的设置 我的标签 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index f4c705c52..851a020e1 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -288,6 +288,7 @@ 身份 Cookie 可用於登入該帳號。<br><b>請注意資料安全</b><br><br>%s 訪客模式 複製 Cookies + 清除 igneous EHentai 設定 EHentai 網站上的設定 我的標籤 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ddd564f1b..a2319cf72 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -329,6 +329,7 @@ Identity cookies can be used to sign in to this account.<br><b>KEEP IT SAFE</b><br><br>%s Guest mode Copy Cookies + Clear igneous EHentai settings Settings on EHentai website My tags