Fix volume panel crashing
slider position is smaller than min value causes the exception.
Fixed by limit the position within min and max value.
Fixes: 148270968
Fixes: 149973990
Test: manual
Change-Id: I3d162f6d2f1035b81b1b2eb915b488084e7ea36e
(cherry picked from commit fcd9f1a8706f7b6af0bae199b0e5c769beef00c6)
Merged-In: I3d162f6d2f1035b81b1b2eb915b488084e7ea36e
diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java
index 5585be3..2191da7 100644
--- a/src/com/android/settings/slices/SliceBuilderUtils.java
+++ b/src/com/android/settings/slices/SliceBuilderUtils.java
@@ -313,6 +313,14 @@
ListBuilder.ICON_IMAGE, sliceData.getTitle());
final Set<String> keywords = buildSliceKeywords(sliceData);
+ int cur = sliderController.getSliderPosition();
+ if (cur < sliderController.getMin()) {
+ cur = sliderController.getMin();
+ }
+ if (cur > sliderController.getMax()) {
+ cur = sliderController.getMax();
+ }
+
return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY)
.setAccentColor(color)
.addInputRange(new InputRangeBuilder()
@@ -321,7 +329,7 @@
.setPrimaryAction(primaryAction)
.setMax(sliderController.getMax())
.setMin(sliderController.getMin())
- .setValue(sliderController.getSliderPosition())
+ .setValue(cur)
.setInputAction(actionIntent))
.setKeywords(keywords)
.build();