2
0
mirror of https://github.com/fork-maintainers/iceraven-browser synced 2024-11-03 23:15:31 +00:00
Commit Graph

3596 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
Mugurell
660f0609cb For #18122 - Update browser layout for find in page bar with bottom toolbar
With a dynamic bottom toolbar the  browser extends all the way to the bottom of
the screen and so when the find in page bar is shown it will be so above the
bottom part of the browser which may contain exactly the searched for items.

To fix the browser must effectively be placed at the top of the newly shown
find in page bar.
2021-04-09 14:48:51 +03:00
Mugurell
b36431a6df For #18616 - Update browser and toolbar layout when toolbar is at top
FindInPageIntegration which already updated the toolbar to make room for the
find in page bar now receives more data based on which it will be able to
better update the layout of BrowserFragment to to support showing the find in
page bar.
2021-04-09 14:48:51 +03:00
Sebastian Kaspari
dfb3c4c9bf Introduce process lifecycle observer to collect metrics about tabs when app goes to foreground/background. 2021-04-09 12:36:27 +02:00
Sebastian Kaspari
54d46c7e94 Move TelemetryMiddleware to telemetry sub package. 2021-04-09 12:36:27 +02:00
mcarare
c30d0f9240 For #18829: Adjust bookmark item color to UX specs. 2021-04-09 10:32:33 +03:00
Jonathan Almeida
9170ee3621 Update kdocs of navigation interactor 2021-04-09 06:50:05 +04:00
Jonathan Almeida
e422016367 Call stop in deattach for feature binding 2021-04-09 06:50:05 +04:00
Jonathan Almeida
6d09a8757c Close #18845: Adds swipe-to-delete to tabs tray refactor
Copied the TabsTouchHelper from the `tabtray` package here so we don't
need to re-write our own because there's nothing more to add.

We can hook this up with our tabs tray here by putting it in the
`BaseBrowserTrayList` for our normal and private tabs list.
2021-04-09 06:50:05 +04:00
Arturo Mejia
db9b3676d3 For #18608 Add experiment for set default browser MenuItem. 2021-04-08 15:58:43 -04:00
MarcLeclair
9d728ec168
For #17759: Added min SDK 23 to avoid crashes on android 5.0 and 5.1 (#18832)
* For #17759: Added min SDK 23 to avoid crashes on android 5.0 and 5.1

