mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-15 18:12:54 +00:00
Closes #3996: Remove workaround for opening custom tab in browser.
`EngineView` now allows releasing the `Session` so that it can be rendered by an other `EngineView` instance.
This commit is contained in:
parent
e4ff70c542
commit
e4e0d45c1b
@ -769,14 +769,22 @@ class BrowserFragment : Fragment(), BackHandler {
|
||||
}
|
||||
ToolbarMenu.Item.SaveToCollection -> showSaveToCollection()
|
||||
ToolbarMenu.Item.OpenInFenix -> {
|
||||
// To not get a "Display Already Acquired" error we need to force remove the engineView here
|
||||
swipeRefresh?.removeView(engineView as View)
|
||||
pendingOpenInBrowserIntent = Intent(context, IntentReceiverActivity::class.java)
|
||||
pendingOpenInBrowserIntent?.action = Intent.ACTION_VIEW
|
||||
getSessionById()?.customTabConfig = null
|
||||
// Release the session from this view so that it can immediately be rendered by a different view
|
||||
engineView.release()
|
||||
|
||||
// Strip the CustomTabConfig to turn this Session into a regular tab and then select it
|
||||
getSessionById()?.let {
|
||||
it.customTabConfig = null
|
||||
requireComponents.core.sessionManager.select(it)
|
||||
}
|
||||
|
||||
// Switch to the actual browser which should now display our new selected session
|
||||
pendingOpenInBrowserIntent = Intent(context, IntentReceiverActivity::class.java).also {
|
||||
it.action = Intent.ACTION_VIEW
|
||||
it.flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
}
|
||||
|
||||
// Close this activity since it is no longer displaying any session
|
||||
activity?.finish()
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user