Commit Graph

21 Commits (2380d518081c7e003b8737bfd18af40d414ef8ee)

Author SHA1 Message Date
mcarare 4dd4e35982 For #19258: Replace default Android back button with a custom icon. 3 years ago
MarcLeclair 990bfa7e6d
16900 make navgraph inflation asynchronous (#18889)
* For #16900: implement async navgraph inflation

For #16900: removed nav graph from xml

For #16900: inflate navGraph programatically

For #16900: Made NavGraph inflation asynchronous

For #16900: Changed to block with runBlocking

For #16900: Refactored blocking call into a function

For 16900: NavGraph inflation is now async

We now attach the nav graph (or check if its attached) on every nav call ( an extension function for NavController).
This is done by checking the value of the job stored in PerfNavController.map which keeps track of the job with the NavController as a Key.
If the job hasn't been completed, it will block the main thread until the job is done. The job itself is responsible for attaching the navgraph
to the navcontroller (and the inflation of the latter too)

For 16900: rebased upstream master

For 16900: Rebase on master

For #16900: Fixed Async Navgraph navigation per review comments.

1)The Asynchronous method is now found in NavGraphProvider.kt. It creates a job on the IO dispatcher
2)The Job is tracked through a WeakHashMap from Controller --> NavGraph
3)The Coroutine scope doesn't use MainScope() anymore
4)The Coroutine is cancelled if the Activity is destroyed
5)The tests mockk the blockForNavGraphInflation method through the FenixReoboelectricTestApplication instead of calling the mock every setup()

For #16900: inflateNavGraphAsync now takes navController

For #16900: Pass lifecycleScope to NavGraphProvider

For #16900: removed unused mock

For #16900: Added linter rules for navigate calls

We need linting rules to make sure no one calls the NavController.navigate() methods

For #16900: Added TestRule to help abstract the mocks in the code

For 16900: Fix linting problems

For #16900: Cleaned duplicated code in tests

For #16900: cleaned up NavGraphTestRule for finished test

For #16900: had to revert an accidentally edited file

For #16900: rebased master

* For #16900: Review nits for async navgraph

This is composed of squash commits, the original messages can be found below:

-> DisableNavGraphProviderAssertionRule + kdoc.

Use test rule in RobolectricApplication.

Fix failing CrashReporterControllerTest

Fix blame by -> navigate in tests.

This commit was generated by the following commands only:
```
find app/src/test -type f -exec sed -i '' "/import org.mozilla.fenix.ext.navigateBlockingForAsyncNavGraph/d" {} \;
find app/src/test -type f -exec sed -i "" "s/navigateBlockingForAsyncNavGraph/navigate/g" {} \;
git checkout app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
```

Fix various blame

This is expected to be squashed into the first commit so, if so, it'd
fix the blame.

Move test rule to helpers pkg.

add missing license header

Add import change I missed

fix unused imports

Replace robolectricTestrunner with test rule.

Improve navGraphProvider docs

Remove unnecessary rule as defined by robolectric.

add clarifying comment to robolectric

remove unnecessary space

* For #16900: nit fixes for MozillaNavigateCheck and lint fixes

3 squash commits:
 *Changed violation message and fixed the lint rule for MozillaNavigateCheck
 *Added suppression to NavController.kt
 *Fixed detekt violations

* For 16900: Fixed failing tests

Co-authored-by: Michael Comella <michael.l.comella@gmail.com>
3 years ago
Sören Hentzschel 103c183265 For #14194 - avoid leak when opening the "Libraries that we use" screen 4 years ago
liuche b01dbeeebf
For #12046 - Renew telemetry probes before migration completion (#13958)
* For #12046 - Renew telemetry probes before migration completion
* Delay remaining probes renewal for one more month.
4 years ago
Gilbert Gilb's 9430546d12 for #7584 - fix about libraries toolbar theme
fixes #7584 #13970
4 years ago
Gilbert Gilb's 2743c37b40 Add custom Activity to show libraries licenses.
As Google's library for showing licences isn't open-source, this commit
reimplements its main Activity. This is in prevision to having an OSS
flavor of fenix.

We chose to not introduce dependencies to third-party libraries
such as AboutLibraries for now, and we'll stick to using Google's gradle
plugin for the dependencies extraction.

Fixes #7584

See also #162
4 years ago
ekager 8b923fc7a4 For #13135 - Replace about top header with Firefox Daylight 4 years ago
Tiger Oakes d9357f1e32 For #12801 - Extra debug menu trigger, disable if already triggered 4 years ago
Tiger Oakes 7287b5579f
Test settings about/advanced (#12023) 4 years ago
Sören Hentzschel 396cd61efa For #9712 - show "AC: " before AC version on "About" screen 4 years ago
ValentinTimisica 9f265fd62f Fixes #10064: Open help articles in normal tab instead of custom tab 4 years ago
Tiger Oakes 2397695fe5
For #10596 - Redirect moz://a URL (#10688) 4 years ago
Sebastian Kaspari d58c022619 Integrate activity for showing past crashes. 4 years ago
Michael Comella 4437ddd536 No issue: Move Do and OpenClass to utils pkg.
They were both in their packages by themselves, which feels unnecessary.
Unfortunately, a utils pkg is discouraged by kotlin but we don't have a
better place for them right now. Maybe an annotations/ pkg for the
latter?
4 years ago
Edouard Oger 394f386ac3 Add secret debug menu to override FxA servers 4 years ago
Amaan Marfatia 3dcfed3761 AboutPageAdapter doesn't use notifyDataSetChanged()
We make the AboutPageAdapter inherit from a ListAdapter so that we don't use notifyDataSetChanged().
4 years ago
Josh Vocal c15469595d For #7554: Add App Services Version to About Page 4 years ago
ValentinTimisica 2026c60136 For #6834: Adds telemetry for About page items
Didn't change the existing probe for 'whats new' item because we're already
collecting that info.
4 years ago
Sebastian Kaspari 80eb19294b AboutFragment: Use SupportUtils.getWhatsNewUrl(). 4 years ago
Sawyer Blatz 509fa112d0 For #6308: Remove unecessary telemetry & bump expiry date (#7793)
* For #6308: Remove unecessary telemetry

* For #6308: Bump expiry date on telemetry
4 years ago
ValentinTimisica c6c827f693 For #4776: Redesign and refactor the About Page
Added new items to be displayed.
4 years ago