Merge "Enforce min value on panel slices slider" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
cef4e42dc2
@@ -44,7 +44,7 @@ public abstract class SliderPreferenceController extends BasePreferenceControlle
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the value of the Slider's position based on the range: [0, maxSteps).
|
||||
* @return the value of the Slider's position based on the range: [min, max].
|
||||
*/
|
||||
public abstract int getSliderPosition();
|
||||
|
||||
@@ -57,9 +57,14 @@ public abstract class SliderPreferenceController extends BasePreferenceControlle
|
||||
public abstract boolean setSliderPosition(int position);
|
||||
|
||||
/**
|
||||
* @return the number of steps supported by the slider.
|
||||
* @return the maximum value supported by the slider.
|
||||
*/
|
||||
public abstract int getMaxSteps();
|
||||
public abstract int getMax();
|
||||
|
||||
/**
|
||||
* @return the minimum value supported by the slider.
|
||||
*/
|
||||
public abstract int getMin();
|
||||
|
||||
@Override
|
||||
public int getSliceType() {
|
||||
|
@@ -55,7 +55,8 @@ public class NightDisplayIntensityPreferenceController extends SliderPreferenceC
|
||||
super.displayPreference(screen);
|
||||
final SeekBarPreference preference = screen.findPreference(getPreferenceKey());
|
||||
preference.setContinuousUpdates(true);
|
||||
preference.setMax(getMaxSteps());
|
||||
preference.setMax(getMax());
|
||||
preference.setMin(getMin());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -75,10 +76,15 @@ public class NightDisplayIntensityPreferenceController extends SliderPreferenceC
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxSteps() {
|
||||
public int getMax() {
|
||||
return convertTemperature(ColorDisplayManager.getMinimumColorTemperature(mContext));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMin() {
|
||||
return ColorDisplayManager.getMinimumColorTemperature(mContext);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inverts and range-adjusts a raw value from the SeekBar (i.e. [0, maxTemp-minTemp]), or
|
||||
* converts an inverted and range-adjusted value to the raw SeekBar value, depending on the
|
||||
|
@@ -74,4 +74,8 @@ public class AudioHelper {
|
||||
public int getMaxVolume(int stream) {
|
||||
return mAudioManager.getStreamMaxVolume(stream);
|
||||
}
|
||||
|
||||
public int getMinVolume(int stream) {
|
||||
return mAudioManager.getStreamMinVolume(stream);
|
||||
}
|
||||
}
|
||||
|
@@ -160,7 +160,7 @@ public class RemoteVolumePreferenceController extends VolumeSeekBarPreferenceCon
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxSteps() {
|
||||
public int getMax() {
|
||||
if (mPreference != null) {
|
||||
return mPreference.getMax();
|
||||
}
|
||||
@@ -171,6 +171,14 @@ public class RemoteVolumePreferenceController extends VolumeSeekBarPreferenceCon
|
||||
return playbackInfo != null ? playbackInfo.getMaxVolume() : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMin() {
|
||||
if (mPreference != null) {
|
||||
return mPreference.getMin();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSliceable() {
|
||||
return TextUtils.equals(getPreferenceKey(), KEY_REMOTE_VOLUME);
|
||||
|
@@ -92,13 +92,21 @@ public abstract class VolumeSeekBarPreferenceController extends
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxSteps() {
|
||||
public int getMax() {
|
||||
if (mPreference != null) {
|
||||
return mPreference.getMax();
|
||||
}
|
||||
return mHelper.getMaxVolume(getAudioStream());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMin() {
|
||||
if (mPreference != null) {
|
||||
return mPreference.getMin();
|
||||
}
|
||||
return mHelper.getMinVolume(getAudioStream());
|
||||
}
|
||||
|
||||
protected abstract int getAudioStream();
|
||||
|
||||
protected abstract int getMuteIcon();
|
||||
|
@@ -164,11 +164,12 @@ public class SliceBroadcastReceiver extends BroadcastReceiver {
|
||||
}
|
||||
|
||||
final SliderPreferenceController sliderController = (SliderPreferenceController) controller;
|
||||
final int maxSteps = sliderController.getMaxSteps();
|
||||
if (newPosition < 0 || newPosition > maxSteps) {
|
||||
final int minValue = sliderController.getMin();
|
||||
final int maxValue = sliderController.getMax();
|
||||
if (newPosition < minValue || newPosition > maxValue) {
|
||||
throw new IllegalArgumentException(
|
||||
"Invalid position passed to Slider controller. Expected between 0 and "
|
||||
+ maxSteps + " but found " + newPosition);
|
||||
"Invalid position passed to Slider controller. Expected between " + minValue
|
||||
+ " and " + maxValue + " but found " + newPosition);
|
||||
}
|
||||
|
||||
sliderController.setSliderPosition(newPosition);
|
||||
|
@@ -326,7 +326,8 @@ public class SliceBuilderUtils {
|
||||
.setTitle(sliceData.getTitle())
|
||||
.setSubtitle(subtitleText)
|
||||
.setPrimaryAction(primaryAction)
|
||||
.setMax(sliderController.getMaxSteps())
|
||||
.setMax(sliderController.getMax())
|
||||
.setMin(sliderController.getMin())
|
||||
.setValue(sliderController.getSliderPosition())
|
||||
.setInputAction(actionIntent))
|
||||
.setKeywords(keywords)
|
||||
|
Reference in New Issue
Block a user