diff options
Diffstat (limited to 'DomainDig/DomainDigApp.swift')
| -rw-r--r-- | DomainDig/DomainDigApp.swift | 11 |
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() } } |
