aboutsummaryrefslogtreecommitdiff
path: root/iosApp/iosApp/Units/UnitsViewModel.swift
diff options
context:
space:
mode:
Diffstat (limited to 'iosApp/iosApp/Units/UnitsViewModel.swift')
-rw-r--r--iosApp/iosApp/Units/UnitsViewModel.swift12
1 files changed, 12 insertions, 0 deletions
diff --git a/iosApp/iosApp/Units/UnitsViewModel.swift b/iosApp/iosApp/Units/UnitsViewModel.swift
index 7fcc80e..b12291e 100644
--- a/iosApp/iosApp/Units/UnitsViewModel.swift
+++ b/iosApp/iosApp/Units/UnitsViewModel.swift
@@ -21,6 +21,7 @@ import shared
@MainActor
class UnitsViewModel: ObservableObject {
+ @Inject var networkController: NetworkController
@Inject var unitsController: UnitsController
@Inject var geofenceController: GeofencesController
@@ -34,6 +35,7 @@ class UnitsViewModel: ObservableObject {
var detailsUnit: UnitInformation? = nil
var detailsAction = DeviceRow.Action.details
+ @Published var networkAvailable: Bool? = nil
@Published var searchQuery = "" {
didSet {
unitsDisplayMode = .list
@@ -83,6 +85,9 @@ class UnitsViewModel: ObservableObject {
}
private func setupObservers() {
+ let networkCollector = Collector<Bool?>(callback: setNetworkState)
+ networkController.networkAvailable.collect(collector: networkCollector) { _ in }
+
let unitsCollector = Collector<[UnitInformation]>(callback: setUnits)
unitsController.displayedUnitsFlow.collect(collector: unitsCollector) { _ in }
@@ -90,6 +95,13 @@ class UnitsViewModel: ObservableObject {
geofenceController.geofencesFlow.collect(collector: geofencesCollector) { _ in }
}
+ private func setNetworkState(state: Bool?) {
+ print("Network state is: \(state?.description ?? "")")
+ Task { @MainActor in
+ self.networkAvailable = state
+ }
+ }
+
private func setUnits(units: [UnitInformation]) {
print("Positions")
Task { @MainActor in