Skip to content

Multi-bridge Phase 2.5: Per-bridge Live Activities #73

@tashda

Description

@tashda

Why

With N bridges connected, Live Activities must be per-bridge. Today both ConnectionLiveActivityCoordinator and OTAUpdateLiveActivityCoordinator run a single activity each — switching bridges replaces the prior activity.

What

  • ConnectionActivityAttributes gains bridgeID: UUID.
  • ConnectionLiveActivityCoordinator keeps a [BridgeID: LiveActivityController] map and runs N concurrent activities (one per connected bridge).
  • OTAUpdateActivityAttributes gains bridgeID. The static identifier becomes "ota-updates-\(bridgeID)". OTAUpdateLiveActivityCoordinator runs N activities, one per bridge with active OTA.
  • Both coordinators stop being singletons in spirit (still global instances, but multi-bridge internally).
  • Widget UIs display the bridge name prominently.

Files

  • Shellbee/LiveActivities/ConnectionActivityAttributes.swift
  • Shellbee/LiveActivities/OTAUpdateActivityAttributes.swift
  • Shellbee/LiveActivities/ConnectionLiveActivityCoordinator.swift
  • Shellbee/LiveActivities/OTAUpdateLiveActivityCoordinator.swift
  • Shellbee/LiveActivities/*Widget.swift

Verification

  • Trigger OTA on bridge A and bridge B simultaneously via two test centers; confirm two distinct OTA activities visible on lock screen.
  • Disconnect bridge A; confirm only A's connection activity ends, B's stays.

Phase

Phase 2 of multi-bridge support. Depends on #2.1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions