|
|
@ -30,6 +30,7 @@ import kotlinx.android.synthetic.main.fragment_search.*
|
|
|
|
import kotlinx.android.synthetic.main.fragment_search.view.*
|
|
|
|
import kotlinx.android.synthetic.main.fragment_search.view.*
|
|
|
|
import kotlinx.android.synthetic.main.search_suggestions_onboarding.view.*
|
|
|
|
import kotlinx.android.synthetic.main.search_suggestions_onboarding.view.*
|
|
|
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
|
|
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
|
|
|
|
|
|
|
import mozilla.components.browser.state.selector.findTab
|
|
|
|
import mozilla.components.browser.toolbar.BrowserToolbar
|
|
|
|
import mozilla.components.browser.toolbar.BrowserToolbar
|
|
|
|
import mozilla.components.concept.storage.HistoryStorage
|
|
|
|
import mozilla.components.concept.storage.HistoryStorage
|
|
|
|
import mozilla.components.feature.qr.QrFeature
|
|
|
|
import mozilla.components.feature.qr.QrFeature
|
|
|
@ -86,11 +87,12 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
|
|
|
): View? {
|
|
|
|
): View? {
|
|
|
|
val activity = activity as HomeActivity
|
|
|
|
val activity = activity as HomeActivity
|
|
|
|
val args by navArgs<SearchFragmentArgs>()
|
|
|
|
val args by navArgs<SearchFragmentArgs>()
|
|
|
|
val session = args.sessionId
|
|
|
|
|
|
|
|
?.let(requireComponents.core.sessionManager::findSessionById)
|
|
|
|
val tabId = args.sessionId
|
|
|
|
|
|
|
|
val tab = tabId?.let { requireComponents.core.store.state.findTab(it) }
|
|
|
|
|
|
|
|
|
|
|
|
val view = inflater.inflate(R.layout.fragment_search, container, false)
|
|
|
|
val view = inflater.inflate(R.layout.fragment_search, container, false)
|
|
|
|
val url = session?.url.orEmpty()
|
|
|
|
val url = tab?.content?.url.orEmpty()
|
|
|
|
val currentSearchEngine = SearchEngineSource.Default(
|
|
|
|
val currentSearchEngine = SearchEngineSource.Default(
|
|
|
|
requireComponents.search.provider.getDefaultEngine(requireContext())
|
|
|
|
requireComponents.search.provider.getDefaultEngine(requireContext())
|
|
|
|
)
|
|
|
|
)
|
|
|
@ -103,6 +105,8 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
|
|
|
SearchFragmentStore(
|
|
|
|
SearchFragmentStore(
|
|
|
|
SearchFragmentState(
|
|
|
|
SearchFragmentState(
|
|
|
|
query = url,
|
|
|
|
query = url,
|
|
|
|
|
|
|
|
url = url,
|
|
|
|
|
|
|
|
searchTerms = tab?.content?.searchTerms.orEmpty(),
|
|
|
|
searchEngineSource = currentSearchEngine,
|
|
|
|
searchEngineSource = currentSearchEngine,
|
|
|
|
defaultEngineSource = currentSearchEngine,
|
|
|
|
defaultEngineSource = currentSearchEngine,
|
|
|
|
showSearchSuggestions = shouldShowSearchSuggestions(isPrivate),
|
|
|
|
showSearchSuggestions = shouldShowSearchSuggestions(isPrivate),
|
|
|
@ -111,7 +115,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
|
|
|
showClipboardSuggestions = requireContext().settings().shouldShowClipboardSuggestions,
|
|
|
|
showClipboardSuggestions = requireContext().settings().shouldShowClipboardSuggestions,
|
|
|
|
showHistorySuggestions = requireContext().settings().shouldShowHistorySuggestions,
|
|
|
|
showHistorySuggestions = requireContext().settings().shouldShowHistorySuggestions,
|
|
|
|
showBookmarkSuggestions = requireContext().settings().shouldShowBookmarkSuggestions,
|
|
|
|
showBookmarkSuggestions = requireContext().settings().shouldShowBookmarkSuggestions,
|
|
|
|
session = session,
|
|
|
|
tabId = tabId,
|
|
|
|
pastedText = args.pastedText,
|
|
|
|
pastedText = args.pastedText,
|
|
|
|
searchAccessPoint = args.searchAccessPoint
|
|
|
|
searchAccessPoint = args.searchAccessPoint
|
|
|
|
)
|
|
|
|
)
|
|
|
@ -234,7 +238,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
|
|
|
(activity as HomeActivity)
|
|
|
|
(activity as HomeActivity)
|
|
|
|
.openToBrowserAndLoad(
|
|
|
|
.openToBrowserAndLoad(
|
|
|
|
searchTermOrURL = result,
|
|
|
|
searchTermOrURL = result,
|
|
|
|
newTab = searchStore.state.session == null,
|
|
|
|
newTab = searchStore.state.tabId == null,
|
|
|
|
from = BrowserDirection.FromSearch
|
|
|
|
from = BrowserDirection.FromSearch
|
|
|
|
)
|
|
|
|
)
|
|
|
|
dialog.dismiss()
|
|
|
|
dialog.dismiss()
|
|
|
@ -265,7 +269,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
|
|
|
searchTermOrURL = SupportUtils.getGenericSumoURLForTopic(
|
|
|
|
searchTermOrURL = SupportUtils.getGenericSumoURLForTopic(
|
|
|
|
SupportUtils.SumoTopic.SEARCH_SUGGESTION
|
|
|
|
SupportUtils.SumoTopic.SEARCH_SUGGESTION
|
|
|
|
),
|
|
|
|
),
|
|
|
|
newTab = searchStore.state.session == null,
|
|
|
|
newTab = searchStore.state.tabId == null,
|
|
|
|
from = BrowserDirection.FromSearch
|
|
|
|
from = BrowserDirection.FromSearch
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -298,7 +302,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
|
|
|
(activity as HomeActivity)
|
|
|
|
(activity as HomeActivity)
|
|
|
|
.openToBrowserAndLoad(
|
|
|
|
.openToBrowserAndLoad(
|
|
|
|
searchTermOrURL = requireContext().components.clipboardHandler.url ?: "",
|
|
|
|
searchTermOrURL = requireContext().components.clipboardHandler.url ?: "",
|
|
|
|
newTab = searchStore.state.session == null,
|
|
|
|
newTab = searchStore.state.tabId == null,
|
|
|
|
from = BrowserDirection.FromSearch
|
|
|
|
from = BrowserDirection.FromSearch
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|