Commit Graph

4 Commits

Author SHA1 Message Date
enricobuehler a65c47874d feat(apple/widgets): Dynamic Island rebuild + brand purple everywhere (re-landed post-rebase)
Re-lands the island rebuild: a concurrent session's pull-rebase reordered the
pick against the canvas-previews commit and the pre-rebuild file content won;
the working tree kept the intended final state (BrandColor.swift itself
survived tracked). Content identical to the original commit message:

The widgets rendered system BLUE because Color.brand lived in PunktfunkKit,
which the extension never links — moved to PunktfunkShared (Kit re-exports
Shared). Island rebuilt: expanded = identity leading + elapsed clock trailing
+ one purposeful bottom row (status dot/stage + live latency/bitrate stats
line, End at the trailing edge); compact trailing = the one glanceable number
(live latency green / disconnect countdown orange / state glyph); keylineTint
brand. Lock Screen banner shares the same StatusLine/StatsLine pieces.

swift build + PunktfunkWidgetsExtension build green on the rebased base.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 16:36:36 +02:00
enricobuehler f250db96f4 feat(apple/widgets): Xcode canvas previews for the Live Activity + Hosts widget
Every surface renders in the canvas without running the app or starting a
real Activity: Lock Screen banner across all four session stages
(streaming/backgrounded/reconnecting/ended), Dynamic Island
expanded/compact/minimal, and the Hosts widget in all four families with
sample hosts (plus the empty state one timeline click away). Sample state is
fileprivate to the widget files — never in PunktfunkShared.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 16:34:43 +02:00
enricobuehler 6d2e738070 fix(apple/M3): import AppIntents for Button(intent:) + drop deprecated Text+
The Live Activity's End button uses Button(intent:), whose initializer lives in
_AppIntents_SwiftUI — reached via `import AppIntents` (was missing, so the
widget target failed to build). Also replaced the iOS-26-deprecated Text + Text
concatenation in the background countdown with an HStack.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 19:49:52 +02:00
enricobuehler 09e2043ce0 chore(apple/M1): move widget sources into the Xcode target's synced folder
Xcode created the PunktfunkWidgetsExtension target with a file-system-
synchronized root group at clients/apple/PunktfunkWidgets/, so the target
compiles whatever lives there. Deleted the three generated stubs
(PunktfunkWidgets.swift / PunktfunkWidgetsBundle.swift /
PunktfunkWidgetsControl.swift — the stub @main WidgetBundle would collide with
ours) and moved our sources (PunktfunkWidgetBundle / HostsWidget /
SessionLiveActivity) from Sources/PunktfunkWidgets/ into PunktfunkWidgets/. Kept
the generated Info.plist (build-excluded via the sync exception set) and
Assets.xcassets. Still outside Sources/, so SwiftPM ignores it; swift build green.

project.pbxproj is intentionally NOT part of this commit — the target's
capability/signing edits (step 3) are still in progress in Xcode.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 19:18:26 +02:00