..
This commit is contained in:
parent
3fefb5476f
commit
be016409d7
@ -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) {
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user