Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fadedb32 authored by lindatseng's avatar lindatseng Committed by Linda Tseng
Browse files

Enforce min value on panel slices slider

We did not set the min value on slider slices when converting them
from preference to slices, which makes the slices all have min 0.
However, there are some slider which should have min value greater
than 0, for example, call and alarm.

We should get the min value and apply it to slider slice to make it
consistent with what we have in settings pref.

Test: Manual verification
Test: make -j40 RunSettingRobotests
Test: atest VolumeSeekBarPreferenceControllerTest
Fixes: 130439216
Fixes: 130358208
Change-Id: Ib4399c36c7da3ac41a6d46a6c150f0ec1b9b0b0f
parent 96b53495
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -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() {
+8 −2
Original line number Diff line number Diff line
@@ -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
+4 −0
Original line number Diff line number Diff line
@@ -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);
    }
}
+9 −1
Original line number Diff line number Diff line
@@ -150,7 +150,7 @@ public class RemoteVolumePreferenceController extends VolumeSeekBarPreferenceCon
    }

    @Override
    public int getMaxSteps() {
    public int getMax() {
        if (mPreference != null) {
            return mPreference.getMax();
        }
@@ -161,6 +161,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);
+9 −1
Original line number Diff line number Diff line
@@ -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();
Loading