[SHARED] Fix #86
This commit is contained in:
+132
-11
@@ -34,14 +34,27 @@ import com.kgurgul.cpuinfo.shared.Res
|
||||
import com.kgurgul.cpuinfo.shared.amount
|
||||
import com.kgurgul.cpuinfo.shared.back
|
||||
import com.kgurgul.cpuinfo.shared.battery
|
||||
import com.kgurgul.cpuinfo.shared.battery_charge_counter
|
||||
import com.kgurgul.cpuinfo.shared.battery_charge_time_remaining
|
||||
import com.kgurgul.cpuinfo.shared.battery_charging
|
||||
import com.kgurgul.cpuinfo.shared.battery_cold
|
||||
import com.kgurgul.cpuinfo.shared.battery_current_avg
|
||||
import com.kgurgul.cpuinfo.shared.battery_current_now
|
||||
import com.kgurgul.cpuinfo.shared.battery_cycle_count
|
||||
import com.kgurgul.cpuinfo.shared.battery_dead
|
||||
import com.kgurgul.cpuinfo.shared.battery_dock
|
||||
import com.kgurgul.cpuinfo.shared.battery_full
|
||||
import com.kgurgul.cpuinfo.shared.battery_good
|
||||
import com.kgurgul.cpuinfo.shared.battery_health
|
||||
import com.kgurgul.cpuinfo.shared.battery_not_charging
|
||||
import com.kgurgul.cpuinfo.shared.battery_overheat
|
||||
import com.kgurgul.cpuinfo.shared.battery_overvoltage
|
||||
import com.kgurgul.cpuinfo.shared.battery_present
|
||||
import com.kgurgul.cpuinfo.shared.battery_state
|
||||
import com.kgurgul.cpuinfo.shared.battery_unknown
|
||||
import com.kgurgul.cpuinfo.shared.battery_unplugged
|
||||
import com.kgurgul.cpuinfo.shared.battery_unspecified_failure
|
||||
import com.kgurgul.cpuinfo.shared.battery_wireless
|
||||
import com.kgurgul.cpuinfo.shared.bluetooth
|
||||
import com.kgurgul.cpuinfo.shared.bluetooth_le
|
||||
import com.kgurgul.cpuinfo.shared.bluetooth_mac
|
||||
@@ -191,30 +204,138 @@ actual class HardwareDataProvider actual constructor() : KoinComponent {
|
||||
functionsList.add(ItemValue.NameResource(Res.string.technology, technology))
|
||||
}
|
||||
|
||||
// Are we charging / is charged?
|
||||
// Battery present
|
||||
val isPresent = batteryStatus.getBooleanExtra(BatteryManager.EXTRA_PRESENT, true)
|
||||
functionsList.add(
|
||||
ItemValue.NameValueResource(
|
||||
Res.string.battery_present,
|
||||
getYesNoStringResource(isPresent),
|
||||
)
|
||||
)
|
||||
|
||||
// Battery status
|
||||
val status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1)
|
||||
if (status != -1) {
|
||||
val statusRes =
|
||||
when (status) {
|
||||
BatteryManager.BATTERY_STATUS_CHARGING -> Res.string.battery_charging
|
||||
BatteryManager.BATTERY_STATUS_DISCHARGING -> Res.string.battery_unplugged
|
||||
BatteryManager.BATTERY_STATUS_FULL -> Res.string.battery_full
|
||||
BatteryManager.BATTERY_STATUS_NOT_CHARGING ->
|
||||
Res.string.battery_not_charging
|
||||
else -> Res.string.battery_unknown
|
||||
}
|
||||
functionsList.add(ItemValue.NameValueResource(Res.string.battery_state, statusRes))
|
||||
}
|
||||
|
||||
// Are we charging / is charged?
|
||||
val isCharging =
|
||||
status == BatteryManager.BATTERY_STATUS_CHARGING ||
|
||||
status == BatteryManager.BATTERY_STATUS_FULL
|
||||
batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1).let {
|
||||
it == BatteryManager.BATTERY_STATUS_CHARGING ||
|
||||
it == BatteryManager.BATTERY_STATUS_FULL
|
||||
}
|
||||
|
||||
// How we charging?
|
||||
val chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1)
|
||||
val usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB
|
||||
val acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC
|
||||
|
||||
val charging = getYesNoStringResource(isCharging)
|
||||
functionsList.add(ItemValue.NameValueResource(Res.string.is_charging, charging))
|
||||
functionsList.add(
|
||||
ItemValue.NameValueResource(
|
||||
Res.string.is_charging,
|
||||
getYesNoStringResource(isCharging),
|
||||
)
|
||||
)
|
||||
if (isCharging) {
|
||||
val chargingType =
|
||||
when {
|
||||
usbCharge -> Res.string.hardware_usb
|
||||
acCharge -> Res.string.hardware_ac
|
||||
else -> Res.string.unknown
|
||||
when (chargePlug) {
|
||||
BatteryManager.BATTERY_PLUGGED_USB -> Res.string.hardware_usb
|
||||
BatteryManager.BATTERY_PLUGGED_AC -> Res.string.hardware_ac
|
||||
BatteryManager.BATTERY_PLUGGED_WIRELESS -> Res.string.battery_wireless
|
||||
else -> {
|
||||
if (
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE &&
|
||||
chargePlug == BatteryManager.BATTERY_PLUGGED_DOCK
|
||||
) {
|
||||
Res.string.battery_dock
|
||||
} else {
|
||||
Res.string.unknown
|
||||
}
|
||||
}
|
||||
}
|
||||
functionsList.add(
|
||||
ItemValue.NameValueResource(Res.string.charging_type, chargingType)
|
||||
)
|
||||
}
|
||||
|
||||
// Cycle count (API 34+)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||
val cycleCount = batteryStatus.getIntExtra(BatteryManager.EXTRA_CYCLE_COUNT, -1)
|
||||
if (cycleCount >= 0) {
|
||||
functionsList.add(
|
||||
ItemValue.NameResource(
|
||||
Res.string.battery_cycle_count,
|
||||
cycleCount.toString(),
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val batteryManager = appContext.getSystemService(Context.BATTERY_SERVICE) as? BatteryManager
|
||||
if (batteryManager != null) {
|
||||
// Current now
|
||||
val currentNow =
|
||||
batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW)
|
||||
if (currentNow != Int.MIN_VALUE && currentNow != 0) {
|
||||
functionsList.add(
|
||||
ItemValue.NameResource(
|
||||
Res.string.battery_current_now,
|
||||
"${currentNow / 1000.0}mA",
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// Current average
|
||||
val currentAvg =
|
||||
batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE)
|
||||
if (currentAvg != Int.MIN_VALUE && currentAvg != 0) {
|
||||
functionsList.add(
|
||||
ItemValue.NameResource(
|
||||
Res.string.battery_current_avg,
|
||||
"${currentAvg / 1000.0}mA",
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// Charge counter (remaining charge)
|
||||
val chargeCounter =
|
||||
batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)
|
||||
if (chargeCounter != Int.MIN_VALUE && chargeCounter > 0) {
|
||||
functionsList.add(
|
||||
ItemValue.NameResource(
|
||||
Res.string.battery_charge_counter,
|
||||
"${chargeCounter / 1000.0}mAh",
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// Charge time remaining (API 28+)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
val chargeTimeRemaining = batteryManager.computeChargeTimeRemaining()
|
||||
if (chargeTimeRemaining > 0) {
|
||||
val minutes = chargeTimeRemaining / 1000 / 60
|
||||
val hours = minutes / 60
|
||||
val remainingMinutes = minutes % 60
|
||||
val timeString =
|
||||
if (hours > 0) {
|
||||
"${hours}h ${remainingMinutes}m"
|
||||
} else {
|
||||
"${remainingMinutes}m"
|
||||
}
|
||||
functionsList.add(
|
||||
ItemValue.NameResource(Res.string.battery_charge_time_remaining, timeString)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return functionsList
|
||||
|
||||
@@ -159,6 +159,14 @@
|
||||
<string name="battery_unplugged">Odpojeno</string>
|
||||
<string name="battery_charging">Nabíjení</string>
|
||||
<string name="battery_full">Plně nabitá</string>
|
||||
<string name="battery_not_charging">Nenabíjí se</string>
|
||||
<string name="battery_present">Přítomna</string>
|
||||
<string name="battery_dock">Dok</string>
|
||||
<string name="battery_current_now">Aktuální proud</string>
|
||||
<string name="battery_current_avg">Průměrný proud</string>
|
||||
<string name="battery_charge_counter">Zbývající náboj</string>
|
||||
<string name="battery_charge_time_remaining">Čas do nabití</string>
|
||||
<string name="battery_cycle_count">Počet cyklů</string>
|
||||
<string name="ir_emitter">IR vysílač</string>
|
||||
<string name="hardware_microphones">Mikrofony</string>
|
||||
<string name="hardware_computer_system">Počítačový systém</string>
|
||||
|
||||
@@ -159,6 +159,14 @@
|
||||
<string name="battery_unplugged">Abgesteckt</string>
|
||||
<string name="battery_charging">Lädt</string>
|
||||
<string name="battery_full">Voll</string>
|
||||
<string name="battery_not_charging">Lädt nicht</string>
|
||||
<string name="battery_present">Vorhanden</string>
|
||||
<string name="battery_dock">Dock</string>
|
||||
<string name="battery_current_now">Aktueller Strom</string>
|
||||
<string name="battery_current_avg">Durchschnittlicher Strom</string>
|
||||
<string name="battery_charge_counter">Verbleibende Ladung</string>
|
||||
<string name="battery_charge_time_remaining">Zeit bis voll</string>
|
||||
<string name="battery_cycle_count">Ladezyklen</string>
|
||||
<string name="ir_emitter">IR-Sender</string>
|
||||
<string name="hardware_microphones">Mikrofone</string>
|
||||
<string name="hardware_computer_system">Computersystem</string>
|
||||
|
||||
@@ -165,6 +165,14 @@
|
||||
<string name="battery_unplugged">Desconectada</string>
|
||||
<string name="battery_charging">Cargando</string>
|
||||
<string name="battery_full">Completa</string>
|
||||
<string name="battery_not_charging">Sin carga</string>
|
||||
<string name="battery_present">Presente</string>
|
||||
<string name="battery_dock">Base</string>
|
||||
<string name="battery_current_now">Corriente actual</string>
|
||||
<string name="battery_current_avg">Corriente promedio</string>
|
||||
<string name="battery_charge_counter">Carga restante</string>
|
||||
<string name="battery_charge_time_remaining">Tiempo hasta carga completa</string>
|
||||
<string name="battery_cycle_count">Ciclos de carga</string>
|
||||
<string name="ir_emitter">Emisor IR</string>
|
||||
<string name="hardware_microphones">Micrófonos</string>
|
||||
<string name="hardware_computer_system">Sistema informático</string>
|
||||
|
||||
@@ -165,6 +165,14 @@
|
||||
<string name="battery_unplugged">Odłączona</string>
|
||||
<string name="battery_charging">Ładowanie</string>
|
||||
<string name="battery_full">Pełna</string>
|
||||
<string name="battery_not_charging">Nie ładuje</string>
|
||||
<string name="battery_present">Obecna</string>
|
||||
<string name="battery_dock">Stacja dokująca</string>
|
||||
<string name="battery_current_now">Prąd chwilowy</string>
|
||||
<string name="battery_current_avg">Prąd średni</string>
|
||||
<string name="battery_charge_counter">Pozostały ładunek</string>
|
||||
<string name="battery_charge_time_remaining">Czas do naładowania</string>
|
||||
<string name="battery_cycle_count">Liczba cykli</string>
|
||||
<string name="ir_emitter">Nadajnik IR</string>
|
||||
<string name="camera_lens_number">Liczba soczewek</string>
|
||||
<string name="hardware_microphones">Mikrofony</string>
|
||||
|
||||
@@ -197,6 +197,15 @@
|
||||
<string name="battery_unplugged">Unplugged</string>
|
||||
<string name="battery_charging">Charging</string>
|
||||
<string name="battery_full">Full</string>
|
||||
<string name="battery_not_charging">Not charging</string>
|
||||
<string name="battery_present">Present</string>
|
||||
<string name="battery_wireless" translatable="false">Wireless</string>
|
||||
<string name="battery_dock">Dock</string>
|
||||
<string name="battery_current_now">Current now</string>
|
||||
<string name="battery_current_avg">Current average</string>
|
||||
<string name="battery_charge_counter">Remaining charge</string>
|
||||
<string name="battery_charge_time_remaining">Time until full</string>
|
||||
<string name="battery_cycle_count">Cycle count</string>
|
||||
<string name="ir_emitter">IR Emitter</string>
|
||||
<string name="hardware_microphones">Microphones</string>
|
||||
<string name="hardware_computer_system">Computer system</string>
|
||||
|
||||
Reference in New Issue
Block a user