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

Commit 3dfe3448 authored by Fiona Campbell's avatar Fiona Campbell
Browse files

Remove precision loss on brightness slider.

Replacing this check with an equivalent float one allows all backlight values to be used. Previously, each slider change was being ignored if the int values were equivalent. Int values have a range of 1 to 255, however, the hardware can have more precision than this, so its more precise to do the comparison using floats, not ints.

Bug: 157454239

Test: Manual, `ROBOTEST_FILTER=BrightnessLevelPreferenceControllerTest m -j RunSettingsRoboTests`, `cat /sys/class/backlight/panel0-backlight/brightness`.

Change-Id: I15eab92b465652fc0024ed92045cc731492d88ba
parent 829ac140
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -443,14 +443,10 @@ public class BrightnessController implements ToggleSlider.Listener {
            max = mMaximumBacklight;
        }
        // convertGammaToLinearFloat returns 0-1
        if (BrightnessSynchronizer.brightnessFloatToInt(mContext, brightnessValue)
                == BrightnessSynchronizer.brightnessFloatToInt(mContext,
        if (BrightnessSynchronizer.floatEquals(brightnessValue,
                convertGammaToLinearFloat(mControl.getValue(), min, max))) {
            // If we have more resolution on the slider than we do in the actual setting, then
            // multiple slider positions will map to the same setting value. Thus, if we see a
            // setting value here that maps to the current slider position, we don't bother to
            // calculate the new slider position since it may differ and look like a brightness
            // change to the user even though it isn't one.
            // If the value in the slider is equal to the value on the current brightness
            // then the slider does not need to animate, since the brightness will not change.
            return;
        }
        // Returns GAMMA_SPACE_MIN - GAMMA_SPACE_MAX