From b4b94d54cbed9334a28cdcd70d3a8a0fd06e04ef Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Fri, 17 Jul 2026 08:36:05 -0500 Subject: Implement v4.6.0: sweep Live Activity, share extension, iPad split view, actionable notifications - Sweep Live Activity: SweepActivityAttributes (Shared/), lock-screen + Dynamic Island UI in the widget extension, driven by SweepActivityController wired into the batch pipeline (begin/update/end); NSSupportsLiveActivities in Info.plist. - Share extension (DomainDigShareExtension): accepts a web URL from the share sheet, extracts the host, and hands it to the app via the App Group inbox (DomainDigShareInbox); the app consumes it on activation and inspects it. - iPad layout: RootTabView uses NavigationSplitView in the regular size class and the tab bar in compact. - Actionable notifications: per-domain threadIdentifier grouping, a Re-inspect action, and tap routing into the domain detail via the intent router. - Bump version to 4.6.0 (build 38) across app, widget, and share targets. --- DomainDig/DomainDigApp.swift | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'DomainDig/DomainDigApp.swift') diff --git a/DomainDig/DomainDigApp.swift b/DomainDig/DomainDigApp.swift index 8716806..d34c51d 100644 --- a/DomainDig/DomainDigApp.swift +++ b/DomainDig/DomainDigApp.swift @@ -40,6 +40,7 @@ struct DomainDigApp: App { viewModel.monitoringStatusMessage = DomainMonitoringScheduler.shared.syncSchedule() IntegrationService.shared.processQueueNow() viewModel.refreshWidgetData() + consumeShareInbox() } .onReceive(NotificationCenter.default.publisher(for: .cloudSyncDidApplyChanges)) { _ in viewModel.refreshPersistedData() @@ -59,6 +60,14 @@ struct DomainDigApp: App { viewModel.monitoringStatusMessage = DomainMonitoringScheduler.shared.syncSchedule() IntegrationService.shared.processQueueNow() viewModel.refreshWidgetData() + consumeShareInbox() } } + + /// Picks up a domain shared via the share extension and routes it into an + /// inspection through the intent router (consumed by `RootTabView`). + private func consumeShareInbox() { + guard let domain = DomainDigShareInbox.consume() else { return } + DomainDigIntentRouter.shared.pendingAction = .inspect(domain) + } } -- cgit v1.2.3