This replaces the default implementation from Android-Components to add the
functionality to first navigate to the browser fragment before responding to
service workers' requests of opening new tabs.
This will register itself when the main activity is created and unregister
itself when that activity is destroyed to support requests even when the
activity is in background but prevent any leaks.
Use the new `ServiceWorkerSupport` AC components for this.
Had to be installed in `FenixApplication` since there is a circular dependency
between the initialization of the required engine the `tabsUseCases` arguments.
* Consume Nimbus FML plugin
* Convert Homescreen to use FML
* Convert nimbusValidation to use FML
* Convert legacy experiments to use the feature API and FML
Remove dead helper code and documentation
* Fixup failing test
Co-authored-by: Grisha Kruglov <gkruglov@mozilla.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
The latest geckoview-omni package correctly declares its capabilities,
including the `glean-native` one.
Additionally it is able to pick geckoview-omni over glean-native in all
configurations.
The Glean core native code is now shipped through GeckoView directly
(through its `-omni` packages).
For local tests we need a library matching the host-platform, which is
available in the glean-native package.
* Update Android Components version to 93.0.20210901143120.
* For https://github.com/mozilla-mobile/fenix/issues/21043 - Integrate AC changes
* Fix breaking API changes of RestoreAction
Co-authored-by: Mugurell <Mugurell@users.noreply.github.com>
Co-authored-by: Christian Sadilek <christian.sadilek@gmail.com>
This is to investigate the intermittent mockk class
generation/loading issues. Since we can not reproduce
locally and the failures are intermittent they could
be caused by us running unit tests in parallel.
This means no code will be generated by Kotlin Android Extensions for caching
views and also for @Parcelize annotated classes.
As recommended in the official documentation
https://developer.android.com/topic/libraries/view-binding/migration#gradle
we need to switch on using `kotlinx.parcelize.Parcelize` instead of
`import kotlinx.android.parcel.Parcelize`
For https://github.com/mozilla-mobile/fenix/issues/17917 - Remove the `kotlin-android-extensions` plugin
This means no code will be generated by Kotlin Android Extensions for caching
views and also for @Parcelize annotated classes.
As recommended in the official documentation
https://developer.android.com/topic/libraries/view-binding/migration#gradle
we need to switch on using `kotlinx.parcelize.Parcelize` instead of
`import kotlinx.android.parcel.Parcelize`
We disabled the allowaccessmodification proguard option because it broke
functionality or crashed the app (I can't rememeber). As far as we know,
the R8 bug was fixed in the R8 bundled with the Android Gradle Plugin
v4.1. We're now on AGP v7.0.0-rc1 so we should be able to revert this
now.
This commit reverts the following commits:
Revert "Proguard/r8: Do not allow access modification."
This reverts commit d2ec7c648856664c27b31831959fd2e83a580968.
Revert "Dump `proguard-android-optimize.txt` into local configuration for later modification"
This reverts commit c543ae338e0bce4a6e2395f3e72742d9c0d65042.
Now that the Glean Dictionary (https://dictionary.telemetry.mozilla.org)
has hit production, our guidance is to move away from generating
metrics.md files. The Glean Dictionary is a better solution for this task
for a couple of reasons:
1. The Glean Dictionary contains a complete reference of all metrics
and pings sent by an application (not just those defined in the
application itself, as is the case with the markdown documentation)
2. The Glean Dictionary provides additional context and links beyond
what is provided by the documentation (for example, information on
how to access metric information via BigQuery or GLAM) as well as
annotations provided by data scientists in the course of analyzing data
(see, for example, the commentary section for:
https://dictionary.telemetry.mozilla.org/apps/fenix/metrics/metrics_search_count).
This should also reduce some of the churn/burden on people when
they submit PRs, as there is no longer any need to update metrics.md
as a part of them.
Instead of using a timestamp this will synchronize the Nightly version with the version
of Gecko / A-C. So when using 90.0.20210426143115 then the Nightly version will be
90.0a1 - similar to what Firefox desktop uses.
Removes the recyclerview-selection library and replaces it with the
SelectionHolder/SelectionInteractor with a Store.
This is an implementation that's similar to what we have in other UI
lists (library).
Add multi-select mode to the BrowserTabsAdapter. It has the
functionality to:
- Enable multi-select mode on long-press.
- Enable multi-select mode when changed by an external function.
- Only works for normal tabs (as we currently have it).
Co-authored-by: "codrut.topliceanu" <codrut.topliceanu@softvision.ro>