Commit Graph

5305 Commits

Author SHA1 Message Date
Jonathan Almeida
2ef04c2a9e Close #19024: Fix intermittent test failure in NavigationInteractor 2021-04-16 02:34:23 +04:00
Jonathan Almeida
72c13f89f5 Issue #19030: Allow homescreen to be scrollable with extra content 2021-04-16 02:33:53 +04:00
Jonathan Almeida
71240a5e0f No issue: Set tray dismissal from background tap 2021-04-16 02:31:13 +04:00
Jonathan Almeida
6c8b1a7e8f Close #19045: Dismiss tabstray when last tab in a page is closed 2021-04-16 02:31:13 +04:00
Elise Richards
3d226429aa
For #18867: remove "signed in as" string in three-dot menu (#19035)
* Remove signed in as string from sync menu item

* Nav to sync account settings on click

For #18806: navigate to settings account page or sign in on clicking menu item.

* Confirm account exists and retrieve item title

* Remove string
2021-04-15 12:49:19 -05:00
Christian Sadilek
d036ba1338
Issue #18819: Hide Credit Card pref by default (for settings w/o icons) (#19058) 2021-04-15 13:29:22 -04:00
Gabriel Luong
2e562579ed
For #18274 - [Edit card] Update a saved credit card information (#19032) 2021-04-15 12:40:48 -04:00
Gabriel Luong
f7c56ee6fa
For #18273 - [Edit card] Delete a saved credit card (#19029) 2021-04-15 11:18:29 -04:00
Codrut Topliceanu
d8660341a1
For #18521 - Added scroll to current tab (#19021)
* For #18521 - Added scroll to current tab

* For #18521 - Addressed comments
2021-04-15 18:09:22 +03:00
Arturo Mejia
a3f4cee388 Telemetry for #18855, #18851 and #18857
For #18857 [Telemetry] Send a Glean event when users change their default browser

For #18855 [Telemetry] Send an event when users open the toolbar menu

For #18851 [Telemetry] Send an event when users click on the "set as default browser" entry in the toolbar menu
2021-04-15 11:29:13 +03:00
Roger Yang
bde54dc30f
Closes #19003: Add account setting to tabstray synced tab menu (#19034) 2021-04-15 00:46:26 -04:00
Mozilla L10n Automation Bot
afd007d741 Import l10n. 2021-04-15 00:36:37 +00:00
Roger Yang
8246f81c97
Closes #18948: Update tabstray telemetry (#19004) 2021-04-14 15:32:45 -04:00
mcarare
cea869c276 For #18854: Add metrics for home screen being displayed. 2021-04-14 21:21:28 +03:00
mcarare
0ac78665d5 No issue: Fix indenting in onViewCreated. 2021-04-14 21:21:28 +03:00
mcarare
80d2bec150 For #18376: Add experiment for set default browser settings card. 2021-04-14 19:28:38 +03:00
mcarare
dbae5dd3c0 For #18853: Add metrics for default browser new tab experiment. 2021-04-14 19:22:27 +03:00
mcarare
920c1285e4 For #18856: Add metrics for opening settings screen from home menu. 2021-04-14 18:50:15 +03:00
mcarare
445091db14 For #18815: Expand app bar on onboarding dismissal and browsing start. 2021-04-14 18:09:51 +03:00
Jonathan Almeida
b9881372ef Close #19011: Always have a click listener in TabTrayViewHolder 2021-04-14 19:08:39 +04:00
Jonathan Almeida
0a4927a495 Issue #18934: Do not nullify adapter on window detached
Previously, to fix a memory leak, we were removing the adapter reference
entirely in order to have the `onDetachedFromRecyclerView` callback
invoked. This causes a side-effect where we can no longer reference the
adapter any more when we re-attach.

The simpler solution is to just invoke the needed callback directly
instead.
2021-04-14 19:00:51 +04:00
Gabriel Luong
6eb528f912
For #18272 - [Edit card] Display a saved card information in the Edit card screen (#18884) 2021-04-14 10:56:23 -04:00
Oana Horvath
1128f921ad For #18986 & #19016: disabled failing tests changeThemeSetting & changeAccessibiltySettings 2021-04-14 13:34:58 +03: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
Mozilla L10n Automation Bot
973c891c5e Import l10n. 2021-04-14 00:32:38 +00:00
Michael Comella
5560d7de01 For #18836: rename CreatedActivityLogEntry -> LogEntry.ActivityCreated and similar.
It's too much work to squash "correctly".
2021-04-13 15:10:36 -07:00
Michael Comella
3ae80cda40 For #18836: note refactor in metrics docs. 2021-04-13 15:10:36 -07:00
Michael Comella
000bef020a For #18836: replace StartupActivityStateProvider with StartupStateProvider.
The StartupActivityStateProvider uses an imperative implementation,
driven by callbacks, to set the state of the application. This is hard
to follow as you need to understand which callbacks will be called in
which order. For example, to make sense of an implementation like this,
COLD, WARM, AND HOT would likely need to be implemented in separate
ActivityLifecycleCallbacks.

