Don't use Drawable's level, use our own
Test: visual Fixes: 129014647 Change-Id: I8b43a48f8e59eb789cb7f096ea5cf3f289c2d572
This commit is contained in:
@@ -83,6 +83,8 @@ open class ThemedBatteryDrawable(private val context: Context, frameColor: Int)
|
||||
// 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 @@ open class ThemedBatteryDrawable(private val context: Context, frameColor: Int)
|
||||
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 @@ open class ThemedBatteryDrawable(private val context: Context, frameColor: Int)
|
||||
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 @@ open class ThemedBatteryDrawable(private val context: Context, frameColor: Int)
|
||||
*/
|
||||
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 @@ open class ThemedBatteryDrawable(private val context: Context, frameColor: Int)
|
||||
dualToneBackgroundFill.color = bgColor
|
||||
|
||||
// Also update the level color, since fillColor may have changed
|
||||
levelColor = batteryColorForLevel(level)
|
||||
levelColor = batteryColorForLevel(batteryLevel)
|
||||
|
||||
invalidateSelf()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user