[Tab Groups] Stand-up a Fragment + Store to wrap the group chooser sheet + edit flows when outside of the Tabs Tray
Categories
(Firefox for Android :: Tabs, task)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox158 | --- | fixed |
People
(Reporter: 007, Assigned: jdelorenzo)
References
(Blocks 2 open bugs)
Details
(Whiteboard: [fxdroid][android-core])
Attachments
(4 external files)
In order to support the tab group chooser and the edit/create tab group flows outside of the Tabs Tray (which are in a bubble of Nav3), we'll need to stand-up a new Fragment and Store. This will allow other features in Fenix to navigate to these flows using the Fragment-based Nav2.
As part of this ticket:
- Create a new
TabGroupCreationFragment(name can be workshopped)- A Nav3
NavDisplaycan be used for hosting the different destinations.
- A Nav3
- Add an entry to the global nav graph and make a mandatory argument a list of tab IDs (Strings)
- Create the usual Redux boiler plate
TabGroupCreationStoreTabGroupCreationStateTabGroupCreationActionTabGroupCreationReducerTabGroupCreationTelemetryMiddleware
- Stand-up /logic functionality to:
- Navigate to the create tab group sheet when the user has zero tab groups.
- Navigate to the chooser sheet when the user has at least one tab group.
- Navigate to the create tab group sheet when the user selects to make a new group.
- Add the list of tab IDs to the selected group when a user selects a group on the chooser sheet.
- Add the list of tab IDs to the selected group when a user creates a new group.
- Dismiss the fragment when the user selects a group.
- Fire the same telemetry in response to Actions as in TabsTrayTelemetryMiddleware
- Create tests for the Redux Action reducing.
- Create tests for any middleware side effects (saving a tab group, telemetry, etc.).
Important dev note:
If any functionality in TabStorageMiddleware, or elsewhere, can be reused, please refactor it to a new file or class where it can be shared + tested.
Updated•3 months ago
|
| Reporter | ||
Comment 1•3 months ago
|
||
This will be immediately used by Bug 2060354, so that ticket could be used for testing the integration.
| Reporter | ||
Comment 2•3 months ago
•
|
||
When the user clicks outside of a sheet, the entire fragment flow is dismissed (aka the fragment is popped)
If a user is navigated directly to the chooser sheet and makes a new group, the fragment should be popped.
If a user is navigated directly to the expanded tab group sheet and the user edits said group, the user is returned to the expanded sheet.
Updated•2 months ago
|
| Assignee | ||
Comment 3•2 months ago
|
||
| Assignee | ||
Comment 4•2 months ago
|
||
Pure rename, no behavior change. A later patch in this series adds a
sibling TabAddedToNewTabGroup action for the browser menu entry point,
which makes the unqualified name ambiguous.
The Glean-generated TabsTray.TabAddedToGroupExtra and the private
handleTabAddedToGroup helper keep their existing names.
| Assignee | ||
Comment 5•2 months ago
|
||
TabsTrayTelemetryMiddleware recorded tab group events inline. Move that
recording into a TabGroupTelemetry class parameterized by access point,
so a second entry point outside the tabs tray can reuse it.
TabGroupTelemetryContext lets a state object supply the group list and
form state that the save and theme events branch on;
TabsTrayState.TabGroupState implements it. No change to which events are
recorded or to their extras.
| Assignee | ||
Comment 6•2 months ago
|
||
The entryProvider block had grown to roughly 300 lines nested inside
onCreateView, which made the individual destinations hard to read and
left no place to hang a second nav host off the same pattern.
Pull each destination's content into its own composable, and hoist the
provider itself into getEntryProvider(). A follow-up patch adds
TabGroupFlowFragment, which follows this same shape.
Pure extraction: no behavior change, and every hunk is a move.
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Comment 8•1 month ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/33b6b20376fb
https://hg.mozilla.org/mozilla-central/rev/112c62386ebb
https://hg.mozilla.org/mozilla-central/rev/2b7d7f91542c
https://hg.mozilla.org/mozilla-central/rev/ed29bab5049a
Comment 9•1 month ago
|
||
| bugherder | ||
Description
•