From cead5d6940c7b8c412637b135d7aa559fb2aa20f Mon Sep 17 00:00:00 2001 From: Federico Imberti <66013290+FI-153@users.noreply.github.com> Date: Tue, 6 Jan 2026 10:28:27 +0100 Subject: [PATCH 1/5] Moved settings for the battery widget to dedicated Section Before they were all within the Weather Widget settings --- DynamicIsland/Localizable.xcstrings | 6 +++ .../components/Settings/SettingsView.swift | 44 +++++++++++-------- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/DynamicIsland/Localizable.xcstrings b/DynamicIsland/Localizable.xcstrings index 459d989..f098d79 100644 --- a/DynamicIsland/Localizable.xcstrings +++ b/DynamicIsland/Localizable.xcstrings @@ -3989,6 +3989,9 @@ } } } + }, + "Battery Widget" : { + }, "Behavior & Style" : { @@ -8239,6 +8242,9 @@ }, "Enable stats monitoring in Settings to view system performance data." : { + }, + "Enable the battery capsule and configure its layout" : { + }, "Enable the timer feature in Settings to access this tab." : { "comment" : "A message explaining that the timer feature must be enabled in settings to access this tab.", diff --git a/DynamicIsland/components/Settings/SettingsView.swift b/DynamicIsland/components/Settings/SettingsView.swift index 59de231..170aa8e 100644 --- a/DynamicIsland/components/Settings/SettingsView.swift +++ b/DynamicIsland/components/Settings/SettingsView.swift @@ -3195,29 +3195,10 @@ struct LockScreenSettings: View { .disabled(lockScreenWeatherWidgetStyle == .circular) .settingsHighlight(id: highlightID("Show location label")) - Defaults.Toggle("Show charging status", key: .lockScreenWeatherShowsCharging) - .settingsHighlight(id: highlightID("Show charging status")) - - if lockScreenWeatherShowsCharging { - Defaults.Toggle("Show charging percentage", key: .lockScreenWeatherShowsChargingPercentage) - .settingsHighlight(id: highlightID("Show charging percentage")) - } - Defaults.Toggle("Show sunrise time", key: .lockScreenWeatherShowsSunrise) .disabled(lockScreenWeatherWidgetStyle != .inline) .settingsHighlight(id: highlightID("Show sunrise time")) - Defaults.Toggle("Show battery indicator", key: .lockScreenWeatherShowsBatteryGauge) - .settingsHighlight(id: highlightID("Show battery indicator")) - - if lockScreenWeatherShowsBatteryGauge { - Defaults.Toggle("Use MacBook icon when on battery", key: .lockScreenWeatherBatteryUsesLaptopSymbol) - .settingsHighlight(id: highlightID("Use MacBook icon when on battery")) - } - - Defaults.Toggle("Show Bluetooth battery", key: .lockScreenWeatherShowsBluetooth) - .settingsHighlight(id: highlightID("Show Bluetooth battery")) - Defaults.Toggle("Show AQI widget", key: .lockScreenWeatherShowsAQI) .disabled(!lockScreenWeatherProviderSource.supportsAirQuality) .settingsHighlight(id: highlightID("Show AQI widget")) @@ -3246,6 +3227,31 @@ struct LockScreenSettings: View { } footer: { Text("Enable the weather capsule and configure its layout, provider, units, and optional battery/AQI indicators.") } + + Section { + Defaults.Toggle("Show battery indicator", key: .lockScreenWeatherShowsBatteryGauge) + .settingsHighlight(id: highlightID("Show battery indicator")) + + if lockScreenWeatherShowsBatteryGauge { + Defaults.Toggle("Use MacBook icon when on battery", key: .lockScreenWeatherBatteryUsesLaptopSymbol) + .settingsHighlight(id: highlightID("Use MacBook icon when on battery")) + } + + Defaults.Toggle("Show charging status", key: .lockScreenWeatherShowsCharging) + .settingsHighlight(id: highlightID("Show charging status")) + + if lockScreenWeatherShowsCharging { + Defaults.Toggle("Show charging percentage", key: .lockScreenWeatherShowsChargingPercentage) + .settingsHighlight(id: highlightID("Show charging percentage")) + } + + Defaults.Toggle("Show Bluetooth battery", key: .lockScreenWeatherShowsBluetooth) + .settingsHighlight(id: highlightID("Show Bluetooth battery")) + } header: { + Text("Battery Widget") + } footer: { + Text("Enable the battery capsule and configure its layout") + } Section { Defaults.Toggle("Show focus widget", key: .enableLockScreenFocusWidget) From 73a0c04e91eed6b8e177739086bc9d942c7e1b2c Mon Sep 17 00:00:00 2001 From: Federico Imberti <66013290+FI-153@users.noreply.github.com> Date: Tue, 6 Jan 2026 10:30:07 +0100 Subject: [PATCH 2/5] Battery widget settings hidden when the widget is disabled --- .../components/Settings/SettingsView.swift | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/DynamicIsland/components/Settings/SettingsView.swift b/DynamicIsland/components/Settings/SettingsView.swift index 170aa8e..7838fef 100644 --- a/DynamicIsland/components/Settings/SettingsView.swift +++ b/DynamicIsland/components/Settings/SettingsView.swift @@ -3235,22 +3235,22 @@ struct LockScreenSettings: View { if lockScreenWeatherShowsBatteryGauge { Defaults.Toggle("Use MacBook icon when on battery", key: .lockScreenWeatherBatteryUsesLaptopSymbol) .settingsHighlight(id: highlightID("Use MacBook icon when on battery")) + + Defaults.Toggle("Show charging status", key: .lockScreenWeatherShowsCharging) + .settingsHighlight(id: highlightID("Show charging status")) + + if lockScreenWeatherShowsCharging { + Defaults.Toggle("Show charging percentage", key: .lockScreenWeatherShowsChargingPercentage) + .settingsHighlight(id: highlightID("Show charging percentage")) + } + + Defaults.Toggle("Show Bluetooth battery", key: .lockScreenWeatherShowsBluetooth) + .settingsHighlight(id: highlightID("Show Bluetooth battery")) } - - Defaults.Toggle("Show charging status", key: .lockScreenWeatherShowsCharging) - .settingsHighlight(id: highlightID("Show charging status")) - - if lockScreenWeatherShowsCharging { - Defaults.Toggle("Show charging percentage", key: .lockScreenWeatherShowsChargingPercentage) - .settingsHighlight(id: highlightID("Show charging percentage")) - } - - Defaults.Toggle("Show Bluetooth battery", key: .lockScreenWeatherShowsBluetooth) - .settingsHighlight(id: highlightID("Show Bluetooth battery")) } header: { Text("Battery Widget") } footer: { - Text("Enable the battery capsule and configure its layout") + Text("Enable the battery capsule and configure its layout.") } Section { From b9b8aeeea6700d3b108c98cfe30d8206cc1270d7 Mon Sep 17 00:00:00 2001 From: Federico Imberti <66013290+FI-153@users.noreply.github.com> Date: Tue, 6 Jan 2026 10:32:46 +0100 Subject: [PATCH 3/5] Only show battery widget settings on MacBooks --- DynamicIsland/Localizable.xcstrings | 2 +- .../components/Settings/SettingsView.swift | 42 ++++++++++--------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/DynamicIsland/Localizable.xcstrings b/DynamicIsland/Localizable.xcstrings index f098d79..844a1a9 100644 --- a/DynamicIsland/Localizable.xcstrings +++ b/DynamicIsland/Localizable.xcstrings @@ -8243,7 +8243,7 @@ "Enable stats monitoring in Settings to view system performance data." : { }, - "Enable the battery capsule and configure its layout" : { + "Enable the battery capsule and configure its layout." : { }, "Enable the timer feature in Settings to access this tab." : { diff --git a/DynamicIsland/components/Settings/SettingsView.swift b/DynamicIsland/components/Settings/SettingsView.swift index 7838fef..6e6936e 100644 --- a/DynamicIsland/components/Settings/SettingsView.swift +++ b/DynamicIsland/components/Settings/SettingsView.swift @@ -3228,29 +3228,31 @@ struct LockScreenSettings: View { Text("Enable the weather capsule and configure its layout, provider, units, and optional battery/AQI indicators.") } - Section { - Defaults.Toggle("Show battery indicator", key: .lockScreenWeatherShowsBatteryGauge) - .settingsHighlight(id: highlightID("Show battery indicator")) - - if lockScreenWeatherShowsBatteryGauge { - Defaults.Toggle("Use MacBook icon when on battery", key: .lockScreenWeatherBatteryUsesLaptopSymbol) - .settingsHighlight(id: highlightID("Use MacBook icon when on battery")) + if BatteryActivityManager.shared.hasBattery() { + Section { + Defaults.Toggle("Show battery indicator", key: .lockScreenWeatherShowsBatteryGauge) + .settingsHighlight(id: highlightID("Show battery indicator")) - Defaults.Toggle("Show charging status", key: .lockScreenWeatherShowsCharging) - .settingsHighlight(id: highlightID("Show charging status")) - - if lockScreenWeatherShowsCharging { - Defaults.Toggle("Show charging percentage", key: .lockScreenWeatherShowsChargingPercentage) - .settingsHighlight(id: highlightID("Show charging percentage")) + if lockScreenWeatherShowsBatteryGauge { + Defaults.Toggle("Use MacBook icon when on battery", key: .lockScreenWeatherBatteryUsesLaptopSymbol) + .settingsHighlight(id: highlightID("Use MacBook icon when on battery")) + + Defaults.Toggle("Show charging status", key: .lockScreenWeatherShowsCharging) + .settingsHighlight(id: highlightID("Show charging status")) + + if lockScreenWeatherShowsCharging { + Defaults.Toggle("Show charging percentage", key: .lockScreenWeatherShowsChargingPercentage) + .settingsHighlight(id: highlightID("Show charging percentage")) + } + + Defaults.Toggle("Show Bluetooth battery", key: .lockScreenWeatherShowsBluetooth) + .settingsHighlight(id: highlightID("Show Bluetooth battery")) } - - Defaults.Toggle("Show Bluetooth battery", key: .lockScreenWeatherShowsBluetooth) - .settingsHighlight(id: highlightID("Show Bluetooth battery")) + } header: { + Text("Battery Widget") + } footer: { + Text("Enable the battery capsule and configure its layout.") } - } header: { - Text("Battery Widget") - } footer: { - Text("Enable the battery capsule and configure its layout.") } Section { From 726c010c9a908416ff20055d5dc6220a20172b09 Mon Sep 17 00:00:00 2001 From: Federico Imberti <66013290+FI-153@users.noreply.github.com> Date: Tue, 6 Jan 2026 10:37:47 +0100 Subject: [PATCH 4/5] Refactored settings keys related to the battery widget --- .../components/Settings/SettingsView.swift | 14 ++++---- .../managers/LockScreenWeatherManager.swift | 32 +++++++++---------- DynamicIsland/models/Constants.swift | 11 ++++--- 3 files changed, 29 insertions(+), 28 deletions(-) diff --git a/DynamicIsland/components/Settings/SettingsView.swift b/DynamicIsland/components/Settings/SettingsView.swift index 6e6936e..3355f4e 100644 --- a/DynamicIsland/components/Settings/SettingsView.swift +++ b/DynamicIsland/components/Settings/SettingsView.swift @@ -3084,8 +3084,8 @@ struct LockScreenSettings: View { @Default(.lockScreenWeatherWidgetStyle) private var lockScreenWeatherWidgetStyle @Default(.lockScreenWeatherProviderSource) private var lockScreenWeatherProviderSource @Default(.lockScreenWeatherTemperatureUnit) private var lockScreenWeatherTemperatureUnit - @Default(.lockScreenWeatherShowsCharging) private var lockScreenWeatherShowsCharging - @Default(.lockScreenWeatherShowsBatteryGauge) private var lockScreenWeatherShowsBatteryGauge + @Default(.lockScreenBatteryShowsCharging) private var lockScreenWeatherShowsCharging + @Default(.lockScreenBatteryShowsBatteryGauge) private var lockScreenWeatherShowsBatteryGauge @Default(.lockScreenWeatherShowsAQI) private var lockScreenWeatherShowsAQI @Default(.lockScreenWeatherShowsSunrise) private var lockScreenWeatherShowsSunrise @Default(.lockScreenWeatherAQIScale) private var lockScreenWeatherAQIScale @@ -3230,22 +3230,22 @@ struct LockScreenSettings: View { if BatteryActivityManager.shared.hasBattery() { Section { - Defaults.Toggle("Show battery indicator", key: .lockScreenWeatherShowsBatteryGauge) + Defaults.Toggle("Show battery indicator", key: .lockScreenBatteryShowsBatteryGauge) .settingsHighlight(id: highlightID("Show battery indicator")) if lockScreenWeatherShowsBatteryGauge { - Defaults.Toggle("Use MacBook icon when on battery", key: .lockScreenWeatherBatteryUsesLaptopSymbol) + Defaults.Toggle("Use MacBook icon when on battery", key: .lockScreenBatteryUsesLaptopSymbol) .settingsHighlight(id: highlightID("Use MacBook icon when on battery")) - Defaults.Toggle("Show charging status", key: .lockScreenWeatherShowsCharging) + Defaults.Toggle("Show charging status", key: .lockScreenBatteryShowsCharging) .settingsHighlight(id: highlightID("Show charging status")) if lockScreenWeatherShowsCharging { - Defaults.Toggle("Show charging percentage", key: .lockScreenWeatherShowsChargingPercentage) + Defaults.Toggle("Show charging percentage", key: .lockScreenBatteryShowsChargingPercentage) .settingsHighlight(id: highlightID("Show charging percentage")) } - Defaults.Toggle("Show Bluetooth battery", key: .lockScreenWeatherShowsBluetooth) + Defaults.Toggle("Show Bluetooth battery", key: .lockScreenBatteryShowsBluetooth) .settingsHighlight(id: highlightID("Show Bluetooth battery")) } } header: { diff --git a/DynamicIsland/managers/LockScreenWeatherManager.swift b/DynamicIsland/managers/LockScreenWeatherManager.swift index 209f0d9..e238f7b 100644 --- a/DynamicIsland/managers/LockScreenWeatherManager.swift +++ b/DynamicIsland/managers/LockScreenWeatherManager.swift @@ -65,7 +65,7 @@ final class LockScreenWeatherManager: ObservableObject { let remaining = interval - Date().timeIntervalSince(lastFetchDate) NSLog("LockScreenWeatherManager: skipping refresh (%.0f s remaining until next fetch)", max(remaining, 0)) if let payload = latestWeatherPayload { - if Defaults[.lockScreenWeatherShowsBluetooth] { + if Defaults[.lockScreenBatteryShowsBluetooth] { BluetoothAudioManager.shared.refreshConnectedDeviceBatteries() } let snapshot = makeSnapshot(from: payload) @@ -89,7 +89,7 @@ final class LockScreenWeatherManager: ObservableObject { ) let payload = try await fetchWeatherPayload(location: location) latestWeatherPayload = payload - if Defaults[.lockScreenWeatherShowsBluetooth] { + if Defaults[.lockScreenBatteryShowsBluetooth] { BluetoothAudioManager.shared.refreshConnectedDeviceBatteries() } let snapshot = makeSnapshot(from: payload) @@ -102,9 +102,9 @@ final class LockScreenWeatherManager: ObservableObject { NSLog("LockScreenWeatherManager: failed to fetch weather - \(error.localizedDescription)") let providerSource = Defaults[.lockScreenWeatherProviderSource] - let showsCharging = Defaults[.lockScreenWeatherShowsCharging] + let showsCharging = Defaults[.lockScreenBatteryShowsCharging] let chargingInfo = showsCharging ? makeChargingInfo() : nil - let showsBatteryGauge = Defaults[.lockScreenWeatherShowsBatteryGauge] + let showsBatteryGauge = Defaults[.lockScreenBatteryShowsBatteryGauge] let widgetStyle = Defaults[.lockScreenWeatherWidgetStyle] let batteryInfo = showsBatteryGauge ? makeBatteryGaugeInfo(isCharging: chargingInfo != nil, widgetStyle: widgetStyle) : nil let showsSunriseSetting = Defaults[.lockScreenWeatherShowsSunrise] @@ -116,12 +116,12 @@ final class LockScreenWeatherManager: ObservableObject { description: snapshot?.description ?? "", locationName: snapshot?.locationName, charging: chargingInfo, - bluetooth: Defaults[.lockScreenWeatherShowsBluetooth] ? makeBluetoothInfo() : nil, + bluetooth: Defaults[.lockScreenBatteryShowsBluetooth] ? makeBluetoothInfo() : nil, battery: batteryInfo, showsLocation: snapshot?.showsLocation ?? false, airQuality: (providerSource.supportsAirQuality && Defaults[.lockScreenWeatherShowsAQI]) ? snapshot?.airQuality : nil, widgetStyle: widgetStyle, - showsChargingPercentage: Defaults[.lockScreenWeatherShowsChargingPercentage], + showsChargingPercentage: Defaults[.lockScreenBatteryShowsChargingPercentage], temperatureInfo: snapshot?.temperatureInfo, usesGaugeTint: Defaults[.lockScreenWeatherUsesGaugeTint], sunCycle: sunCycle, @@ -187,15 +187,15 @@ final class LockScreenWeatherManager: ObservableObject { let defaultsPublishers: [AnyPublisher] = [ Defaults.publisher(.lockScreenWeatherShowsLocation, options: []) .map { _ in () }.eraseToAnyPublisher(), - Defaults.publisher(.lockScreenWeatherShowsCharging, options: []) + Defaults.publisher(.lockScreenBatteryShowsCharging, options: []) .map { _ in () }.eraseToAnyPublisher(), - Defaults.publisher(.lockScreenWeatherShowsChargingPercentage, options: []) + Defaults.publisher(.lockScreenBatteryShowsChargingPercentage, options: []) .map { _ in () }.eraseToAnyPublisher(), - Defaults.publisher(.lockScreenWeatherShowsBluetooth, options: []) + Defaults.publisher(.lockScreenBatteryShowsBluetooth, options: []) .map { _ in () }.eraseToAnyPublisher(), - Defaults.publisher(.lockScreenWeatherShowsBatteryGauge, options: []) + Defaults.publisher(.lockScreenBatteryShowsBatteryGauge, options: []) .map { _ in () }.eraseToAnyPublisher(), - Defaults.publisher(.lockScreenWeatherBatteryUsesLaptopSymbol, options: []) + Defaults.publisher(.lockScreenBatteryUsesLaptopSymbol, options: []) .map { _ in () }.eraseToAnyPublisher(), Defaults.publisher(.lockScreenWeatherShowsSunrise, options: []) .map { _ in () }.eraseToAnyPublisher(), @@ -292,14 +292,14 @@ final class LockScreenWeatherManager: ObservableObject { private func makeSnapshot(from payload: LockScreenWeatherSnapshot) -> LockScreenWeatherSnapshot { let locationName = payload.locationName - let chargingInfo = Defaults[.lockScreenWeatherShowsCharging] ? makeChargingInfo() : nil - let bluetoothInfo = Defaults[.lockScreenWeatherShowsBluetooth] ? makeBluetoothInfo() : nil + let chargingInfo = Defaults[.lockScreenBatteryShowsCharging] ? makeChargingInfo() : nil + let bluetoothInfo = Defaults[.lockScreenBatteryShowsBluetooth] ? makeBluetoothInfo() : nil let widgetStyle = Defaults[.lockScreenWeatherWidgetStyle] let shouldShowLocation = widgetStyle == .inline && Defaults[.lockScreenWeatherShowsLocation] && !(locationName?.isEmpty ?? true) - let showsChargingPercentage = Defaults[.lockScreenWeatherShowsChargingPercentage] + let showsChargingPercentage = Defaults[.lockScreenBatteryShowsChargingPercentage] let providerSource = Defaults[.lockScreenWeatherProviderSource] let airQualityInfo = (Defaults[.lockScreenWeatherShowsAQI] && providerSource.supportsAirQuality) ? payload.airQuality : nil - let batteryInfo = Defaults[.lockScreenWeatherShowsBatteryGauge] ? makeBatteryGaugeInfo(isCharging: chargingInfo != nil, widgetStyle: widgetStyle) : nil + let batteryInfo = Defaults[.lockScreenBatteryShowsBatteryGauge] ? makeBatteryGaugeInfo(isCharging: chargingInfo != nil, widgetStyle: widgetStyle) : nil let usesGaugeTint = Defaults[.lockScreenWeatherUsesGaugeTint] let showsSunriseSetting = Defaults[.lockScreenWeatherShowsSunrise] let shouldShowSunrise = showsSunriseSetting && widgetStyle == .inline && payload.sunCycle?.sunrise != nil @@ -357,7 +357,7 @@ final class LockScreenWeatherManager: ObservableObject { guard clampedLevel >= 0 else { return nil } - let usesLaptopSymbol = Defaults[.lockScreenWeatherBatteryUsesLaptopSymbol] + let usesLaptopSymbol = Defaults[.lockScreenBatteryUsesLaptopSymbol] return LockScreenWeatherSnapshot.BatteryInfo( batteryLevel: clampedLevel, diff --git a/DynamicIsland/models/Constants.swift b/DynamicIsland/models/Constants.swift index 4f00e16..6b2d169 100644 --- a/DynamicIsland/models/Constants.swift +++ b/DynamicIsland/models/Constants.swift @@ -548,11 +548,6 @@ extension Defaults.Keys { static let enableLockScreenTimerWidget = Key("enableLockScreenTimerWidget", default: true) static let lockScreenWeatherRefreshInterval = Key("lockScreenWeatherRefreshInterval", default: 30 * 60) static let lockScreenWeatherShowsLocation = Key("lockScreenWeatherShowsLocation", default: true) - static let lockScreenWeatherShowsCharging = Key("lockScreenWeatherShowsCharging", default: true) - static let lockScreenWeatherShowsChargingPercentage = Key("lockScreenWeatherShowsChargingPercentage", default: true) - static let lockScreenWeatherShowsBluetooth = Key("lockScreenWeatherShowsBluetooth", default: true) - static let lockScreenWeatherShowsBatteryGauge = Key("lockScreenWeatherShowsBatteryGauge", default: true) - static let lockScreenWeatherBatteryUsesLaptopSymbol = Key("lockScreenWeatherBatteryUsesLaptopSymbol", default: true) static let lockScreenWeatherShowsSunrise = Key("lockScreenWeatherShowsSunrise", default: true) static let lockScreenWeatherWidgetStyle = Key("lockScreenWeatherWidgetStyle", default: .circular) static let lockScreenWeatherTemperatureUnit = Key("lockScreenWeatherTemperatureUnit", default: .celsius) @@ -578,6 +573,12 @@ extension Defaults.Keys { static let showPowerStatusIcons = Key("showPowerStatusIcons", default: true) static let playLowBatteryAlertSound = Key("playLowBatteryAlertSound", default: true) + static let lockScreenBatteryShowsBatteryGauge = Key("lockScreenWeatherShowsBatteryGauge", default: true) + static let lockScreenBatteryUsesLaptopSymbol = Key("lockScreenWeatherBatteryUsesLaptopSymbol", default: true) + static let lockScreenBatteryShowsCharging = Key("lockScreenWeatherShowsCharging", default: true) + static let lockScreenBatteryShowsChargingPercentage = Key("lockScreenWeatherShowsChargingPercentage", default: true) + static let lockScreenBatteryShowsBluetooth = Key("lockScreenWeatherShowsBluetooth", default: true) + // MARK: Downloads static let enableDownloadListener = Key("enableDownloadListener", default: true) static let enableSafariDownloads = Key("enableSafariDownloads", default: true) From 1b0e4011115a1df50be11730dbe54ab4869e1ca6 Mon Sep 17 00:00:00 2001 From: Federico Imberti <66013290+FI-153@users.noreply.github.com> Date: Tue, 6 Jan 2026 10:38:23 +0100 Subject: [PATCH 5/5] The battery widget is disabled by default on Desktop machines --- DynamicIsland/models/Constants.swift | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/DynamicIsland/models/Constants.swift b/DynamicIsland/models/Constants.swift index 6b2d169..9133108 100644 --- a/DynamicIsland/models/Constants.swift +++ b/DynamicIsland/models/Constants.swift @@ -573,7 +573,10 @@ extension Defaults.Keys { static let showPowerStatusIcons = Key("showPowerStatusIcons", default: true) static let playLowBatteryAlertSound = Key("playLowBatteryAlertSound", default: true) - static let lockScreenBatteryShowsBatteryGauge = Key("lockScreenWeatherShowsBatteryGauge", default: true) + static let lockScreenBatteryShowsBatteryGauge = Key( + "lockScreenWeatherShowsBatteryGauge", + default: BatteryActivityManager.shared.hasBattery() + ) static let lockScreenBatteryUsesLaptopSymbol = Key("lockScreenWeatherBatteryUsesLaptopSymbol", default: true) static let lockScreenBatteryShowsCharging = Key("lockScreenWeatherShowsCharging", default: true) static let lockScreenBatteryShowsChargingPercentage = Key("lockScreenWeatherShowsChargingPercentage", default: true)