Don't use Drawable's `level`, use our own
Test: visual
Fixes: 129014647
Change-Id: I8b43a48f8e59eb789cb7f096ea5cf3f289c2d572
diff --git a/packages/SettingsLib/src/com/android/settingslib/graph/ThemedBatteryDrawable.kt b/packages/SettingsLib/src/com/android/settingslib/graph/ThemedBatteryDrawable.kt
index 239b1d4..7f5171f 100644
--- a/packages/SettingsLib/src/com/android/settingslib/graph/ThemedBatteryDrawable.kt
+++ b/packages/SettingsLib/src/com/android/settingslib/graph/ThemedBatteryDrawable.kt
@@ -83,6 +83,8 @@
// Dual tone implies that battery level is a clipped overlay over top of the whole shape
private var dualTone = false
+ private var batteryLevel = 0
+
private val invalidateRunnable: () -> Unit = {
invalidateSelf()
}
@@ -176,9 +178,9 @@
unifiedPath.reset()
levelPath.reset()
levelRect.set(fillRect)
- val fillFraction = level / 100f
+ val fillFraction = batteryLevel / 100f
val fillTop =
- if (level >= 95)
+ if (batteryLevel >= 95)
fillRect.top
else
fillRect.top + (fillRect.height() * (1 - fillFraction))
@@ -222,7 +224,7 @@
fillPaint.color = levelColor
// Show colorError below this level
- if (level <= Companion.CRITICAL_LEVEL && !charging) {
+ if (batteryLevel <= Companion.CRITICAL_LEVEL && !charging) {
c.save()
c.clipPath(scaledFill)
c.drawPath(levelPath, fillPaint)
@@ -308,13 +310,13 @@
*/
public open fun setBatteryLevel(l: Int) {
invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
- level = l
- levelColor = batteryColorForLevel(level)
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
invalidateSelf()
}
public fun getBatteryLevel(): Int {
- return level
+ return batteryLevel
}
override fun onBoundsChange(bounds: Rect?) {
@@ -341,7 +343,7 @@
dualToneBackgroundFill.color = bgColor
// Also update the level color, since fillColor may have changed
- levelColor = batteryColorForLevel(level)
+ levelColor = batteryColorForLevel(batteryLevel)
invalidateSelf()
}