43 lines
1.3 KiB
Kotlin
43 lines
1.3 KiB
Kotlin
package org.mozilla.fenix.components.toolbar
|
|
|
|
import android.content.Context
|
|
import androidx.lifecycle.Lifecycle
|
|
import androidx.lifecycle.LifecycleObserver
|
|
import androidx.lifecycle.OnLifecycleEvent
|
|
import mozilla.components.browser.domains.autocomplete.DomainAutocompleteProvider
|
|
import mozilla.components.browser.toolbar.BrowserToolbar
|
|
import mozilla.components.feature.toolbar.ToolbarAutocompleteFeature
|
|
import mozilla.components.feature.toolbar.ToolbarFeature
|
|
import org.mozilla.fenix.ext.components
|
|
|
|
class ToolbarIntegration(
|
|
context: Context,
|
|
toolbar: BrowserToolbar,
|
|
domainAutocompleteProvider: DomainAutocompleteProvider,
|
|
sessionId: String? = null
|
|
) : LifecycleObserver {
|
|
init {
|
|
ToolbarAutocompleteFeature(toolbar).apply {
|
|
addDomainProvider(domainAutocompleteProvider)
|
|
}
|
|
}
|
|
|
|
private val toolbarFeature: ToolbarFeature = ToolbarFeature(
|
|
toolbar,
|
|
context.components.core.sessionManager,
|
|
context.components.useCases.sessionUseCases.loadUrl,
|
|
{ searchTerms -> context.components.useCases.searchUseCases.defaultSearch.invoke(searchTerms) },
|
|
sessionId
|
|
)
|
|
|
|
@OnLifecycleEvent(Lifecycle.Event.ON_START)
|
|
fun start() {
|
|
toolbarFeature.start()
|
|
}
|
|
|
|
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
|
|
fun stop() {
|
|
toolbarFeature.stop()
|
|
}
|
|
}
|