summaryrefslogtreecommitdiff
path: root/DomainDig/ContentView.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-07-17 11:18:25 -0500
committerChristian Cleberg <[email protected]>2026-07-20 13:56:41 -0500
commitfd8ca178a379da71f5bb19c461524888cad9447e (patch)
treeadb481e4c7c22e41e919b97ccded0e506083f9b3 /DomainDig/ContentView.swift
parent2b52ee5520cad3c47d30d513946645366f268762 (diff)
downloaddomain-dig-fd8ca178a379da71f5bb19c461524888cad9447e.tar.gz
domain-dig-fd8ca178a379da71f5bb19c461524888cad9447e.tar.bz2
domain-dig-fd8ca178a379da71f5bb19c461524888cad9447e.zip
v4.8.0: Add scheduled report generation
- ScheduledReportService (@MainActor, headless/storage-backed like DomainMonitoringService): builds the latest report for every tracked domain from persisted history, exports it via DomainReportExporter in the configured format (markdown/PDF/JSON), writes it to a local Documents subdirectory, logs the run, and fires a "Scheduled Report Ready" local notification. - ScheduledReportScheduler mirrors DomainMonitoringScheduler's BGTaskScheduler approach with its own task identifier (net.cleberg.DomainDig.report.schedule, added to Info.plist) and a daily/weekly cadence. - ScheduledReportsView (Settings → Scheduled Reports): enable toggle, cadence and format pickers, "Generate Now", and a log of past reports each shareable via the existing ExportPresenter share sheet. - Gated behind the existing .automatedMonitoring capability (Pro), consistent with monitoring being the other background-automation feature. - Settings/logs persist via UserDefaults (DomainExportFormat is now Codable), not DomainDataPortabilityService backup/restore — this is local automation configuration, not user-authored content, same reasoning as v4.7.0's watchlist saved views.
Diffstat (limited to 'DomainDig/ContentView.swift')
-rw-r--r--DomainDig/ContentView.swift4
1 files changed, 4 insertions, 0 deletions
diff --git a/DomainDig/ContentView.swift b/DomainDig/ContentView.swift
index d69cfa3..8f4eada 100644
--- a/DomainDig/ContentView.swift
+++ b/DomainDig/ContentView.swift
@@ -2716,6 +2716,10 @@ struct SettingsView: View {
NavigationLink("Monitoring") {
MonitoringSettingsView(viewModel: viewModel)
}
+
+ NavigationLink("Scheduled Reports") {
+ ScheduledReportsView()
+ }
}
Section("Data") {