summaryrefslogtreecommitdiff
path: root/DomainDig/DomainDigApp.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-07-17 00:27:45 -0500
committerChristian Cleberg <[email protected]>2026-07-17 00:31:57 -0500
commitd3a27d06809e6744c092f9bed4bf0537843d0210 (patch)
tree1527e935e11561dda4bc8c6cfaabdb92db5be95c /DomainDig/DomainDigApp.swift
parent685f84ad0a8d2dc7b62125d5d9c3a50b75ae2468 (diff)
downloaddomain-dig-d3a27d06809e6744c092f9bed4bf0537843d0210.tar.gz
domain-dig-d3a27d06809e6744c092f9bed4bf0537843d0210.tar.bz2
domain-dig-d3a27d06809e6744c092f9bed4bf0537843d0210.zip
Complete v4.5.0: Run Sweep intent, detail deep link, and portfolio widget
Finishes the v4.5.0 "Home Screen & Shortcuts reach" scope that the tag shipped partially: - Add RunSweepIntent (opens the app and runs refreshAllTrackedDomains via the in-process router) and expose it in DomainDigShortcuts. - Extend the domaindig:// scheme with `sweep` and `domain` (detail) actions; route .detail to present TrackedDomainDetailView and .sweep to refresh the watchlist. Move DomainDigDeepLink into Shared/ so the widget can build links. - Add a WidgetKit extension (DomainDigWidgetExtension) with small/medium/large Portfolio widgets showing health counts, per-domain status, and certificate countdowns; tapping a domain deep-links into its detail. - Share portfolio state via an App Group (group.net.cleberg.DomainDig): the app writes a DomainDigWidgetData snapshot on launch/foreground and on watchlist changes and reloads timelines; the widget reads the same store.
Diffstat (limited to 'DomainDig/DomainDigApp.swift')
-rw-r--r--DomainDig/DomainDigApp.swift2
1 files changed, 2 insertions, 0 deletions
diff --git a/DomainDig/DomainDigApp.swift b/DomainDig/DomainDigApp.swift
index ff40caf..8716806 100644
--- a/DomainDig/DomainDigApp.swift
+++ b/DomainDig/DomainDigApp.swift
@@ -39,6 +39,7 @@ struct DomainDigApp: App {
cloudSyncService.scheduleSyncIfNeeded(trigger: .launch)
viewModel.monitoringStatusMessage = DomainMonitoringScheduler.shared.syncSchedule()
IntegrationService.shared.processQueueNow()
+ viewModel.refreshWidgetData()
}
.onReceive(NotificationCenter.default.publisher(for: .cloudSyncDidApplyChanges)) { _ in
viewModel.refreshPersistedData()
@@ -57,6 +58,7 @@ struct DomainDigApp: App {
cloudSyncService.scheduleSyncIfNeeded(trigger: .launch)
viewModel.monitoringStatusMessage = DomainMonitoringScheduler.shared.syncSchedule()
IntegrationService.shared.processQueueNow()
+ viewModel.refreshWidgetData()
}
}
}