From be016409d703f59980eff831d39861b7ff29818d Mon Sep 17 00:00:00 2001 From: lunaticbum Date: Tue, 10 Mar 2026 17:45:28 +0900 Subject: [PATCH] .. --- .../bums/lunatic/launcher/home/GeckoWeb.kt | 21 ++++++++++++++++++- .../launcher/home/tokiz/TokiFragment.kt | 9 ++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/bums/lunatic/launcher/home/GeckoWeb.kt b/app/src/main/kotlin/bums/lunatic/launcher/home/GeckoWeb.kt index 7b182c6f..248b5d5f 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/home/GeckoWeb.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/home/GeckoWeb.kt @@ -98,6 +98,19 @@ open class GeckoWeb @JvmOverloads constructor( } } + fun clearCurrentSessionState() { + lastSessionState?.let { state -> + val stateJson = state.toString() + // ๐Ÿ’ก ํ‚ค ์ด๋ฆ„์— sessionTag๋ฅผ ํฌํ•จ์‹œ์ผœ ๋ถ„๋ฆฌ ์ €์žฅ + context.getSharedPreferences("GeckoPrefs", Context.MODE_PRIVATE) + .edit() + .remove("gecko_session_state_$sessionTag") + .apply() + Log.d("GeckoWeb", "Saved State for $sessionTag") + } + } + + fun restoreSessionState() { // ๐Ÿ’ก ์ €์žฅํ•  ๋•Œ์™€ ๋™์ผํ•œ ํƒœ๊ทธ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ val stateJson = context.getSharedPreferences("GeckoPrefs", Context.MODE_PRIVATE) @@ -353,12 +366,18 @@ open class GeckoWeb @JvmOverloads constructor( } else { context.startService(intent) } + } else if (url.contains("blank")){ + restoreSessionState() + } else { + saveCurrentSessionState() } onPageStartCallback?.invoke(url) } override fun onPageStop(session: GeckoSession, success: Boolean) { onPageStopCallback?.invoke(success) - saveCurrentSessionState() + if (success) { + saveCurrentSessionState() + } } override fun onSessionStateChange(session: GeckoSession, sessionState: GeckoSession.SessionState) { diff --git a/app/src/main/kotlin/bums/lunatic/launcher/home/tokiz/TokiFragment.kt b/app/src/main/kotlin/bums/lunatic/launcher/home/tokiz/TokiFragment.kt index 0cd57dee..5cb4d633 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/home/tokiz/TokiFragment.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/home/tokiz/TokiFragment.kt @@ -486,6 +486,15 @@ class TokiFragment : Fragment(), PagedTextViewInterface,KeyEventHandler { binding.lunaticBrowser.showBrowserAreaOnly(true) goToHome() } + binding.lunaticBrowser.binding.btnHome.setOnLongClickListener { + binding.lunaticBrowser.geckoWeb.clearCurrentSessionState() + binding.lunaticBrowser.geckoWeb.restoreSessionState() + binding.pagedLayer.visibility = GONE + binding.lunaticBrowser.visibility = VISIBLE + binding.lunaticBrowser.showBrowserAreaOnly(true) + goToHome() + true + } geckoWeb.let { it.sessionTag = webcontentsName