Split versioning of compose compiler.
Enable Xjvm-default to allow inheriting from interfaces with '@JvmDefault' members
like AbstractComposeView, NestedScrollConnection.
After the update `TestCoroutineDispatcher`, `TestCoroutineScope` and
`runBlockingTest` are deprecated.
Instead of these new `TestDispatcher`, `TestScope` and `runTest` APIs are used.
Took the oportunity to also replace most of the `runBlocking` calls with the
new `runTest` specially designed for running coroutines in tests API.
The needed changes are around supporting exhaustive whens for sealed classes
as a new kotlin feature - https://kotlinlang.org/docs/whatsnew1530.html#exhaustive-when-statements-for-sealed-and-boolean-subjects
androidx_activity_compose was removed as a dependency since it isn't used.
Used 1.6.10 for Kotlin although 1.6.20 is available to prevent any issues with
Compose 1.1.1 reported as an error at compile time:
"e: This version (1.1.1) of the Compose Compiler requires Kotlin version 1.6.10
but you appear to be using Kotlin version 1.6.20 which is not known to be
compatible. Please fix your configuration (or
`suppressKotlinVersionCompatibilityCheck` but don't say I didn't warn you!)."
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.