// // DeviceRow.swift // iosApp // // Created by Iván on 28/01/22. // Copyright © 2022 orgName. All rights reserved. // import SwiftUI import shared struct DeviceRow: View { var unit: UnitInformation var body: some View { VStack { HStack { /* Status icon */ switch (unit.getStatus()) { case .online: Image(systemName: "circle.fill") .foregroundColor(.systemGreen) .imageScale(.small) case .offline: Image(systemName: "circle.fill") .foregroundColor(.systemRed) .imageScale(.small) default: EmptyView() } /* Engine stop */ switch (unit.getEngineStop()) { case .on: Image(systemName: "lock.fill") .foregroundColor(.systemRed) .imageScale(.small) case .off: Image(systemName: "lock.open.fill") .foregroundColor(.systemGreen) .imageScale(.small) default: EmptyView() } /* Device name */ Text(unit.device.name) Spacer() } .padding(.bottom, 5.0) /* Driver */ if let contact = unit.device.contact { HStack { Label(contact, systemImage: "person") .labelStyle(SmallLabelStyle()) Spacer() } } /* Speed */ if let speed = unit.position?.speed { HStack { Label(Formatter.companion.formatSpeed( speed: Double(truncating: speed), unit: .kmh), systemImage: "speedometer") .labelStyle(SmallLabelStyle()) Spacer() } } /* Address */ if let address = unit.position?.address { HStack { Label(address, systemImage: "mappin.and.ellipse") .labelStyle(SmallLabelStyle()) Spacer() } } /* Hourmeter */ if let hourmeter = unit.position?.attributes["hours"] { if let hourmeter = Serialization.companion.longOrNull(json: hourmeter) { HStack { Label(Formatter.companion.formatHours( millis: Int64(truncating: hourmeter)), systemImage: "timer") .labelStyle(SmallLabelStyle()) Spacer() } } } /* Date time */ if let datetime = unit.position?.fixTime { HStack { Label(Formatter.companion.formatDate(str: datetime), systemImage: "calendar") .labelStyle(SmallLabelStyle()) Spacer() } } } } }