Commit Graph

40 Commits

Author SHA1 Message Date
Gabriel Luong 9654b4dfb1 For #27667 - Remove import-ordering from the list of disabled ktlint rules 2022-11-03 23:27:03 +00:00
Arturo Mejia 5cce4b5f15 For #3709: Add save to PDF UI. 2022-10-05 15:33:07 -04:00
mcarare ffcef5ff2e For #26844: Fix ktlint issues and remove them from baseline. 2022-09-09 16:52:09 +00:00
Alexandru2909 480ab3dca7 For #24454 - Remove Event.wrapper for SyncAccount metrics 2022-04-01 12:40:06 +00:00
Roger Yang d45543ec40 Close #14313: Always add copy to clipboard action in share actions 2022-03-12 16:24:15 +00:00
mcarare 64a8932e3c For #22477: Ignore null and empty values for share data title. 2022-01-18 17:18:35 +00:00
Sebastian Kaspari 8b5aef7def Update Kotlin to 1.5.10 (and Coroutines to 1.5.0). 2021-07-19 09:20:50 +00:00
Roger Yang 74c1cc82fb Closes #19921: Update appcompat and fragment dependencies to 1.3.x 2021-06-22 01:39:52 +00:00
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>
2021-04-13 20:48:45 -04:00
Christian Sadilek 1d5f74d865 Closes #16153: Intermittent failures of ShareControllerTest.handleShareToApp 2020-11-16 18:50:48 -05:00
Roger Yang b65c798450
For #16268 - Allowing multiple task while sharing (#16275) 2020-11-02 11:16:29 -05:00
Sebastian Kaspari 2fda22e857 Revert "For #12565: Pass metrics to share controller" for debug test failures.
This reverts commit bbaca06274.
2020-09-29 10:59:31 +02:00
Tiger Oakes bbaca06274 For #12565: Pass metrics to share controller 2020-09-28 20:05:50 -07:00
mcarare 6289da892c For #15310: Also catch ActivityNotFoundException when sharing to app. 2020-09-28 13:29:17 +03:00
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.
2020-08-12 13:40:58 +03:00
Christian Sadilek 7be56ce4fa For #11798: Allow sharing of reader view pages 2020-06-25 14:39:21 -04:00
person808 9272026b7e For #10193 - Remove page title when sharing links 2020-06-03 15:54:23 -07:00
ekager c4e83367f6 For #6832 - Fix various fragment not attached to a context crashes 2020-04-22 20:56:35 -07:00
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
2020-04-13 21:43:45 -07:00
mcarare 7fbb1640b6 For #8759 Use activityName instead of packageName as app identification 2020-03-24 17:10:19 +02:00
mcarare 16e2f20471 For #8975: Separate title from url with line break when sharing links 2020-03-05 21:17:36 -08:00
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
2020-02-19 10:36:58 -08:00
David Walsh 1ee0243efa Fix 4021 - Provide tab title during share 2020-01-22 14:42:27 -08:00
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
2020-01-09 10:40:14 -08:00
Sawyer Blatz c7c4ad051a
For #6413: Adds more snackbar positioning logic (#7444)
* For #6413: Adds more snackbar positioning logic

* Refactor
2020-01-02 14:31:52 -08:00
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
2019-12-30 14:43:15 -08:00
Ryan Kelly 31f2e80ab0 Use feature-accounts-push, which replaces feature-sendtab. 2019-12-13 16:42:28 -08:00
Tiger Oakes fe034226a3
For #5783 - Web Share with Fenix share sheet (#6883) 2019-12-10 10:57:06 -08:00
Tiger Oakes 7e8f079269
Use ShareData with ShareFragment (#6698) 2019-11-25 11:07:21 -08:00
Tiger Oakes fdd7400ccc Use ViewModel for share fragment 2019-11-14 16:25:50 -08:00
Tiger Oakes 333ff8c941 Fixes #4528 - Prevent share menu from jumping
Plus a bunch of docs and refactoring
2019-11-14 16:25:50 -08:00
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
2019-09-26 12:30:28 -07:00
Jeff Boek 976c840047 For #3077 - Replaces connect another device dialog with a scree 2019-09-18 17:24:43 -07:00
Mihai Adrian bc16061939 For #3371: Show snackbar message when share fails with crash (#5210) 2019-09-12 09:26:24 -07:00
Emily Kager 9a4610f068 For #2897 - Add Action States To Share Sheet 2019-09-11 11:32:26 -07:00
Sawyer Blatz e240de7e31 For #4908: Adds telemetry for send tab 2019-09-10 20:58:12 -07:00
Petru Lingurar 46b09395f8 For #5067 - Refactor ShareControllerTest following the use of SendTabUseCases 2019-09-03 12:01:26 -07:00
Petru Lingurar f7087e46e3 Fix #5067 - Refactor ShareController to use SendTabUseCases
Navigation between app fragments uses ShareTab as arguments. The newly used
SendTabUseCases uses TabData which is not Parcelable.
For minimal changes we'll keep both data classes and ShareController will know
how to map between the two.
Removed the `sessionId` property of ShareTab as it isn't needed anymore.
2019-09-03 12:01:26 -07:00
Mugurell bf5b0e5cda For 4007 - Add unit tests for the Share Interactor, Controller and list Adapters 2019-08-29 18:12:50 -07:00
Mugurell e165868a53 For #4007 - Add ShareController for handling ShareFragment's business logic
`ShareController` defines a contract with all possible `ShareFragment`'s
behavior changes and comes with a default implementation -
`DefaultShareController`.
It is to be delegated by all `ShareFragment`s contained Views' Interactors
following any user interactions.
2019-08-29 18:12:50 -07:00