diff --git a/app/src/main/java/dev/sayanthrock/batteryrock/BatteryScreen.kt b/app/src/main/java/dev/sayanthrock/batteryrock/BatteryScreen.kt index 2c7ddb7..d492074 100644 --- a/app/src/main/java/dev/sayanthrock/batteryrock/BatteryScreen.kt +++ b/app/src/main/java/dev/sayanthrock/batteryrock/BatteryScreen.kt @@ -254,6 +254,14 @@ private fun DetailGrid(state: BatteryUiState) { Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { StatCard("Health", state.health, Modifier.weight(1f)) + StatCard("Level", "${state.percentage}%", Modifier.weight(1f)) + } + Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { + StatCard("Power Source", state.powerSource, Modifier.weight(1f)) + StatCard("Status", state.status, Modifier.weight(1f)) + } + Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { + StatCard("Technology", state.technology, Modifier.weight(1f)) StatCard("Temperature", state.temperature, Modifier.weight(1f)) } Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { diff --git a/app/src/main/java/dev/sayanthrock/batteryrock/BatteryViewModel.kt b/app/src/main/java/dev/sayanthrock/batteryrock/BatteryViewModel.kt index 3971b62..9cea52a 100644 --- a/app/src/main/java/dev/sayanthrock/batteryrock/BatteryViewModel.kt +++ b/app/src/main/java/dev/sayanthrock/batteryrock/BatteryViewModel.kt @@ -95,6 +95,7 @@ data class BatteryUiState( val voltage: String = "Unknown", val current: String = "Unknown", val wattage: String = "Unknown", + val powerSource: String = "Unknown", val isCharging: Boolean = false, val timeToFullStr: String = "Calculating...", val timeToEmptyStr: String = "Calculating..." @@ -113,6 +114,7 @@ private fun Intent.toBatteryUiState(context: Context): BatteryUiState { val healthCode = getIntExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN) val tempRaw = getIntExtra(BatteryManager.EXTRA_TEMPERATURE, Int.MIN_VALUE) val voltageMv = getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1) + val pluggedCode = getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager val currentUa = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW) @@ -166,6 +168,7 @@ private fun Intent.toBatteryUiState(context: Context): BatteryUiState { voltage = if (voltageMv > 0) "${voltageMv} mV" else "Unknown", current = currentStr, wattage = wattageStr, + powerSource = pluggedCode.toPowerSource(), isCharging = isCharging, timeToFullStr = timeToFull, timeToEmptyStr = timeToEmpty @@ -189,3 +192,11 @@ private fun Int.toBatteryHealth(): String = when (this) { BatteryManager.BATTERY_HEALTH_COLD -> "Cold" else -> "Unknown" } + +private fun Int.toPowerSource(): String = when (this) { + BatteryManager.BATTERY_PLUGGED_AC -> "AC Charger" + BatteryManager.BATTERY_PLUGGED_USB -> "USB" + BatteryManager.BATTERY_PLUGGED_WIRELESS -> "Wireless" + 0 -> "Battery" + else -> "Unknown" +}