..
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() {
|
fun restoreSessionState() {
|
||||||
// 💡 저장할 때와 동일한 태그로 불러오기
|
// 💡 저장할 때와 동일한 태그로 불러오기
|
||||||
val stateJson = context.getSharedPreferences("GeckoPrefs", Context.MODE_PRIVATE)
|
val stateJson = context.getSharedPreferences("GeckoPrefs", Context.MODE_PRIVATE)
|
||||||
@ -353,12 +366,18 @@ open class GeckoWeb @JvmOverloads constructor(
|
|||||||
} else {
|
} else {
|
||||||
context.startService(intent)
|
context.startService(intent)
|
||||||
}
|
}
|
||||||
|
} else if (url.contains("blank")){
|
||||||
|
restoreSessionState()
|
||||||
|
} else {
|
||||||
|
saveCurrentSessionState()
|
||||||
}
|
}
|
||||||
onPageStartCallback?.invoke(url)
|
onPageStartCallback?.invoke(url)
|
||||||
}
|
}
|
||||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||||
onPageStopCallback?.invoke(success)
|
onPageStopCallback?.invoke(success)
|
||||||
saveCurrentSessionState()
|
if (success) {
|
||||||
|
saveCurrentSessionState()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onSessionStateChange(session: GeckoSession, sessionState: GeckoSession.SessionState) {
|
override fun onSessionStateChange(session: GeckoSession, sessionState: GeckoSession.SessionState) {
|
||||||
|
|||||||
@ -486,6 +486,15 @@ class TokiFragment : Fragment(), PagedTextViewInterface,KeyEventHandler {
|
|||||||
binding.lunaticBrowser.showBrowserAreaOnly(true)
|
binding.lunaticBrowser.showBrowserAreaOnly(true)
|
||||||
goToHome()
|
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 {
|
geckoWeb.let {
|
||||||
it.sessionTag = webcontentsName
|
it.sessionTag = webcontentsName
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user