1
0
Fork 0

For #8897 - Don't remove all external sessions on back press

master
ekager 2020-03-02 18:06:18 -08:00 committed by Jeff Boek
parent 1f189aa4d1
commit 31cc7d9166
1 changed files with 12 additions and 5 deletions

View File

@ -124,6 +124,9 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
private var browserInitialized: Boolean = false private var browserInitialized: Boolean = false
private var initUIJob: Job? = null private var initUIJob: Job? = null
// We need this so we don't accidentally remove all external sessions on back press
private var sessionRemoved = false
@CallSuper @CallSuper
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
@ -417,7 +420,9 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
engineView.setDynamicToolbarMaxHeight(toolbarHeight) engineView.setDynamicToolbarMaxHeight(toolbarHeight)
} }
} }
if (!FeatureFlags.dynamicBottomToolbar) { updateLayoutMargins(inFullScreen) } if (!FeatureFlags.dynamicBottomToolbar) {
updateLayoutMargins(inFullScreen)
}
}, },
owner = this, owner = this,
view = view view = view
@ -553,10 +558,11 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
@CallSuper @CallSuper
override fun onBackPressed(): Boolean { override fun onBackPressed(): Boolean {
return findInPageIntegration.onBackPressed() || return sessionRemoved ||
fullScreenFeature.onBackPressed() || findInPageIntegration.onBackPressed() ||
sessionFeature.onBackPressed() || fullScreenFeature.onBackPressed() ||
removeSessionIfNeeded() sessionFeature.onBackPressed() ||
removeSessionIfNeeded()
} }
/** /**
@ -612,6 +618,7 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
val sessionManager = requireComponents.core.sessionManager val sessionManager = requireComponents.core.sessionManager
if (session.source == Session.Source.ACTION_VIEW) { if (session.source == Session.Source.ACTION_VIEW) {
sessionManager.remove(session) sessionManager.remove(session)
sessionRemoved = true
activity?.onBackPressed() activity?.onBackPressed()
} else { } else {
val isLastSession = val isLastSession =