feat(app-glasses): панель статуса — время + заряд (цвет по статусу)
Поверх видео (GL-оверлей в EglVideoRenderer: bitmap-текстура, правый верхний угол, обе поверхности) и композ-панель на экране соединения. Цвета (из удачной панели pair-view StatusComponent): CHARGING/FULL — зелёный, DISCHARGING — белый, NOT_CHARGING — красный. Данные: StatusPanelProvider (sticky ACTION_BATTERY_CHANGED + тик 1с, HH:mm). Тесты 4 (chargeColorArgb). Железо: «00:02 94%» + зелёный квадрат (очки на зарядке), скрин подтверждён.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
package pw.binom.viewmate.glasses.status
|
||||
|
||||
import android.os.BatteryManager
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class StatusPanelTest {
|
||||
|
||||
@Test
|
||||
fun chargingIsGreen() {
|
||||
val color = chargeColorArgb(
|
||||
plugged = true,
|
||||
status = BatteryManager.BATTERY_STATUS_CHARGING,
|
||||
)
|
||||
assertEquals(CHARGE_COLOR_CHARGING, color)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun notPluggedIsWhiteRegardlessOfStatus() {
|
||||
for (status in intArrayOf(
|
||||
BatteryManager.BATTERY_STATUS_CHARGING,
|
||||
BatteryManager.BATTERY_STATUS_DISCHARGING,
|
||||
BatteryManager.BATTERY_STATUS_NOT_CHARGING,
|
||||
BatteryManager.BATTERY_STATUS_FULL,
|
||||
BatteryManager.BATTERY_STATUS_UNKNOWN,
|
||||
)) {
|
||||
assertEquals(
|
||||
CHARGE_COLOR_DISCHARGING,
|
||||
chargeColorArgb(plugged = false, status = status),
|
||||
"status=$status, plugged=false → белый",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun pluggedNotChargingIsRed() {
|
||||
val color = chargeColorArgb(
|
||||
plugged = true,
|
||||
status = BatteryManager.BATTERY_STATUS_NOT_CHARGING,
|
||||
)
|
||||
assertEquals(CHARGE_COLOR_PLUGGED_NOT_CHARGING, color)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun pluggedFullIsGreen() {
|
||||
val color = chargeColorArgb(
|
||||
plugged = true,
|
||||
status = BatteryManager.BATTERY_STATUS_FULL,
|
||||
)
|
||||
assertEquals(CHARGE_COLOR_CHARGING, color)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user