Commit Graph

3574 Commits (03c4a159d4e54ae11946da37ec7b192bfe51fb59)

Author SHA1 Message Date
mcarare 03c4a159d4 For #18608: Also add default browser item in new menu.
(cherry picked from commit 8f1b3e03f1)
3 years ago
Arturo Mejia 87d1e823f1 Address WebExtensionBrowserMenuBuilder breaking change 3 years ago
Jonathan Almeida 69efd3a089 Close #19094: Open sign-in flow if no account is created for tabs tray 3 years ago
Jonathan Almeida cfaaf82541 No issue: Allow tabstray rewrite to ride the trains 3 years ago
Jonathan Almeida 46cec3d658 No issue: Fix regression in last tab deleted
When we allow the homescreen to handle undo for the last tab, we no
longer need to handle this ourselves with our own binding.

In the future, we should re-think this logic to be more robust and less
spread out across multiple screens.
3 years ago
Jonathan Almeida 1e09d50fd7 No issue: Fix the initial select mode check 3 years ago
Jonathan Almeida ad483903ed No issue: Do not create a new instance of TabsTrayStore
We only need one. :)
3 years ago
Jonathan Almeida 053453cc7f No issue: Enable tabs tray re-write by default in nightly 3 years ago
mcarare f94f8531f6 For #18496: Set activity theme in onCreate before call to super. 3 years ago
Jonathan Almeida 8b6d06e551 Close #19064: Focus on tab page with the BrowsingModeManager 3 years ago
Roger Yang cba68faac6 Closes #18946: Add undo toast for tabstray 3 years ago
Michael Comella cbc5df3c63 For #18836: address onCreate method length detekt issue. 3 years ago
Michael Comella d6999234b0 For #18836: add & integrate StartupTypeTelemetry. 3 years ago
Michael Comella a64540bd06 For #18836: add StartupPathProvider + tests. 3 years ago
Michael Comella ec65737cbb For #18836: address lint errors for StartupStateProvider*. 3 years ago
Michael Comella ea1d569837 For #18836: add getStartupStateForStartedActivity method. 3 years ago
Michael Comella 18507ec24c For #18836: add isHotStartForStartedActivity and tests. 3 years ago
Michael Comella e803cc61a2 For #18836: add isWarmStartForStartedActivity, tests. 3 years ago
Michael Comella ed1f38611f For #18836: shorten isColdStart... and rm questionable test.
The test failed with the rewrite of the code because it violates
one of our assumptions that only one Activity will be started. However,
since it doesn't rely on observed behavior and we made up the events,
it's value is questionable so it seems okay to remove, especially for
the gain of conciseness in the code.
3 years ago
codrut.topliceanu 3b7ba340e1 For #19023 - Expands tabsTray when tabs over certain number
TabsTray should be collapsed when there are only a few tabs on screen, otherwise it should go straight to STATE_EXPANDED.
3 years ago
Mugurell abe3036065 For #18439 - Open link from QR code only if activity is not null 3 years ago
Kate Glazko ae157e5679 For #18520: Add Empty Tab State To Browser Tray List 3 years ago
Jonathan Almeida 71240a5e0f No issue: Set tray dismissal from background tap 3 years ago
Jonathan Almeida 6c8b1a7e8f Close #19045: Dismiss tabstray when last tab in a page is closed 3 years ago
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
3 years ago
Gabriel Luong 2e562579ed
For #18274 - [Edit card] Update a saved credit card information (#19032) 3 years ago
Gabriel Luong f7c56ee6fa
For #18273 - [Edit card] Delete a saved credit card (#19029) 3 years ago
Codrut Topliceanu d8660341a1
For #18521 - Added scroll to current tab (#19021)
* For #18521 - Added scroll to current tab

* For #18521 - Addressed comments
3 years ago
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
3 years ago
Roger Yang bde54dc30f
Closes #19003: Add account setting to tabstray synced tab menu (#19034) 3 years ago
Roger Yang 8246f81c97
Closes #18948: Update tabstray telemetry (#19004) 3 years ago
mcarare cea869c276 For #18854: Add metrics for home screen being displayed. 3 years ago
mcarare 0ac78665d5 No issue: Fix indenting in onViewCreated. 3 years ago
mcarare 80d2bec150 For #18376: Add experiment for set default browser settings card. 3 years ago
mcarare dbae5dd3c0 For #18853: Add metrics for default browser new tab experiment. 3 years ago
mcarare 920c1285e4 For #18856: Add metrics for opening settings screen from home menu. 3 years ago
mcarare 445091db14 For #18815: Expand app bar on onboarding dismissal and browsing start. 3 years ago
Jonathan Almeida b9881372ef Close #19011: Always have a click listener in TabTrayViewHolder 3 years ago
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.
3 years ago
Gabriel Luong 6eb528f912
For #18272 - [Edit card] Display a saved card information in the Edit card screen (#18884) 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
Michael Comella 5560d7de01 For #18836: rename CreatedActivityLogEntry -> LogEntry.ActivityCreated and similar.
It's too much work to squash "correctly".
3 years ago
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.
3 years ago
Michael Comella 0cbedaadb1 For #18836: add StartupStateProvider. 3 years ago
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.
3 years ago
Michael Comella cde954f3a7 For #18836: add StartupActivityLog, tests. 3 years ago
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.
3 years ago
Jonathan Almeida 22e7410e4a Issue #18931: Move dialog adapter to collections package 3 years ago
Jonathan Almeida f1e7c1130b Issue #18931: Rename class to CollectionsListAdapter 3 years ago
Christian Sadilek 72230377f4 Upgrade to Android Components 75.0.20210413143139 3 years ago