|
|
@ -43,7 +43,7 @@ class DefaultBrowserToolbarController(
|
|
|
|
private val findInPageLauncher: () -> Unit,
|
|
|
|
private val findInPageLauncher: () -> Unit,
|
|
|
|
private val nestedScrollQuickActionView: NestedScrollView,
|
|
|
|
private val nestedScrollQuickActionView: NestedScrollView,
|
|
|
|
private val engineView: EngineView,
|
|
|
|
private val engineView: EngineView,
|
|
|
|
private val currentSession: Session,
|
|
|
|
private val customTabSession: Session?,
|
|
|
|
private val viewModel: CreateCollectionViewModel,
|
|
|
|
private val viewModel: CreateCollectionViewModel,
|
|
|
|
private val getSupportUrl: () -> String,
|
|
|
|
private val getSupportUrl: () -> String,
|
|
|
|
private val openInFenixIntent: Intent,
|
|
|
|
private val openInFenixIntent: Intent,
|
|
|
@ -58,7 +58,7 @@ class DefaultBrowserToolbarController(
|
|
|
|
navController.nav(
|
|
|
|
navController.nav(
|
|
|
|
R.id.browserFragment,
|
|
|
|
R.id.browserFragment,
|
|
|
|
BrowserFragmentDirections.actionBrowserFragmentToSearchFragment(
|
|
|
|
BrowserFragmentDirections.actionBrowserFragmentToSearchFragment(
|
|
|
|
currentSession.id
|
|
|
|
customTabSession?.id
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -69,6 +69,7 @@ class DefaultBrowserToolbarController(
|
|
|
|
override fun handleToolbarItemInteraction(item: ToolbarMenu.Item) {
|
|
|
|
override fun handleToolbarItemInteraction(item: ToolbarMenu.Item) {
|
|
|
|
val sessionUseCases = context.components.useCases.sessionUseCases
|
|
|
|
val sessionUseCases = context.components.useCases.sessionUseCases
|
|
|
|
trackToolbarItemInteraction(item)
|
|
|
|
trackToolbarItemInteraction(item)
|
|
|
|
|
|
|
|
val currentSession = customTabSession ?: context.components.core.sessionManager.selectedSession
|
|
|
|
|
|
|
|
|
|
|
|
Do exhaustive when (item) {
|
|
|
|
Do exhaustive when (item) {
|
|
|
|
ToolbarMenu.Item.Back -> sessionUseCases.goBack.invoke(currentSession)
|
|
|
|
ToolbarMenu.Item.Back -> sessionUseCases.goBack.invoke(currentSession)
|
|
|
@ -88,7 +89,8 @@ class DefaultBrowserToolbarController(
|
|
|
|
currentSession
|
|
|
|
currentSession
|
|
|
|
)
|
|
|
|
)
|
|
|
|
ToolbarMenu.Item.Share -> {
|
|
|
|
ToolbarMenu.Item.Share -> {
|
|
|
|
currentSession.url.apply {
|
|
|
|
val currentUrl = currentSession?.url
|
|
|
|
|
|
|
|
currentUrl?.apply {
|
|
|
|
val directions = BrowserFragmentDirections.actionBrowserFragmentToShareFragment(this)
|
|
|
|
val directions = BrowserFragmentDirections.actionBrowserFragmentToShareFragment(this)
|
|
|
|
navController.nav(R.id.browserFragment, directions)
|
|
|
|
navController.nav(R.id.browserFragment, directions)
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -109,7 +111,8 @@ class DefaultBrowserToolbarController(
|
|
|
|
context.components.analytics.metrics.track(Event.FindInPageOpened)
|
|
|
|
context.components.analytics.metrics.track(Event.FindInPageOpened)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ToolbarMenu.Item.ReportIssue -> {
|
|
|
|
ToolbarMenu.Item.ReportIssue -> {
|
|
|
|
currentSession.url.apply {
|
|
|
|
val currentUrl = currentSession?.url
|
|
|
|
|
|
|
|
currentUrl?.apply {
|
|
|
|
val reportUrl = String.format(BrowserFragment.REPORT_SITE_ISSUE_URL, this)
|
|
|
|
val reportUrl = String.format(BrowserFragment.REPORT_SITE_ISSUE_URL, this)
|
|
|
|
context.components.useCases.tabsUseCases.addTab.invoke(reportUrl)
|
|
|
|
context.components.useCases.tabsUseCases.addTab.invoke(reportUrl)
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -121,25 +124,25 @@ class DefaultBrowserToolbarController(
|
|
|
|
context.components.analytics.metrics
|
|
|
|
context.components.analytics.metrics
|
|
|
|
.track(Event.CollectionSaveButtonPressed(TELEMETRY_BROWSER_IDENTIFIER))
|
|
|
|
.track(Event.CollectionSaveButtonPressed(TELEMETRY_BROWSER_IDENTIFIER))
|
|
|
|
|
|
|
|
|
|
|
|
viewModel.tabs = listOf(currentSessionAsTab)
|
|
|
|
viewModel.tabs = listOf(currentSessionAsTab)
|
|
|
|
val selectedSet = mutableSetOf(currentSessionAsTab)
|
|
|
|
val selectedSet = mutableSetOf(currentSessionAsTab)
|
|
|
|
viewModel.selectedTabs = selectedSet
|
|
|
|
viewModel.selectedTabs = selectedSet
|
|
|
|
viewModel.tabCollections =
|
|
|
|
viewModel.tabCollections =
|
|
|
|
context.components.core.tabCollectionStorage.cachedTabCollections.reversed()
|
|
|
|
context.components.core.tabCollectionStorage.cachedTabCollections.reversed()
|
|
|
|
viewModel.saveCollectionStep = viewModel.tabCollections.getStepForCollectionsSize()
|
|
|
|
viewModel.saveCollectionStep = viewModel.tabCollections.getStepForCollectionsSize()
|
|
|
|
viewModel.snackbarAnchorView = nestedScrollQuickActionView
|
|
|
|
viewModel.snackbarAnchorView = nestedScrollQuickActionView
|
|
|
|
viewModel.previousFragmentId = R.id.browserFragment
|
|
|
|
viewModel.previousFragmentId = R.id.browserFragment
|
|
|
|
|
|
|
|
|
|
|
|
val directions = BrowserFragmentDirections.actionBrowserFragmentToCreateCollectionFragment()
|
|
|
|
val directions = BrowserFragmentDirections.actionBrowserFragmentToCreateCollectionFragment()
|
|
|
|
navController.nav(R.id.browserFragment, directions)
|
|
|
|
navController.nav(R.id.browserFragment, directions)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ToolbarMenu.Item.OpenInFenix -> {
|
|
|
|
ToolbarMenu.Item.OpenInFenix -> {
|
|
|
|
// Release the session from this view so that it can immediately be rendered by a different view
|
|
|
|
// Release the session from this view so that it can immediately be rendered by a different view
|
|
|
|
engineView.release()
|
|
|
|
engineView.release()
|
|
|
|
|
|
|
|
|
|
|
|
// Strip the CustomTabConfig to turn this Session into a regular tab and then select it
|
|
|
|
// Strip the CustomTabConfig to turn this Session into a regular tab and then select it
|
|
|
|
currentSession.customTabConfig = null
|
|
|
|
customTabSession!!.customTabConfig = null
|
|
|
|
context.components.core.sessionManager.select(currentSession)
|
|
|
|
context.components.core.sessionManager.select(customTabSession)
|
|
|
|
|
|
|
|
|
|
|
|
// Switch to the actual browser which should now display our new selected session
|
|
|
|
// Switch to the actual browser which should now display our new selected session
|
|
|
|
context.startActivity(openInFenixIntent)
|
|
|
|
context.startActivity(openInFenixIntent)
|
|
|
|