Fix Range Slider issue where indescrete ranges lead to out of range r…#181082
Conversation
|
Fixing the bug for the specific configuration of the emulator Medium_Phone 36.1 Google Play was easy. I'm not so sure how to write a correct widget test that has a general meaning and exactly covers the unfortunate calculation. Can you please help me @darshankawar ? :) Thank you |
There was a problem hiding this comment.
Code Review
This pull request addresses an issue where dragging a thumb on a continuous RangeSlider could result in values outside the expected [0.0, 1.0] range, leading to an assertion failure. The fix involves wrapping the new values in _discretizeRangeValues before calling onChanged, which correctly clamps the values within the valid range. This change is consistent with how values are handled in _startInteraction. The fix is correct and minimal.
victorsanni
left a comment
There was a problem hiding this comment.
Hi, this PR will need a test to prevent it from getting regressed. Thanks for the work.
bf3561b to
ebe0e8d
Compare
…causes-values-end-to-exceed-max
…g-error-causes-values-end-to-exceed-max
eadf0e9 to
b4b820d
Compare
…causes-values-end-to-exceed-max
…g-error-causes-values-end-to-exceed-max
QuncCccccc
left a comment
There was a problem hiding this comment.
I'm actually not able to reproduce it, so I put a comment in the original issue. Please let me know if I misunderstood anything! Thanks a lot for your contribution!
flutter/flutter@7165649...dfd92b7 2026-01-27 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fixes metal vec3 uniform padding (#181340)" (flutter/flutter#181552) 2026-01-27 [email protected] Change update_engine_version documenation (flutter/flutter#181508) 2026-01-27 [email protected] Roll Packages from e712bfa to e37af11 (7 revisions) (flutter/flutter#181544) 2026-01-27 [email protected] Roll FreeType to 2.14.1 (flutter/flutter#181428) 2026-01-27 [email protected] Roll Skia from 566d202962d3 to c2754838b077 (3 revisions) (flutter/flutter#181536) 2026-01-27 [email protected] [Material] modernize time picker components with Dart 3 switch expressions (flutter/flutter#181356) 2026-01-27 [email protected] Roll Skia from 55a87b50a368 to 566d202962d3 (1 revision) (flutter/flutter#181528) 2026-01-27 [email protected] Roll Dart SDK from f55d4538469a to 4c7cb0a1d07d (2 revisions) (flutter/flutter#181526) 2026-01-27 [email protected] Replace `pub run` mentions with `dart run` (flutter/flutter#181317) 2026-01-27 [email protected] Roll Skia from 1a15ed6b17f2 to 55a87b50a368 (1 revision) (flutter/flutter#181523) 2026-01-27 [email protected] Marks linux_chrome_dev_mode to be unflaky (flutter/flutter#181352) 2026-01-27 [email protected] Roll Skia from f2c1aa140b79 to 1a15ed6b17f2 (2 revisions) (flutter/flutter#181514) 2026-01-27 [email protected] Fix Range Slider issue where indescrete ranges lead to out of range r… (flutter/flutter#181082) 2026-01-26 [email protected] Roll Dart SDK from ba23b5ed0a97 to f55d4538469a (2 revisions) (flutter/flutter#181512) 2026-01-26 [email protected] Add `alignment` to `SizeTransition` (flutter/flutter#177895) 2026-01-26 [email protected] Roll Fuchsia Linux SDK from T4qTEa3T5CCSCIoJY... to akraNGn2lw4T1msgZ... (flutter/flutter#181509) 2026-01-26 [email protected] Roll Skia from be280d242a60 to f2c1aa140b79 (3 revisions) (flutter/flutter#181504) 2026-01-26 [email protected] Fixes metal vec3 uniform padding (flutter/flutter#181340) 2026-01-26 [email protected] Fixes duplicated import in accessibility test library (flutter/flutter#181506) 2026-01-26 [email protected] [Reland] Don't strip symbols from `libapp.so` on android by default (flutter/flutter#181275) 2026-01-26 [email protected] Fix Gradle path in Android Platform Embedder README. (flutter/flutter#181501) 2026-01-26 [email protected] Remove unused `ActivityLifecycleListener` class (flutter/flutter#181406) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
flutter#181082) *These change fixes a problem when during a drag that took the minThumbSepartionValue into account led to a value outside of the allowed range of (0.0, 1.0) which caused a exception in rebuild where assert is used to check for that range.* Fixes issue flutter#180984 *If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].* ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Victor Sanni <[email protected]>
These change fixes a problem when during a drag that took the minThumbSepartionValue into account led to a value outside of the allowed range of (0.0, 1.0) which caused a exception in rebuild where assert is used to check for that range.
Fixes issue #180984
If you had to change anything in the flutter/tests repo, include a link to the migration guide as per the breaking change policy.
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the
gemini-code-assistbot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.