From ad60abdb24c73aebfcef31700dce997f3da1c0f6 Mon Sep 17 00:00:00 2001 From: Ibrty Date: Sat, 6 Dec 2025 22:27:38 -0800 Subject: [PATCH 1/2] Add files via upload Add battery percentage to inline lockscreen widget --- .../LockScreen/LockScreenWeatherWidget.swift | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/DynamicIsland/components/LockScreen/LockScreenWeatherWidget.swift b/DynamicIsland/components/LockScreen/LockScreenWeatherWidget.swift index 5d486b0..59af845 100644 --- a/DynamicIsland/components/LockScreen/LockScreenWeatherWidget.swift +++ b/DynamicIsland/components/LockScreen/LockScreenWeatherWidget.swift @@ -25,7 +25,7 @@ struct LockScreenWeatherWidget: View { chargingSegment(for: charging) } - if !isInline, let battery = snapshot.battery { + if let battery = snapshot.battery { batterySegment(for: battery) } @@ -101,7 +101,7 @@ struct LockScreenWeatherWidget: View { private func batterySegment(for info: LockScreenWeatherSnapshot.BatteryInfo) -> some View { switch snapshot.widgetStyle { case .inline: - EmptyView() + inlineBatterySegment(for: info) case .circular: circularBatterySegment(for: info) } @@ -205,6 +205,24 @@ struct LockScreenWeatherWidget: View { } .layoutPriority(1) } + + private func inlineBatterySegment(for info: LockScreenWeatherSnapshot.BatteryInfo) -> some View { + let level = clampedBatteryLevel(info.batteryLevel) + + return HStack(alignment: .firstTextBaseline, spacing: 6) { + // Optional icon (laptop vs battery glyph) + Image(systemName: info.usesLaptopSymbol ? "laptopcomputer" : batteryIconName(for: level)) + .font(.system(size: 20, weight: .semibold)) + .symbolRenderingMode(.hierarchical) + + // ✅ The actual percentage text you want in inline style + Text("\(level)%") + .font(inlinePrimaryFont) + .lineLimit(1) + .minimumScaleFactor(0.85) + } + .layoutPriority(1) + } private func circularBluetoothSegment(for info: LockScreenWeatherSnapshot.BluetoothInfo) -> some View { let clamped = clampedBatteryLevel(info.batteryLevel) From 0416115da580d1fed858a6ba250798dac61700b6 Mon Sep 17 00:00:00 2001 From: Hariharan Mudaliar Date: Tue, 9 Dec 2025 13:21:01 +0530 Subject: [PATCH 2/2] Made the Macbook icon available in inline mode too --- DynamicIsland/Localizable.xcstrings | 4 ---- DynamicIsland/components/Settings/SettingsView.swift | 7 ------- DynamicIsland/managers/LockScreenWeatherManager.swift | 2 +- 3 files changed, 1 insertion(+), 12 deletions(-) diff --git a/DynamicIsland/Localizable.xcstrings b/DynamicIsland/Localizable.xcstrings index 2a1f7c1..2aeef68 100644 --- a/DynamicIsland/Localizable.xcstrings +++ b/DynamicIsland/Localizable.xcstrings @@ -18644,10 +18644,6 @@ }, "Temperature unit" : { - }, - "The MacBook icon is available only in the circular layout." : { - "comment" : "A message displayed below a toggle that lets the user choose whether to show a MacBook icon in the battery gauge of the weather widget. The message explains that the MacBook icon is only available when the weather widget is in a", - "isCommentAutoGenerated" : true }, "TheDynamicIsland" : { diff --git a/DynamicIsland/components/Settings/SettingsView.swift b/DynamicIsland/components/Settings/SettingsView.swift index fa58da5..c193d4c 100644 --- a/DynamicIsland/components/Settings/SettingsView.swift +++ b/DynamicIsland/components/Settings/SettingsView.swift @@ -2696,14 +2696,7 @@ struct LockScreenSettings: View { if lockScreenWeatherShowsBatteryGauge { Defaults.Toggle("Use MacBook icon when on battery", key: .lockScreenWeatherBatteryUsesLaptopSymbol) - .disabled(lockScreenWeatherWidgetStyle != .circular) .settingsHighlight(id: highlightID("Use MacBook icon when on battery")) - - if lockScreenWeatherWidgetStyle != .circular { - Text("The MacBook icon is available only in the circular layout.") - .font(.caption) - .foregroundStyle(.secondary) - } } Defaults.Toggle("Show Bluetooth battery", key: .lockScreenWeatherShowsBluetooth) diff --git a/DynamicIsland/managers/LockScreenWeatherManager.swift b/DynamicIsland/managers/LockScreenWeatherManager.swift index a9f1626..580f677 100644 --- a/DynamicIsland/managers/LockScreenWeatherManager.swift +++ b/DynamicIsland/managers/LockScreenWeatherManager.swift @@ -346,7 +346,7 @@ final class LockScreenWeatherManager: ObservableObject { guard clampedLevel >= 0 else { return nil } - let usesLaptopSymbol = widgetStyle == .circular && Defaults[.lockScreenWeatherBatteryUsesLaptopSymbol] + let usesLaptopSymbol = Defaults[.lockScreenWeatherBatteryUsesLaptopSymbol] return LockScreenWeatherSnapshot.BatteryInfo( batteryLevel: clampedLevel,