diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-09-16 16:13:33 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2023-09-16 16:13:33 -0600 |
commit | be1aa14b94e435488864aa77d895ad8d93865d7c (patch) | |
tree | 713cf49fb6e8516788a437a91730d7d56540a384 /iosApp | |
parent | 6c69520fc2a968cb27d1f751f34a123205936567 (diff) | |
download | etbsa-trackermap-mobile-be1aa14b94e435488864aa77d895ad8d93865d7c.tar.gz etbsa-trackermap-mobile-be1aa14b94e435488864aa77d895ad8d93865d7c.tar.bz2 etbsa-trackermap-mobile-be1aa14b94e435488864aa77d895ad8d93865d7c.zip |
- [shared] Downgrade Kotlin to 1.8.22 due to Native issues
- [shared] Upgrade Ktor to 2.3.4 and migrate code
- [ios] Update view models to use @MainActor and Kotlin migrations
Diffstat (limited to 'iosApp')
-rw-r--r-- | iosApp/iosApp/Details/Commands/UnitCommandsViewModel.swift | 2 | ||||
-rw-r--r-- | iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift | 6 | ||||
-rw-r--r-- | iosApp/iosApp/Devices/DeviceRow.swift | 4 | ||||
-rw-r--r-- | iosApp/iosApp/Devices/DevicesViewModel.swift | 15 | ||||
-rw-r--r-- | iosApp/iosApp/Session/AccountViewModel.swift | 7 | ||||
-rw-r--r-- | iosApp/iosApp/Session/RootViewModel.swift | 7 | ||||
-rw-r--r-- | iosApp/iosApp/Shared/FlowCollector.swift | 4 | ||||
-rw-r--r-- | iosApp/iosApp/Units/UnitsViewModel.swift | 17 |
8 files changed, 40 insertions, 22 deletions
diff --git a/iosApp/iosApp/Details/Commands/UnitCommandsViewModel.swift b/iosApp/iosApp/Details/Commands/UnitCommandsViewModel.swift index 8e1da00..82e9dd7 100644 --- a/iosApp/iosApp/Details/Commands/UnitCommandsViewModel.swift +++ b/iosApp/iosApp/Details/Commands/UnitCommandsViewModel.swift @@ -53,7 +53,7 @@ class UnitCommandsViewModel: ObservableObject { func sendCommand() { if let command = selected { - commandsController.sendCommand(command: command) { _, error in + commandsController.sendCommand(command: command) { error in if let error = error { print("There is a fucking error") print(error.localizedDescription) diff --git a/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift b/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift index 5cdf21e..0132685 100644 --- a/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift +++ b/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift @@ -129,10 +129,10 @@ class UnitReportsViewModel: ObservableObject { init(deviceId id: Int32?) { deviceId = id let collector = Collector<ReportController.Report>(callback: setReport) - reportController.reportFlow.collect(collector: collector) { _, _ in } + reportController.reportFlow.collect(collector: collector) { _ in } let geofencesCollector = Collector<[Int: Geofence]>(callback: setGeofences) - geofencesController.geofencesFlow.collect(collector: geofencesCollector) { unit, error in } + geofencesController.geofencesFlow.collect(collector: geofencesCollector) { _ in } } func setReport (report: ReportController.Report) { @@ -164,7 +164,7 @@ class UnitReportsViewModel: ObservableObject { .textMessage, .driverChanged, .unknown - ]) { _, _ in } + ]) { _ in } } } diff --git a/iosApp/iosApp/Devices/DeviceRow.swift b/iosApp/iosApp/Devices/DeviceRow.swift index 8a826ca..75f8c08 100644 --- a/iosApp/iosApp/Devices/DeviceRow.swift +++ b/iosApp/iosApp/Devices/DeviceRow.swift @@ -151,8 +151,8 @@ struct DeviceRow: View { } /* MARK: - Hourmeter */ - if let hourmeter = Int64(truncating: unit.getHourmeter() ?? 0), - hourmeter >= 60 * 60 * 1000 { + let hourmeter = Int64(truncating: unit.getHourmeter() ?? 0) + if hourmeter >= 60 * 60 * 1000 { HStack { Label(Formatter.companion.formatHours(millis: hourmeter), systemImage: "timer") diff --git a/iosApp/iosApp/Devices/DevicesViewModel.swift b/iosApp/iosApp/Devices/DevicesViewModel.swift index 76cf9a2..f252ad2 100644 --- a/iosApp/iosApp/Devices/DevicesViewModel.swift +++ b/iosApp/iosApp/Devices/DevicesViewModel.swift @@ -18,6 +18,7 @@ import Foundation import shared +@MainActor class DevicesViewModel: ObservableObject { var unitsViewModel: UnitsViewModel var id: Int32? = nil @@ -35,14 +36,18 @@ class DevicesViewModel: ObservableObject { } func select(unit: UnitInformation) { - unitsViewModel.searchQuery = "" - unitsViewModel.isEditing = false - unitsViewModel.unitsDisplayMode = .map - unitsViewModel.selectedUnit = unit + Task { @MainActor in + unitsViewModel.searchQuery = "" + unitsViewModel.isEditing = false + unitsViewModel.unitsDisplayMode = .map + unitsViewModel.selectedUnit = unit + } } func show(action: DeviceRow.Action, for unit: UnitInformation) { - unitsViewModel.show(action: action, for: unit) + Task { @MainActor in + unitsViewModel.show(action: action, for: unit) + } } } diff --git a/iosApp/iosApp/Session/AccountViewModel.swift b/iosApp/iosApp/Session/AccountViewModel.swift index 7953265..0558268 100644 --- a/iosApp/iosApp/Session/AccountViewModel.swift +++ b/iosApp/iosApp/Session/AccountViewModel.swift @@ -9,6 +9,7 @@ import Foundation import shared +@MainActor class AccountViewModel: ObservableObject { @Inject var sessionController: SessionController @@ -16,11 +17,13 @@ class AccountViewModel: ObservableObject { init() { let userCollector = Collector<User?>(callback: setUser) - sessionController.userFlow.collect(collector: userCollector) {_, _ in } + sessionController.userFlow.collect(collector: userCollector) { _ in } } func setUser(user: User?) { - self.user = user + Task { @MainActor in + self.user = user + } } func fetchUserInfo() { diff --git a/iosApp/iosApp/Session/RootViewModel.swift b/iosApp/iosApp/Session/RootViewModel.swift index 682deee..ec103ba 100644 --- a/iosApp/iosApp/Session/RootViewModel.swift +++ b/iosApp/iosApp/Session/RootViewModel.swift @@ -18,6 +18,7 @@ import Foundation import shared +@MainActor class RootViewModel: ObservableObject { @Inject private var sessionController: SessionController @@ -25,13 +26,15 @@ class RootViewModel: ObservableObject { init() { let collector = Collector<SessionController.LoginState?>(callback: setLoginState) - sessionController.loginStateFlow.collect(collector: collector) { (unit, error) in } + sessionController.loginStateFlow.collect(collector: collector) { _ in } restoreSession() } func setLoginState(state: SessionController.LoginState?) { print("State is: \(state?.debugDescription ?? "")") - self.loginState = state ?? SessionController.LoginStateNothing() + Task { @MainActor in + self.loginState = state ?? SessionController.LoginStateNothing() + } } func restoreSession() { diff --git a/iosApp/iosApp/Shared/FlowCollector.swift b/iosApp/iosApp/Shared/FlowCollector.swift index 628c0cd..8570490 100644 --- a/iosApp/iosApp/Shared/FlowCollector.swift +++ b/iosApp/iosApp/Shared/FlowCollector.swift @@ -27,9 +27,9 @@ class Collector<T>: Kotlinx_coroutines_coreFlowCollector { self.callback = callback } - func emit(value: Any?, completionHandler: @escaping (KotlinUnit?, Error?) -> Void) { + func emit(value: Any?, completionHandler: @escaping (Error?) -> Void) { callback(value as! T) - completionHandler(KotlinUnit(), nil) + completionHandler(nil) } } diff --git a/iosApp/iosApp/Units/UnitsViewModel.swift b/iosApp/iosApp/Units/UnitsViewModel.swift index 6a3ce19..7fcc80e 100644 --- a/iosApp/iosApp/Units/UnitsViewModel.swift +++ b/iosApp/iosApp/Units/UnitsViewModel.swift @@ -19,6 +19,7 @@ import Foundation import WhirlyGlobe import shared +@MainActor class UnitsViewModel: ObservableObject { @Inject var unitsController: UnitsController @Inject var geofenceController: GeofencesController @@ -45,7 +46,9 @@ class UnitsViewModel: ObservableObject { @Published var unitsDisplayMode: UnitsDisplayMode = .map @Published var units: [UnitInformation] = [] { didSet { - markers = units.compactMap(Marker.companion.fromUnit) + Task { @MainActor in + markers = units.compactMap(Marker.companion.fromUnit) + } } } @Published var markers: [Marker] = [] @@ -81,20 +84,24 @@ class UnitsViewModel: ObservableObject { private func setupObservers() { let unitsCollector = Collector<[UnitInformation]>(callback: setUnits) - unitsController.displayedUnitsFlow.collect(collector: unitsCollector) { unit, error in } + unitsController.displayedUnitsFlow.collect(collector: unitsCollector) { _ in } let geofencesCollector = Collector<[Int: Geofence]>(callback: setGeofences) - geofenceController.geofencesFlow.collect(collector: geofencesCollector) { unit, error in } + geofenceController.geofencesFlow.collect(collector: geofencesCollector) { _ in } } private func setUnits(units: [UnitInformation]) { print("Positions") - self.units = units + Task { @MainActor in + self.units = units + } updateSelectedUnit() } private func setGeofences(geofences: [Int: Geofence]) { - self.geofences = geofences + Task { @MainActor in + self.geofences = geofences + } } func selectUnit(unit: UnitInformation?, switchToMap: Bool = true) { |