material-components / material-components-android

Modular and customizable Material Design UI components for Android
Apache License 2.0
16.26k stars 3.06k forks source link

[Slider] java.lang.IllegalStateException: valueFrom(2.0) must be smaller than valueTo(2.0) #2787

Open amitlodha opened 2 years ago

amitlodha commented 2 years ago

Description: When i set value to slider having same valueTo and ValueFrom it crash

Crash Logs: java.lang.IllegalStateException: valueFrom(2.0) must be smaller than valueTo(2.0) at com.google.android.material.slider.BaseSlider.validateValueFrom(BaseSlider.java:520) at com.google.android.material.slider.BaseSlider.validateConfigurationIfDirty(BaseSlider.java:608) at com.google.android.material.slider.BaseSlider.onDraw(BaseSlider.java:1662) at android.view.View.draw(View.java:22644) at android.view.View.updateDisplayListIfDirty(View.java:21519)

Suggestion: We should not throw exception instead we should accept the same value

private void validateValueFrom() { if (valueFrom >= valueTo) { throw new IllegalStateException( String.format(EXCEPTION_ILLEGAL_VALUE_FROM, valueFrom, valueTo)); } }

private void validateValueTo() { if (valueTo <= valueFrom) { throw new IllegalStateException( String.format(EXCEPTION_ILLEGAL_VALUE_TO, valueTo, valueFrom)); } }

drchen commented 2 years ago

It's WAI. It's illegal to have the same ValueTo and ValueFrom. (There's no sliding range in this case.)

amitlodha commented 2 years ago

Hi @drchen We are using slider in our search and sometime we do get only 1 result or we doing search with result having same price as we do sliding on price, there will have same value because of same price.

drchen commented 2 years ago

hmm.. That's a fair point. Let me talk to the team for their opinion.

amitlodha commented 2 years ago

@drchen Any Update on same?

drchen commented 2 years ago

Hi I'm going to reopen this as a feature request. But we need to make sure the rest of the logic works in this case, so it may take us some time to implement.

akhbulatov commented 11 months ago

@drchen any update on this feature?

akhbulatov commented 1 month ago

@drchen due to the fact that it is impossible to assign the same values from and to, which come from backend, we have to do some ugly workaround. This fix would be very useful.

@pubiqq @manabu-nakamura guys, maybe you could fix this bug? :)

manabu-nakamura commented 1 month ago

Google seems to be accepting very few contributions these days...

akhbulatov commented 1 month ago

@manabu-nakamura even if a PR is not accepted, anyone who wants this fix can take the changes from the PR. I tried to copy BaseSlider to myself and change the condition, but the slider did not work correctly after that