Commit Graph

81 Commits (2380d518081c7e003b8737bfd18af40d414ef8ee)

Author SHA1 Message Date
Adam Novak c667cfa0ae Merge tag 'v89.1.1' into upstream-sync 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
Arturo Mejia 0e8dc6164d Target Android 11 4 years ago
Christian Sadilek 1d5f74d865 Closes #16153: Intermittent failures of ShareControllerTest.handleShareToApp 4 years ago
Roger Yang b65c798450
For #16268 - Allowing multiple task while sharing (#16275) 4 years ago
Sebastian Kaspari 2da24cd91d
Update Android Components, Kotlin, Gradle plugin (#16021)
* Closes #13262: Update AGP to 4

* Update to Mozilla Android Components 63.0.20201019090011.

* Update Kotlin to 1.4.10 and Coroutines to 1.3.9.

* Fix new compiler warnings.

* Fix compilation of lint rules module.

* Pin JNA version.

* Fix new lint errors.

Co-authored-by: Tiger Oakes <toakes@mozilla.com>
4 years ago
Sebastian Kaspari 2fda22e857 Revert "For #12565: Pass metrics to share controller" for debug test failures.
This reverts commit bbaca06274.
4 years ago
Tiger Oakes bbaca06274 For #12565: Pass metrics to share controller 4 years ago
mcarare 6289da892c For #15310: Also catch ActivityNotFoundException when sharing to app. 4 years ago
Grisha Kruglov 71b51146cb Update breaking changes in the FxA/Sync integration 4 years ago
Mugurell b993b94be1 For #12857 - Use Collection title when sharing tabs collection
Avoided passing the subject for sharing a collection of tabs in the ShareData
object since ShareData is part of a web standard.
4 years ago
ekager f4296fb77e For #13179 - Ensure we only dismiss share prompt once 4 years ago
Christian Sadilek 7be56ce4fa For #11798: Allow sharing of reader view pages 4 years ago
Tiger Oakes 4415702fa8 Add tests for share sheet 4 years ago
Tiger Oakes f0295048fa Remove Mockito 4 years ago
person808 9272026b7e For #10193 - Remove page title when sharing links 4 years ago
ekager ead3194d86 For #8759 - Allow recently used in share fragment to scroll 4 years ago
ValentinTimisica 9f265fd62f Fixes #10064: Open help articles in normal tab instead of custom tab 4 years ago
ekager 9ec1f8e2d8 For #8981 - Sort devices in share list by last access time 4 years ago
ekager c4e83367f6 For #6832 - Fix various fragment not attached to a context crashes 4 years ago
Jeff Boek 4cbb9aebaf
Cleans up nav_graph.xml (#9829)
* For #9751 - Cleans up homeFragment directions

* For #9751 - Uses global actions for fragments not owned by homeFragment

* For #9751 - Cleans up SearchFragment directions

* For #9751 - Removes settings action from DeleteBrowsingDataFragment

* For #9751 - Removes browser action from SettingsFragment

* For #9751 - Adds ManagePhoneFeature global action

* For #9751 - Clean up unused deletebrowsingfragment actions

* For #9751 - Cleans Up HistoryFragment actions

* For #9751 - Removes Home -> Search action

* For #9751 - Removes the Bookmark -> Browser action

* For #9751 - Cleans up bookmark fragment actions

* For #9751 - Cleans up actions from ShareController

* For #9751 - Removes defaultBrowserFragment to browserFragment action

* For #9751 - Removes about -> browser action

* For #9751 - Adds global action to TrackingProtectionFragment

* For #9751 - Removes exception -> browser action

* For #9751 - Removes login -> browser action

* For #9751 - Fixes LoginFragment directions

* For #9751 - Removes ExternalAppBrowser directions

* for #9751 - Cleans up actions

* For #9751 - Fixes unit tests

* For #9751 - Addresses nits in PR
5 years ago
ekager b8fba63be4 For #9890 - Do not display full screen snackbar with toolbar padding 5 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?
5 years ago
Abhay Agarwal 1c65bb8255 Closes #9495: Dismiss the ShareFragment in onPause() 5 years ago
Sawyer Blatz e3ed7ed268
Issue #9128 & #9222 & #9499: Refactors snackbar creation and fixes placement (#9628) 5 years ago
mcarare 7fbb1640b6 For #8759 Use activityName instead of packageName as app identification 5 years ago
mcarare 16e2f20471 For #8975: Separate title from url with line break when sharing links 5 years ago
Harshal Lele e318cd7d15 fix #8135 - remove getColorFromAttr 5 years ago
Mihai Branescu 9d972fa1d0 For #4231 added unit tests for most recent apps 5 years ago
Mihai Branescu fdbf63fb97 For #4231
Added kapt plugin + dependencies in order to be able to use Room
Added recent apps to share fragment (top 6)
Extracted dimens of share_to_apps.xml in the dimens file
5 years ago
Tiger Oakes 5faa22d611
Use createBlendModeColorFilterCompat (#8129) 5 years ago
David Walsh 1ee0243efa Fix 4021 - Provide tab title during share 5 years ago
Mihai Adrian 666b3d9627 For #7343: Handle sharing to multiple devices (#7409)
* For #7343 Do not allow multiple share to same device

* For #7343 Check current destination before dismissing share
5 years ago
Sawyer Blatz c7c4ad051a
For #6413: Adds more snackbar positioning logic (#7444)
* For #6413: Adds more snackbar positioning logic

* Refactor
5 years ago
Sawyer Blatz 3fb060f682
For #6413: Fixes snackbar positionining for bottom toolbar (#7415)
* For #6413: Fixes snackbar positionining for bottom toolbar

* For #6413: Cleans up snackbar usage
5 years ago
Suraj Shah 6cb3879caf For #7048: Network info migration (#7091)
* Fixes #7048.
Adds extension function to check if online or not based on capabilities
Modified `buildDeviceList`
Modifies tests

* Fixing lint error for max length
Fixing test in AppRequestInterceptorTest.kt

* Adds suppression for deprecation
Moving away from using anko for ConnectivityManager instance

* Creates ConnectivityManager extension component

* Fixes #7180
Refactors test cases to fix static mocks
5 years ago
Ryan Kelly 31f2e80ab0 Use feature-accounts-push, which replaces feature-sendtab. 5 years ago
Tiger Oakes fe034226a3
For #5783 - Web Share with Fenix share sheet (#6883) 5 years ago
Tiger Oakes 422faaf7c0 Add toolbar helpers (#6531) 5 years ago
Tiger Oakes 7e8f079269
Use ShareData with ShareFragment (#6698) 5 years ago
Tiger Oakes fdd7400ccc Use ViewModel for share fragment 5 years ago
Tiger Oakes 333ff8c941 Fixes #4528 - Prevent share menu from jumping
Plus a bunch of docs and refactoring
5 years ago
Tiger Oakes d5c3433041 Use the new fragment constructor 5 years ago
Denys M a4439ff373 For #3563. Use `ListAdapter` for App Share list. 5 years ago
Emily Kager e9a0f1f65d For #2078 - Filter Out Self in Share Sheet (#5641) 5 years ago
Colin Lee de93b05cac For #2754 Add tab cards to share sheet (#5493)
* For #2754 Add tab cards to share sheet

* For #2754: Fix background near rounded corners and ShareButtonAppearanceTest

* Add license to share_tab_item
5 years ago
Mugurell c5330c6880 For 5092 - Show a Snackbar with retry option if sharing to devices fails (#5158)
* For #5092 - Show a Snackbar with retry option if sharing to devices fails

ShareController will contain all the business logic for checking the result
status of the `share to device` operations. When this fails it will show a
snackbar which also offer the possibility to retry the just failed operation.
To allow this even in the event the user has closed the share fragment we'll
use a GlobalScope's coroutine.
Refactored out the TabsSharedCallback from ShareFragment because otherwise we
would have neede to sent through that the just failed operation. After the
refactor the ShareController is solely responsable for showing the right
snackbar and handling the retry actions.

* For #5092 - Refactor ShareControllerTest

* For #5092: Adds color theming of snackbars
5 years ago
ekager 464122fda1 For #5421 - Make share dialog scrim dismiss fragment 5 years ago
Jeff Boek 976c840047 For #3077 - Replaces connect another device dialog with a scree 5 years ago
Tiger Oakes 284cbab9ea Use .orEmpty() 5 years ago