Sports widget: show the next round's decided fixtures while the current round is still active
Categories
(Firefox for Android :: Homepage, enhancement)
Tracking
()
People
(Reporter: skhan, Assigned: skhan)
References
Details
(Whiteboard: [fxdroid][group3][world-cup-phase2])
Attachments
(1 file, 2 external files)
|
7.49 MB,
video/mp4
|
Details |
Right now the bracket-wide (no-team) sports widget pager shows only one round at a time: the active round, plus the always-pinned Final / Third-Place cards.
As the knockout bracket fills in we should also surface the immediate next round's fixtures as soon as they are decided. While the group stage is the active round, Round of 32 fixtures should start appearing the moment one side is set (rendered as "Team vs TBD"); a fixture with neither side decided stays hidden so the pager doesn't fill with "TBD vs TBD" placeholders. The same applies as each subsequent round becomes active.
The previous round still drops out of the pager only when the new round goes live (unchanged active-round behavior).
Confirmed this behavior with :eduardo, our UX/UI person
Implemented in SportsWidgetMiddleware.buildCards (no-team path) via a new nextRound() helper and an isFullyTbd() check (both sides null); covered by new cases in SportsWidgetMiddlewareTest.
Updated•5 months ago
|
The bracket-wide (no-team) pager previously showed only one round at a time:
the active round plus the always-pinned Final / Third-Place cards. As the
knockout bracket fills in, surface the immediate next round's fixtures too, as
soon as they are decided.
In the no-team branch of buildCards, also keep matches of the next round (the
lowest-ordinal round above the active one present in the response) whose teams
aren't both undetermined. A fixture appears the moment one side is set, rendered
as the known team vs "TBD"; fixtures with neither side decided are withheld so
the pager doesn't fill with "TBD vs TBD" placeholders. The previous round still
drops out only when the new round goes live (active-round logic unchanged).
Adds nextRound() and isFullyTbd() helpers and SportsWidgetMiddlewareTest
coverage for the one-side-decided, all-TBD, and immediate-next-round-only cases.
Updated•5 months ago
|
Comment 2•5 months ago
|
||
firefox-beta Uplift Approval Request
- User impact if declined/Reason for urgency: During the 2026 World Cup, the bracket-wide (no team selected) sports widget would keep showing only the current round. Users wouldn't see the next round's fixtures as they get decided — e.g. Round-of-32 matchups appearing during the group stage as each qualifier is set. This reduces the widget's value precisely during the knockout phase the feature is built for.
- Code covered by automated testing?: yes
- Fix verified in Nightly?: no
- Needs manual QE testing?: yes
- Steps to reproduce for manual QE testing: 1. Enable the Homepage Sports Widget and turn on the debug drawer's mock World Cup server.
- Drive the mock data to a group-stage-active state where some Round-of-32 fixtures have one side decided and others have neither side decided.
- With no team selected, confirm the pager shows the decided R32 fixtures as "Team vs TBD" alongside the active group-stage cards, and does not show fixtures where both sides are still TBD.
- Advance the mock so an R32 match goes live; confirm the group stage drops out and R32 becomes the active round.
- Risk associated with taking this patch: low
- Explanation of risk level: Isolated to the Fenix sports-widget card-building logic (SportsWidgetMiddleware.buildCards, no-team branch) and gated behind the World Cup sports-widget feature, so it can't affect anything outside the widget. It only adds the next round's decided fixtures to the no-team pager via two small pure helpers (nextRound(), isFullyTbd()); the active-round/disposal behavior is unchanged. Well covered by unit tests.
- String changes made/needed?: No
- Is Android affected?: yes
The bracket-wide (no-team) pager previously showed only one round at a time:
the active round plus the always-pinned Final / Third-Place cards. As the
knockout bracket fills in, surface the immediate next round's fixtures too, as
soon as they are decided.
In the no-team branch of buildCards, also keep matches of the next round (the
lowest-ordinal round above the active one present in the response) whose teams
aren't both undetermined. A fixture appears the moment one side is set, rendered
as the known team vs "TBD"; fixtures with neither side decided are withheld so
the pager doesn't fill with "TBD vs TBD" placeholders. The previous round still
drops out only when the new round goes live (active-round logic unchanged).
Adds nextRound() and isFullyTbd() helpers and SportsWidgetMiddlewareTest
coverage for the one-side-decided, all-TBD, and immediate-next-round-only cases.
Original Revision: https://phabricator.services.mozilla.com/D305417
Updated•5 months ago
|
Updated•5 months ago
|
Updated•5 months ago
|
Comment 7•5 months ago
•
|
||
This implementation is confirmed to be working on Firefox for Android 153 (2026-06-10) and Firefox 152 RC under Oppo Find X3 Neo (Android 11) and Samsung S24 Ultra (Android 16) but there have been found another 3 follow-up issues: Bug 2046721, Bug 2046732, Bug 2046729.
Updated•5 months ago
|
Description
•