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