* fix: show standard points when custom points match standard value in broadcast player results
When a broadcast round has custom scoring (e.g. Norway Chess armageddon),
games where custom points equal 0 (e.g. a classical draw that goes to
armageddon) were incorrectly showing "0" instead of "½". The web correctly
shows the standard result by checking whether custom points differ from
the standard value. Align mobile logic with the web by comparing custom
points against the standard numeric value instead of a hardcoded 0.5.
Fixes#2940
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The rating filter is disabled whenever the user's rating for the
selected perf is provisional. Previously the UI showed the filter as
greyed-out with no explanation, leaving users confused about why they
couldn't use it.
Tapping the disabled rating filter now opens an adaptive dialog with
the existing localized message
`ratingRangeIsDisabledBecauseYourRatingIsProvisional` explaining the
cause. Applied in both places the filter is rendered:
- The real-time lobby sheet (`create_game_widget.dart`) — the
`OutlinedButton` now has an `onPressed` that shows the dialog when
the filter is unavailable, with `foregroundColor` set to the theme's
disabled color to preserve the greyed-out look.
- The inline `PlayRatingRange` widget (`common_play_widgets.dart`)
used by the correspondence sheet — the disabled `ListTile` is wrapped
in `IgnorePointer` + `GestureDetector(HitTestBehavior.opaque)` so the
inner `NonLinearSlider` widgets cannot swallow the tap in the gesture
arena.
A `SnackBar` was tried first but is invisible behind modal bottom
sheets (it anchors to the root `ScaffoldMessenger`), so a dialog route
is used instead — it pushes on top of the sheet.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Link to puzzle screen in the app from puzzle widget
* Extract constants
* Fix build problem in widget
* Fetch first daily to avoid extra request; add tests
---------
Co-authored-by: Vincent Velociter <vincent.velociter@gmail.com>