I feel the StartupStateProvider is an improvement because it leverages
the StartupActivityLog to query a linear state for a more understandable
implementation. Furthermore, it seems accessible to write COLD, WARM,
and HOT in the same class because they can all be approached the same
way.
2021-04-13 15:10:36 -07:00
Michael Comella
0cbedaadb1 For #18836: add StartupStateProvider. 2021-04-13 15:10:36 -07:00
Michael Comella
e864e74960 For #18836: prevent StartupActivityLog from growing infinitely.
We do this is as a separate commit over the original implementation
because it's simpler to implement the class without this optimization.
2021-04-13 15:10:36 -07:00
Michael Comella
cde954f3a7 For #18836: add StartupActivityLog, tests. 2021-04-13 15:10:36 -07:00
Jonathan Almeida
d342aeae48 Close #18931: Implement add to collections in interactor
We moved the collection dialog code out from the old fragment, because it
had nothing to do with tabs tray, and into the collections package to be
re-usable in other parts of the app.

In addition, we also make use of it in the new tabs tray's
NavigationInteractor.
2021-04-14 01:48:35 +04:00
Jonathan Almeida
22e7410e4a Issue #18931: Move dialog adapter to collections package 2021-04-14 01:48:35 +04:00
Jonathan Almeida
f1e7c1130b Issue #18931: Rename class to CollectionsListAdapter 2021-04-14 01:48:35 +04:00
Christian Sadilek
72230377f4 Upgrade to Android Components 75.0.20210413143139 2021-04-13 12:10:36 -04:00
Jonathan Almeida
cb60461bdd Close #18934: Remove adapter when deataching from window 2021-04-13 19:00:01 +04:00
Jonathan Almeida
1944a5ef6b Issue #18885: Dismiss FAB icon when tabs tray is closed 2021-04-13 18:59:16 +04:00
mcarare
ba218e638b For #18375: Add experiment for set default browser New Tab card. 2021-04-13 17:25:51 +03:00
Elise Richards
cbfba4478b Add ignores for intermittent toolbar tests 2021-04-13 13:21:29 +03:00
Mozilla L10n Automation Bot
6036bf035a Import l10n. 2021-04-13 00:55:06 +00:00
Jonathan Almeida
38a7921913 Close #18973: Fix references to info banner 2021-04-13 04:15:43 +04:00
Roger Yang
bc90e193a2 Closes #18522: Re-add call to action in tabs tray 2021-04-13 02:01:42 +04:00
Elise Richards
761d6babb9
For #18806: Show sync tabs or sync account sign in based on feature flag (#18859)
* Show sync tabs or sync account sign in based on feature flag. Sign in navigates to account settings on click.

* lint and nits
2021-04-12 16:01:33 -05:00
Roger Yang
b3f5e557cc
Closes #18899: Update content description string for synced tabs icon (#18963) 2021-04-12 15:16:38 -04:00
Jonathan Almeida
f3df2c73d9
Close #18862: Add multi-select banner to tabs tray (#18932)
* Issue #18862: Add new addBookmark BookmarksUseCase

* Issue #18862: Add class for state binding features

* Issue #18862: Add delete multiple tabs to tray interactor

* Issue #18862: Add new actions to navigation interactor

* Issue #18862: Enable select mode from main tray menu

* Issue #18862: Add menu when in select mode

* Close #18862: Add multi-select banner to tabs tray

* Close #18862: Add select support for handle UI

We apply various layout changes to the "handle" UI in the tabs tray when
switching modes. It isn't quite clear to my, why we do this, if it's
really needed to meet the end result, and if there is a better way.

For now, we're simplying moving over that logic that we can re-evaluate
at a later time.
2021-04-12 14:57:01 -04:00
Elise Richards
52209673fb
For #18960: Remove nav in homescreen three dot menu (#18962)
* Remove nav in homescreen three dot menu

* Remove back and forward items
2021-04-12 13:05:58 -05:00
Arturo Mejia
fc1739624d For #18608 only show the experiment for set default browser MenuItem when Nightly, Beta, Release are not the default browser 2021-04-12 13:26:52 -04:00
Sören Hentzschel
51df37cde5
For #18898 - implement quit button in page menu (#18942) 2021-04-12 12:02:14 -05:00
Gabriel Luong
c5e78f69ed
For #18940 - Remove reserved icon spacing for "Nimbus Experiments" setting preference (#18949)
Co-authored-by: Sören Hentzschel <kontakt@agenedia.com>
2021-04-12 12:32:55 -04:00
Oana Horvath
78f0086b7e For #17979 & #17840: fix and re-enable UI tests affected by main menu changes 2021-04-12 19:16:17 +03:00