summaryrefslogtreecommitdiff
path: root/DomainDig/DomainDigApp.swift
diff options
context:
space:
mode:
Diffstat (limited to 'DomainDig/DomainDigApp.swift')
-rw-r--r--DomainDig/DomainDigApp.swift11
1 files changed, 11 insertions, 0 deletions
diff --git a/DomainDig/DomainDigApp.swift b/DomainDig/DomainDigApp.swift
index f7cd15e..4bb1b8f 100644
--- a/DomainDig/DomainDigApp.swift
+++ b/DomainDig/DomainDigApp.swift
@@ -9,10 +9,12 @@ import SwiftUI
@main
struct DomainDigApp: App {
+ @UIApplicationDelegateAdaptor(DomainDigAppDelegate.self) private var appDelegate
@Environment(\.scenePhase) private var scenePhase
@AppStorage(AppDensity.userDefaultsKey) private var density = AppDensity.compact.rawValue
@State private var viewModel = DomainViewModel()
@State private var purchaseService = PurchaseService.shared
+ @State private var cloudSyncService = CloudSyncService.shared
init() {
LocalNotificationService.shared.configureForegroundPresentation()
@@ -25,9 +27,16 @@ struct DomainDigApp: App {
.environment(\.appDensity, AppDensity(rawValue: density) ?? .compact)
.task {
let _ = purchaseService.currentTier
+ let _ = cloudSyncService.status
await purchaseService.refreshEntitlements()
viewModel.refreshMonitoringState()
await viewModel.refreshMonitoringAuthorizationStatus()
+ await cloudSyncService.refreshAvailability()
+ cloudSyncService.scheduleSyncIfNeeded(trigger: .launch)
+ viewModel.monitoringStatusMessage = DomainMonitoringScheduler.shared.syncSchedule()
+ }
+ .onReceive(NotificationCenter.default.publisher(for: .cloudSyncDidApplyChanges)) { _ in
+ viewModel.refreshPersistedData()
viewModel.monitoringStatusMessage = DomainMonitoringScheduler.shared.syncSchedule()
}
}
@@ -36,7 +45,9 @@ struct DomainDigApp: App {
viewModel.refreshMonitoringState()
Task {
await viewModel.refreshMonitoringAuthorizationStatus()
+ await cloudSyncService.refreshAvailability()
}
+ cloudSyncService.scheduleSyncIfNeeded(trigger: .launch)
viewModel.monitoringStatusMessage = DomainMonitoringScheduler.shared.syncSchedule()
}
}