From fcd9f1a8706f7b6af0bae199b0e5c769beef00c6 Mon Sep 17 00:00:00 2001 From: Raff Tsai Date: Thu, 30 Jan 2020 08:22:09 +0800 Subject: [PATCH] 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 Test: manual Change-Id: I3d162f6d2f1035b81b1b2eb915b488084e7ea36e --- src/com/android/settings/slices/SliceBuilderUtils.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java index 2208c970fea..1785199e3c8 100644 --- a/src/com/android/settings/slices/SliceBuilderUtils.java +++ b/src/com/android/settings/slices/SliceBuilderUtils.java @@ -292,6 +292,14 @@ public class SliceBuilderUtils { ListBuilder.ICON_IMAGE, sliceData.getTitle()); final Set 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() @@ -300,7 +308,7 @@ public class SliceBuilderUtils { .setPrimaryAction(primaryAction) .setMax(sliderController.getMax()) .setMin(sliderController.getMin()) - .setValue(sliderController.getSliderPosition()) + .setValue(cur) .setInputAction(actionIntent)) .setKeywords(keywords) .build();