android-components / mozilla.components.concept.awesomebar / AwesomeBar

# AwesomeBar

`interface AwesomeBar` (source)

Interface to be implemented by awesome bar implementations.

An awesome bar has multiple duties:

- Display Suggestion instances and invoking its callbacks once selected
- React to outside events: onInputStarted, onInputChanged, onInputCancelled.
- Query SuggestionProvider instances for new suggestions when the text changes.

### Types

Suggestion | `data class Suggestion` A Suggestion to be displayed by an AwesomeBar implementation.
SuggestionProvider | `interface SuggestionProvider` A SuggestionProvider is queried by an AwesomeBar whenever the text in the address bar is changed by the user. It returns a list of Suggestions to be displayed by the AwesomeBar.

### Functions

addProviders | `abstract fun addProviders(vararg providers: SuggestionProvider): Unit` Adds the following SuggestionProvider instances to be queried for Suggestions whenever the text changes.
asView | `open fun asView(): View` Casts this awesome bar to an Android View object.
onInputCancelled | `open fun onInputCancelled(): Unit` Fired when the user has cancelled their interaction with the awesome bar.
onInputChanged | `abstract fun onInputChanged(text: String): Unit` Fired whenever the user changes their input, after they have started interacting with the awesome bar.
onInputStarted | `open fun onInputStarted(): Unit` Fired when the user starts interacting with the awesome bar by entering text in the toolbar.
setOnStopListener | `abstract fun setOnStopListener(listener: () -> Unit): Unit` Adds a lambda to be invoked when the user has finished interacting with the awesome bar (e.g. selected a suggestion).

### Inheritors

BrowserAwesomeBar | `class BrowserAwesomeBar : RecyclerView, AwesomeBar` A customizable AwesomeBar implementation.