diff options
Diffstat (limited to 'iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift')
-rw-r--r-- | iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift b/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift index 5e85e89..4731a57 100644 --- a/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift +++ b/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift @@ -12,6 +12,7 @@ import shared class UnitReportsViewModel: ObservableObject { @Inject var reportController: ReportController + @Inject var geofencesController: GeofencesController @Published var deviceId: Int32? = nil @Published var reportType: ReportController.ReportType = .positions { @@ -42,16 +43,30 @@ class UnitReportsViewModel: ObservableObject { @Published var markers = [Marker]() @Published var selectedMarker: Marker? = nil + @Published var geofences: [Int: Geofence] = [:] { + didSet { + flatGeofences = Array(geofences.values) + } + } + @Published var flatGeofences: [Geofence] = [] + init(deviceId id: Int32?) { deviceId = id let collector = Collector<ReportController.Report>(callback: setReport) reportController.reportFlow.collect(collector: collector) { _, _ in } + + let geofencesCollector = Collector<[Int: Geofence]>(callback: setGeofences) + geofencesController.geofencesFlow.collect(collector: geofencesCollector) { unit, error in } } func setReport (report: ReportController.Report) { self.report = report } + private func setGeofences(geofences: [Int: Geofence]) { + self.geofences = geofences + } + func fetchReport(xlsx: Bool = false) { if let id = deviceId { reportController.fetchReport(deviceId: id, |