refactor: Check server reachability on app resume instead of app start
- Move server check from init to onAppResume() in AppViewModel - Add scenePhase observer in readeckApp - Check only when app becomes active (.active phase) - Respects 30s cache - won't call API if recently checked
This commit is contained in:
parent
e5334d456d
commit
fde1140f24
@ -24,7 +24,6 @@ class AppViewModel: ObservableObject {
|
|||||||
|
|
||||||
Task {
|
Task {
|
||||||
await loadSetupStatus()
|
await loadSetupStatus()
|
||||||
await checkServerReachability()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,6 +69,11 @@ class AppViewModel: ObservableObject {
|
|||||||
hasFinishedSetup = settingsRepository.hasFinishedSetup
|
hasFinishedSetup = settingsRepository.hasFinishedSetup
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@MainActor
|
||||||
|
func onAppResume() async {
|
||||||
|
await checkServerReachability()
|
||||||
|
}
|
||||||
|
|
||||||
@MainActor
|
@MainActor
|
||||||
private func checkServerReachability() async {
|
private func checkServerReachability() async {
|
||||||
isServerReachable = await checkServerReachabilityUseCase.execute()
|
isServerReachable = await checkServerReachabilityUseCase.execute()
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import netfox
|
|||||||
struct readeckApp: App {
|
struct readeckApp: App {
|
||||||
@StateObject private var appViewModel = AppViewModel()
|
@StateObject private var appViewModel = AppViewModel()
|
||||||
@StateObject private var appSettings = AppSettings()
|
@StateObject private var appSettings = AppSettings()
|
||||||
|
@Environment(\.scenePhase) private var scenePhase
|
||||||
|
|
||||||
var body: some Scene {
|
var body: some Scene {
|
||||||
WindowGroup {
|
WindowGroup {
|
||||||
@ -38,6 +39,13 @@ struct readeckApp: App {
|
|||||||
await loadAppSettings()
|
await loadAppSettings()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.onChange(of: scenePhase) { oldPhase, newPhase in
|
||||||
|
if newPhase == .active {
|
||||||
|
Task {
|
||||||
|
await appViewModel.onAppResume()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user