diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index 72ba8401a..b0b089ebc 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -100,7 +100,9 @@ class BrowserFragment : Fragment(), BackHandler { .subscribe { when (it) { is SearchAction.ToolbarTapped -> Navigation.findNavController(toolbar) - .navigate(BrowserFragmentDirections.actionBrowserFragmentToSearchFragment(null)) + .navigate(BrowserFragmentDirections.actionBrowserFragmentToSearchFragment( + requireComponents.core.sessionManager.selectedSession?.id + )) is SearchAction.ToolbarMenuItemTapped -> handleToolbarItemInteraction(it) } } @@ -109,6 +111,8 @@ class BrowserFragment : Fragment(), BackHandler { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + sessionId = BrowserFragmentArgs.fromBundle(arguments!!).sessionId + (activity as AppCompatActivity).supportActionBar?.hide() val sessionManager = requireComponents.core.sessionManager diff --git a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarUIView.kt b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarUIView.kt index cb1d59846..c9f2c7bc2 100644 --- a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarUIView.kt +++ b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarUIView.kt @@ -43,16 +43,28 @@ class AwesomeBarUIView( ) ) - view.addProviders(SessionSuggestionProvider(components.core.sessionManager, - components.useCases.tabsUseCases.selectTab), - HistoryStorageSuggestionProvider(components.core.historyStorage, - components.useCases.sessionUseCases.loadUrl), - SearchSuggestionProvider(components.search.searchEngineManager.getDefaultSearchEngine(this), - components.useCases.searchUseCases.defaultSearch, - SearchSuggestionProvider.Mode.MULTIPLE_SUGGESTIONS)) - - view.setOnStopListener { actionEmitter.onNext(AwesomeBarAction.ItemSelected) } + view.addProviders( + SessionSuggestionProvider( + components.core.sessionManager, + components.useCases.tabsUseCases.selectTab + ), + HistoryStorageSuggestionProvider( + components.core.historyStorage, + if (useNewTab) { + components.useCases.tabsUseCases.addTab + } else components.useCases.sessionUseCases.loadUrl + ), + SearchSuggestionProvider( + components.search.searchEngineManager.getDefaultSearchEngine(this), + if (useNewTab) { + components.useCases.searchUseCases.newTabSearch + } else components.useCases.searchUseCases.defaultSearch, + SearchSuggestionProvider.Mode.MULTIPLE_SUGGESTIONS + ) + ) } + + view.setOnStopListener { actionEmitter.onNext(AwesomeBarAction.ItemSelected) } } override fun updateView() = Consumer { diff --git a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarIntegration.kt b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarIntegration.kt index e38ce5eee..7fe094fd2 100644 --- a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarIntegration.kt +++ b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarIntegration.kt @@ -37,7 +37,8 @@ class ToolbarIntegration( .getDrawable(DefaultThemeManager.resolveAttribute(R.attr.browserToolbarHomeIcon, context), context.application.theme), context.getString(R.string.browser_home_button), - visible = { sessionManager.runWithSession(sessionId) { it.isCustomTabSession().not() } } + visible = { sessionId == null || + sessionManager.runWithSession(sessionId) { it.isCustomTabSession().not() } } ) { Navigation.findNavController(toolbar) .navigate(BrowserFragmentDirections.actionBrowserFragmentToHomeFragment()) @@ -54,8 +55,12 @@ class ToolbarIntegration( private val toolbarFeature: ToolbarFeature = ToolbarFeature( toolbar, context.components.core.sessionManager, - context.components.useCases.sessionUseCases.loadUrl, - { searchTerms -> context.components.useCases.searchUseCases.defaultSearch.invoke(searchTerms) }, + if (sessionId == null) { + context.components.useCases.tabsUseCases.addTab + } else context.components.useCases.sessionUseCases.loadUrl, + { searchTerms -> if (sessionId == null) { + context.components.useCases.searchUseCases.newTabSearch.invoke(searchTerms) + } else context.components.useCases.searchUseCases.defaultSearch.invoke(searchTerms) }, sessionId ) diff --git a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarUIView.kt b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarUIView.kt index 8487fe5ed..6d6025d83 100644 --- a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarUIView.kt +++ b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarUIView.kt @@ -73,7 +73,7 @@ class ToolbarUIView( ShippedDomainsProvider().also { it.initialize(this) }, components.core.historyStorage, components.core.sessionManager, - sessionId ?: components.core.sessionManager.selectedSession?.id + sessionId ) } }