diff --git a/readeck/UI/AppViewModel.swift b/readeck/UI/AppViewModel.swift index 4e98406..182ef83 100644 --- a/readeck/UI/AppViewModel.swift +++ b/readeck/UI/AppViewModel.swift @@ -24,7 +24,6 @@ class AppViewModel: ObservableObject { Task { await loadSetupStatus() - await checkServerReachability() } } @@ -70,6 +69,11 @@ class AppViewModel: ObservableObject { hasFinishedSetup = settingsRepository.hasFinishedSetup } + @MainActor + func onAppResume() async { + await checkServerReachability() + } + @MainActor private func checkServerReachability() async { isServerReachable = await checkServerReachabilityUseCase.execute() diff --git a/readeck/UI/readeckApp.swift b/readeck/UI/readeckApp.swift index e6fce1b..07d0fdd 100644 --- a/readeck/UI/readeckApp.swift +++ b/readeck/UI/readeckApp.swift @@ -12,6 +12,7 @@ import netfox struct readeckApp: App { @StateObject private var appViewModel = AppViewModel() @StateObject private var appSettings = AppSettings() + @Environment(\.scenePhase) private var scenePhase var body: some Scene { WindowGroup { @@ -38,6 +39,13 @@ struct readeckApp: App { await loadAppSettings() } } + .onChange(of: scenePhase) { oldPhase, newPhase in + if newPhase == .active { + Task { + await appViewModel.onAppResume() + } + } + } } }