This commit is contained in:
lunaticbum 2026-03-10 17:45:28 +09:00
parent 3fefb5476f
commit be016409d7
2 changed files with 29 additions and 1 deletions

View File

@ -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) {

View File

@ -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