feat: added an optimized charging state, it allows to hide additional information in the battery widget when enabled (#1213)

This commit is contained in:
Serhiy Mytrovtsiy
2023-01-16 22:37:26 +01:00
parent f5f20bdcd8
commit 6c4d3a913e
3 changed files with 10 additions and 2 deletions

View File

@@ -19,6 +19,7 @@ struct Battery_Usage: value_t {
var isCharged: Bool = false
var isCharging: Bool = false
var isLowPowerMode: Bool? = false
var optimizedChargingEngaged: Bool = false
var level: Double = 0
var cycles: Int = 0
var health: Int = 0
@@ -141,6 +142,7 @@ public class Battery: Module {
ACStatus: value.powerSource != "Battery Power",
isCharging: value.isCharging,
lowPowerMode: value.isLowPowerMode,
optimizedCharging: value.optimizedChargingEngaged,
time: value.timeToEmpty == 0 && value.timeToCharge != 0 ? value.timeToCharge : value.timeToEmpty
)
default: break

View File

@@ -71,6 +71,7 @@ internal class UsageReader: Reader<Battery_Usage> {
self.usage.powerSource = list[kIOPSPowerSourceStateKey] as? String ?? "AC Power"
self.usage.isCharged = list[kIOPSIsChargedKey] as? Bool ?? false
self.usage.isCharging = self.getBoolValue("IsCharging" as CFString) ?? false
self.usage.optimizedChargingEngaged = list["Optimized Battery Charging Engaged"] as? Int == 1
if #available(macOS 12.0, *) {
self.usage.isLowPowerMode = ProcessInfo.processInfo.isLowPowerModeEnabled
}