There are two reasons why we need the name in addition to the ID: * When the user switches to a new "home" region then the previously selected search engine ID may no longer be in the list. However there may be a different version of that search engine with a different ID for this region. In this case we want to select that search engine - since for the user there's no visible difference. A famous example of that is "Google", which may have different IDs / search plugins depending on region. * Fenix saves the search engine name and we need to import that. Fenix (as well as Fennec) already used the name, so it should be safe to pick the selected search engine based on the name of the search engine.
Android Components > Browser > State
🔴 Note: This is an experimental component still under development. APIs may change at any time. It's not recommended to directly use this component in products yet.
The browser-state component is responsible for maintaining the centralized state of a browser engine.
The immutable BrowserState can be accessed and observed via the BrowserStore. Apps and other components can dispatch Actions on the store in order to trigger the creation of a new BrowserState.
Patterns and concepts this component uses are heavily inspired by Redux. Therefore the Redux documentation is an excellent resource for learning about some of those concepts.
Usage
Setting up the dependency
Use Gradle to download the library from maven.mozilla.org (Setup repository):
implementation "org.mozilla.components:browser-state:{latest-version}
License
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/