* For #17759: fixed Android code from INT to actual version name
2021-04-08 15:20:18 -04:00
Elise Richards
10f75a3606
For #17870 - Enable new three-dot menu redesign on nightly builds (#18883) 2021-04-08 15:19:05 -04:00
Elise Richards
e5e9ceba5a
Settings menu item should be tinted if there is an account issue (#18849) 2021-04-08 13:10:55 -05:00
Elise Richards
ba111dabaa
PWA install to homescreen is available in main menu (#18850) 2021-04-08 12:14:28 -05:00
Gabriel Luong
37b6079d83
For #18268, #18269 - [Saved cards] Display a list of Saved cards fetched from the credit card storage (#18808) 2021-04-08 12:09:57 -04:00
Gabriel Luong
15fc01c7f9 Update app/src/main/java/org/mozilla/fenix/ext/Activity.kt 2021-04-08 14:23:06 +03:00
Arturo Mejia
be7318f608 For #18608 made set a default browser functionality publicly available. 2021-04-08 14:23:06 +03:00
rxu
efdb30483a Add domestic China FxA service for Mozilla Online builds
China fxa related string

Add switch preference in settings to use local/global fxa server

inherit fennec FxA settings

Present or hide fxa switch according to isMozillaonline

Allow China fxa server auto login during migration
2021-04-07 23:40:59 -07:00
Jonathan Almeida
80a3475b30
No issue - Enable the tabs tray refactor in nightly (#18858) 2021-04-07 19:02:15 -04:00
codrut.topliceanu
9219a1b35b For #18515 - Added Icon and sync functionality
Co-authored-by: Jonathan Almeida <jalmeida@mozilla.com>
2021-04-08 02:45:16 +04:00
codrut.topliceanu
d961d7ba38 For #18515 - Adds FAB to TabsTray rewrite 2021-04-08 02:45:16 +04:00
Roger Yang
10eace2f99
Closes #18068: Track custom fill link from clipboard clicked (#18827) 2021-04-07 16:31:41 -04:00
Jonathan Almeida
b1727416f3 No issue: Move UseCase wrappers to the interactor; it's only usage 2021-04-07 21:23:09 +04:00
Jonathan Almeida
2e3086ac40 No issue: Move menu to separate integrations class 2021-04-07 21:23:09 +04:00
Jonathan Almeida
729acdba39 No issue: Observe only normal tabs when updating counter 2021-04-07 21:23:09 +04:00
Jonathan Almeida
09e9561600 Issue #18774: Fix long parameter warnings in detekt 2021-04-07 19:14:54 +04:00
Jonathan Almeida
9078139e40 Close #18774: Migrate mutli-selection to store
Removes the recyclerview-selection library and replaces it with the
SelectionHolder/SelectionInteractor with a Store.

This is an implementation that's similar to what we have in other UI
lists (library).
2021-04-07 19:14:54 +04:00
Jonathan Almeida
499aa858b2 Issue #18774: Move SelectionInteractor to new package
The interactor and holder are useful outside of the `library` package, so
let's move it up a package level for other components.
2021-04-07 19:14:54 +04:00
Arturo Mejia
8ca9f94abb For issue #16557 set autoplay block audio only
by default
2021-04-07 07:04:59 -04:00
Elise Richards
547a843c5c
For #18770 - Correct addons position in three dot menu based on toolbar position (#18828) 2021-04-06 15:40:32 -04:00
Roger Yang
01568d5859
Closes #18513: Re-add menu to tabs tray (#18756) 2021-04-06 10:26:41 -04:00
Jonathan Almeida
a443509c8b Issue #18535: Set the span count for grid view 2021-04-06 09:57:33 +04:00
Jonathan Almeida
2c6395cafe Issue #18535: Do not animate first scroll to position
This looks less that ideal with a grid layout that swings by from the
normal tabs to private tabs.
2021-04-06 09:57:33 +04:00
Jonathan Almeida
8ccc4648a9 Issue #18535: Move list/grid viewholders to browser package 2021-04-06 09:57:33 +04:00
Kate Glazko
841dacb69e For 17798: Sync Menu Item 2021-04-05 14:34:34 -07:00
Jonathan Almeida
92a99542e6
Close #17821: Add TabsTrayStore with actions and reducer (#18773) 2021-04-05 15:12:07 -04:00
Jonathan Almeida
af3a5b0a17
No issue - Make TabLayoutMediator lifecycle aware (#18779) 2021-04-05 15:10:29 -04:00
Travis Long
c17594c745
[SDK-246] Change Nimbus channel input to use the same method as Glean (#18766)
* [SDK-246] Change Nimbus `channel` input to use the same method as Glean

* Update app/src/main/java/org/mozilla/fenix/experiments/NimbusSetup.kt

Co-authored-by: Gabriel Luong <gabriel.luong@gmail.com>
2021-04-05 12:30:25 -04:00
Gabriel Luong
1f320fd2ad
No issue - Remove generic strings for more specificity (#18769) 2021-04-02 15:24:28 -04:00
Mugurell
0f0c319896 For #17772 - Collapse browser menu to "Add to Home screen"
The menu will start as collapsed.
Users can then swipe up to expand it.
2021-04-02 18:45:27 +03:00
Gabriel Luong
1008ca2b4a
For #18265 - [Add card] Integrate the credit card storage and handle adding a new credit card (#18719) 2021-04-02 10:40:44 -04:00
Michael Comella
6e5b4b3ce6 For #18731: remove anonymous classes from StrictModeManager.
After this change, I took 3 profiles: the new code appeared in the profiler
only once and only for one sample (i.e. possibly just got unlucky). It
seems to be improved. Profiles:
- https://share.firefox.dev/3wifiV2 (captured it)
- https://share.firefox.dev/39xgdHz
- https://share.firefox.dev/2QMdlA0
2021-04-01 13:19:49 -07:00
Gabriel Luong
3f21a63c3c
For #18729 - Use consistent string naming for generic strings (#18730) 2021-03-31 18:20:04 -04:00
Elise Richards
ca33aef036
For #17770: New tab three-dot menu reorder (#18427)
* Create new menu order for new tab

* Add new tab menu navigation. Dynamically update menu when sync auth is needed. Make new tab menu and browser menu consistent.

* Lint

Lint and refactoring tests

* Tests for default toolbar menu

* Feature flag for request desktop site

Add todos for UI test issue 17979

Add todos for UI tests
2021-03-31 16:05:44 -05:00
Mugurell
304e471801 For #18617 - Use the new EngineView#getInputResultDetail()
All functionality should remain the same.
2021-03-31 15:36:38 +03:00
mcarare
6f17e329c4 For #17797: Add bookmarks menu item. 2021-03-31 11:12:58 +03:00
Roger Yang
c7cb0fd5a0
Closes #18706 - Remove unneeded add-on telemetry calls (#18707) 2021-03-30 16:19:00 -04:00
rxumoz
51c41f84d5
Closes #18386 - Change language display name to traditional/simplified Chinese for Chinese locale (#18387) 2021-03-30 16:18:31 -04:00
Mihai Adrian Carare
ccfb275b03
For #17800 - Request desktop site from home screen. (#18653) 2021-03-30 16:12:46 -04:00
Roger Yang
caf8ac8207
Closes #18514: Re-add tab counter in tabs tray (#18659) 2021-03-30 15:43:07 -04:00
Michael Comella
ac34432176 For #18426: warn about flaw in app_opened_all_startup probe. 2021-03-30 10:38:44 -07:00
Michael Comella
ade38246be For #18426: record cold start duration telemetry. 2021-03-30 10:38:44 -07:00
Michael Comella
2be9fb61d0 For #18426: add StartupActivityStateProvider.
This will be used to filter conditions for the start up telemetry we're
adding.
2021-03-30 10:38:44 -07:00
Michael Comella
edd49b286d For #18426: add ApplicationStartReasonProvider.
We need to know this state to add a correct COLD MAIN probe.
2021-03-30 10:38:44 -07:00
Michael Comella
520634165e For #18426: add DefaultActivityLifecycleCallbacks.
We'll extend this in subsequent commits.
2021-03-30 10:38:44 -07:00
Jonathan Almeida
d167bc7b67 Issue #14117: Add Synced Tabs as a page in the tabs tray 2021-03-30 19:09:50 +04:00
Gabriel Luong
ae625e60cf For #18247 - [Add card] Populate the Credit card expiry year drop down 2021-03-29 21:37:03 -04:00
Gabriel Luong
4763d8c9e5 For #18246 - [Add card] Populate the Credit card expiry month drop down 2021-03-29 21:37:03 -04:00
Gabriel Luong
46a267a494 For #18243 - Add a credit card editor screen 2021-03-29 21:37:03 -04:00
Jonathan Almeida
cb1fb95a3a Issue #18521: Focus on page corresponding to selected tab
This first part of #18521 is to focus on the correct pager item first
before we land a patch for `scrollToPosition` of the selected tab.
2021-03-30 03:08:01 +04:00
Jonathan Almeida
e41344aa1f Close #18668: Add stable ID cache for TabAdapter.getItemId 2021-03-30 02:58:54 +04:00
Kershan
02d70d3837
For #18453 - Show SUMO for default browser deeplink on Android <N
Lower Android versions don't offer the possibility of opening system settings
at a specific preference. In this cases we already shown a sumo article
detailing the manual steps each user is expected to perform to change the
system set default browser.
2021-03-29 18:14:15 +03:00
Jonathan Almeida
26c176a75e Issue #18443: Move viewholders to separate files and package 2021-03-27 03:42:34 +04:00
Jonathan Almeida
917783a141 Issue #18443: Fix changes between grid/list viewholders 2021-03-27 03:42:34 +04:00
Jonathan Almeida
9ce4adaa32 Close #18443: Use recyclerview-selection for multi-select mode in tray
Add multi-select mode to the BrowserTabsAdapter. It has the
functionality to:
 - Enable multi-select mode on long-press.
 - Enable multi-select mode when changed by an external function.
 - Only works for normal tabs (as we currently have it).

Co-authored-by: "codrut.topliceanu" <codrut.topliceanu@softvision.ro>
2021-03-27 03:42:34 +04:00
Gabriel Luong
5d0af34537
For #17291 - Display a list of all active Nimbus experiments (#17515) 2021-03-26 13:58:30 -04:00
yichiehc
dd09ba64c4
For #18594: Highlight the "Default browser" system setting on Android >= N
Although not public APIs we can use specific extras in the Intent used to open
system settings such that the "Default browser" setting is highlighted to
provide a better UX for users looking to set Fenix as default.
2021-03-26 18:25:56 +02:00
rxumoz
46af52d254
Update top sites to add PDD for MozillaOnline builds (#18615) 2021-03-26 12:18:46 -04:00
Mihai Adrian Carare
a539f69cb2
For #18260 - Add pin to default sites. (#18618) 2021-03-26 11:36:27 -04:00
Roger Yang
c21b44e0a3
Closes #18535: Re-add grid layout to tabs tray (#18638) 2021-03-26 10:33:46 -04:00