|
|
@ -53,28 +53,39 @@ class BatteryView @JvmOverloads constructor( |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@SuppressLint("SetTextI18n") |
|
|
|
@SuppressLint("SetTextI18n") |
|
|
|
fun setTextAndBattery(text: String = "", battery: Int = 0) { |
|
|
|
fun setBattery(battery: Int, text: String? = null) { |
|
|
|
this.battery = battery |
|
|
|
this.battery = battery |
|
|
|
if (isBattery) { |
|
|
|
if (isBattery) { |
|
|
|
batteryWidth = StaticLayout.getDesiredWidth(battery.toString(), paint).toInt() |
|
|
|
batteryWidth = StaticLayout.getDesiredWidth(battery.toString(), paint).toInt() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (text.isNullOrEmpty()) { |
|
|
|
|
|
|
|
setText(battery.toString()) |
|
|
|
|
|
|
|
} else { |
|
|
|
setText("$text $battery") |
|
|
|
setText("$text $battery") |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override fun onDraw(canvas: Canvas) { |
|
|
|
override fun onDraw(canvas: Canvas) { |
|
|
|
super.onDraw(canvas) |
|
|
|
super.onDraw(canvas) |
|
|
|
if (!isBattery) return |
|
|
|
if (!isBattery) return |
|
|
|
|
|
|
|
layout.getLineBounds(0, outFrame) |
|
|
|
|
|
|
|
val batteryStart = layout |
|
|
|
|
|
|
|
.getPrimaryHorizontal(text.length - battery.toString().length) |
|
|
|
|
|
|
|
.toInt() + 3.dp |
|
|
|
|
|
|
|
val batteryEnd = layout |
|
|
|
|
|
|
|
.getSecondaryHorizontal(text.length) |
|
|
|
|
|
|
|
.toInt() + 6.dp |
|
|
|
outFrame.set( |
|
|
|
outFrame.set( |
|
|
|
width - 6.dp - batteryWidth, |
|
|
|
batteryStart, |
|
|
|
1.dp, |
|
|
|
1.dp, |
|
|
|
width - 3.dp, |
|
|
|
batteryEnd, |
|
|
|
height - 1.dp |
|
|
|
height - 1.dp |
|
|
|
) |
|
|
|
) |
|
|
|
val dj = (outFrame.bottom - outFrame.top) / 3 |
|
|
|
val dj = (outFrame.bottom - outFrame.top) / 3 |
|
|
|
polar.set( |
|
|
|
polar.set( |
|
|
|
outFrame.right, |
|
|
|
batteryEnd, |
|
|
|
outFrame.top + dj, |
|
|
|
outFrame.top + dj, |
|
|
|
width - 1.dp, |
|
|
|
batteryEnd + 2.dp, |
|
|
|
outFrame.bottom - dj |
|
|
|
outFrame.bottom - dj |
|
|
|
) |
|
|
|
) |
|
|
|
batteryPaint.style = Paint.Style.STROKE |
|
|
|
batteryPaint.style = Paint.Style.STROKE |
|
|
|