For #8897 - Don't remove all external sessions on back press
parent
1f189aa4d1
commit
31cc7d9166
|
@ -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 =
|
||||||
|
|
Loading…
Reference in New Issue