Hi All,
Wanted to make people aware of an issue I was experiencing.
Whenever I attempted to open "Sound and vibration" in Settings, it would crash.
The below log shows the cause of the crash.
type: crash
osVersion: google/tegu/tegu:16/BP4A.260205.001/2026052401:user/release-keys
package: com.android.settings:36, targetSdk 36
sharedUid: android.uid.system
process: com.android.settings
processUptime: 1811 + 264 ms
java.lang.IllegalStateException: valueFrom(0.0) must be smaller than valueTo(0.0)
at com.google.android.material.slider.BaseSlider.validateValues(BaseSlider.java:717)
at com.google.android.material.slider.BaseSlider.validateConfigurationIfDirty(BaseSlider.java:773)
at com.google.android.material.slider.BaseSlider.updateTicksCoordinates(BaseSlider.java:2524)
at com.google.android.material.slider.BaseSlider.updateTrackWidth(BaseSlider.java:2587)
at com.google.android.material.slider.BaseSlider.onSizeChanged(BaseSlider.java:2519)
at android.view.View.sizeChange(View.java:26030)
at android.view.View.setFrame(View.java:25965)
at android.view.View.layout(View.java:25816)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1880)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1640)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1880)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1640)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.layoutDecoratedWithMargins(RecyclerView.java:10623)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1781)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1683)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:748)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4860)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4583)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:5134)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:145)
at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)
at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2461)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:962)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:797)
at android.view.View.layout(View.java:25822)
at android.view.ViewGroup.layout(ViewGroup.java:6457)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:5164)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4293)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3127)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10807)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1630)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1639)
at android.view.Choreographer.doCallbacks(Choreographer.java:1235)
at android.view.Choreographer.doFrame(Choreographer.java:1164)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1613)
at android.os.Handler.handleCallback(Handler.java:1070)
at android.os.Handler.dispatchMessage(Handler.java:125)
at android.os.Looper.dispatchMessage(Looper.java:333)
at android.os.Looper.loopOnce(Looper.java:263)
at android.os.Looper.loop(Looper.java:367)
at android.app.ActivityThread.main(ActivityThread.java:9332)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:566)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:837)
After a bit of Googlefu about this line of the log, valueFrom(0.0) must be smaller than valueTo(0.0), I figured out the cause was the Sonos app because as soon as I forced closed the app I was able to access "Sound and vibration".
I believe why Sonos was causing the crash is that I only use Sonos to listen to the radio, which means the media notification doesn't have a slide bar, and the error indicates that it is expecting one.
As I only have a phone with GrapheneOS, I don't know whether this also occurs on stock Android.
I'm not expecting this issue to get resolved as it's a very minor bug and there is a workaround, along with the number of users this would affect is small.
Just wanted to make other people aware along with keeping a record of it for myself so when I do forget about the workaround, I know where to look.