diff options
-rw-r--r-- | sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java b/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java index 121ac8e3..abcf0b1c 100644 --- a/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java +++ b/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java @@ -180,11 +180,19 @@ public final class LineageBatteryLights { if (ledValues.getColor() != 0) { ledValues.setEnabled(true); } - // If lights HAL does not support adjustable brightness then - // scale color value here instead. - if (mCanAdjustBrightness && !mHALAdjustableBrightness) { - ledValues.applyAlphaToBrightness(); - ledValues.applyBrightnessToColor(); + if (mCanAdjustBrightness) { + if (!mHALAdjustableBrightness) { + // If lights HAL does not support adjustable brightness then + // scale color value here instead. + ledValues.applyAlphaToBrightness(); + ledValues.applyBrightnessToColor(); + } else if (mUseSegmentedBatteryLed && !mMultiColorBatteryLed) { + // For non-RGB segmented LEDs, we must set the brightness as the + // color, since the alpha channel contains the battery level + int segmentLevel = mZenMode == Global.ZEN_MODE_OFF + ? mBatteryBrightnessLevel : mBatteryBrightnessZenLevel; + ledValues.setColor(segmentLevel | (segmentLevel << 8) | (segmentLevel << 16)); + } } // If LED is segmented, reset brightness field to battery level // (applyBrightnessToColor() changes it to 255) |