* Remove "abi" product flavor and introduce "engine" product flavor.
This patch will allow us to build Fenix against GeckoView Nightly and GeckoView Beta by
introducing a new flavor dimension: engine = [geckoNightly, geckoBeta].
In addition to that it adds a "fenix" prefix to the nightly, beta and production flavors
to reduce the ambiguity between fenix beta/nightly and GeckoView beta/nightly.
For now the build types have the following engine variants enabled:
**debug**: geckoNightly, geckoBeta
Both variants enabled for local development and testing.
**forPerformanceTest**: geckoNightly, geckoBeta
Both variants enabled unless the perf team only cares about Nightly (tbd)
**fenixNightlyLegacy**: geckoBeta
Uses GeckoView Beta for now - the same version we ship production builds with (same behavior
as before). This release type will eventualyl be decommissioned once we switch to a separate
Nightly app on Google Play.
**fenixNightly**: geckoBeta
Uses GeckoView Beta for now - the same version we ship production builds with (same behavior
as before). Changing this build to use GeckoView Nightly is currently being discussed.
**fenixBeta**: geckoBeta
Fenix Beta uses GeckoView Beta.
**fenixProduction**
Fenix Production uses GeckoView Beta (69) currently.
* gradle.py/variant.py: Replace "abi" with "engine".
* Disable enableUnitTestBinaryResources until we can switch to Android Gradle plugin 3.5.
* Fenix nightly should use both geckoview nightly and beta
* Updates automation to use apk splitting and support different engine
The previous solution would result in a crash because the passed in
viewTreeObserver that would trigger onPreDraw would be invalid.
The proposed solution is simpler and ensures we'll always use the right
viewTreeObserver.
`FragmentPreDrawManager` is general enough that can be used by other Fragments
also, so I've added it to the `utils` package.
* Fixes https://github.com/mozilla-mobile/fenix/issues/4704. Overrides `setEnabled` for DeleteBrowsingDataItem to change view alpha when disabled and to toggle the checkbox `isEnabled` behavior based on the value provided.
* Updates CHANGELOG.md
* Removes unnecessary disabling of checkbox in DeleteBrowsingDataItem.kt
Updates CHANGELOG.md to reflect the component changed.
* For https://github.com/mozilla-mobile/fenix/issues/4396 - Rename BookmarkInteractor methods
Following the naming model used in other Interactors this too will use reactive
method names in the form of "on..." instead of the previous imperative model.
Kept the imperative naming model for the methods from `SelectionInteractor` as
they are a new addition and I'm not sure about the future direction.
* For https://github.com/mozilla-mobile/fenix/issues/4396 - Add a BookmarkController
It abstracts the Fragment behavior in a contract through which various
Interactors can inform about the specific View changes and can ask for
modifications in their container Fragment.
This contract and it's implementation - `DefaultBookmarkController` are the
result of extracting the container Fragment's business logic from
`BookmarkFragmentInteractor` in it's own standalone component.
* For https://github.com/mozilla-mobile/fenix/issues/4396 - Refactored Bookmark related tests
Added a new `BookmarkControllerTest` tests class which complements the new
`BookmarkController` to ensure that it properly operates on `BookmarkFragment`
Also refactored the existing `BookmarkFragmentInteractorTest` to accommodate
`BookmarkFragmentInteractor`'s now more specialized behavior.