diff --git a/apps/ios/Sources/Device/DeviceInfoHelper.swift b/apps/ios/Sources/Device/DeviceInfoHelper.swift index eeed54c4652..7067d70d7e4 100644 --- a/apps/ios/Sources/Device/DeviceInfoHelper.swift +++ b/apps/ios/Sources/Device/DeviceInfoHelper.swift @@ -6,6 +6,7 @@ import Darwin /// Shared device and platform info for Settings, gateway node payloads, and device status. enum DeviceInfoHelper { /// e.g. "iOS 18.0.0" or "iPadOS 18.0.0" by interface idiom. Use for gateway/device payloads. + @MainActor static func platformString() -> String { let v = ProcessInfo.processInfo.operatingSystemVersion let name = switch UIDevice.current.userInterfaceIdiom { @@ -26,6 +27,7 @@ enum DeviceInfoHelper { } /// Device family for display: "iPad", "iPhone", or "iOS". + @MainActor static func deviceFamily() -> String { switch UIDevice.current.userInterfaceIdiom { case .pad: diff --git a/apps/ios/Sources/Device/DeviceStatusService.swift b/apps/ios/Sources/Device/DeviceStatusService.swift index a80a98101fa..bd5b45dfaa1 100644 --- a/apps/ios/Sources/Device/DeviceStatusService.swift +++ b/apps/ios/Sources/Device/DeviceStatusService.swift @@ -2,6 +2,7 @@ import Foundation import OpenClawKit import UIKit +@MainActor final class DeviceStatusService: DeviceStatusServicing { private let networkStatus: NetworkStatusService diff --git a/apps/ios/Sources/Services/NodeServiceProtocols.swift b/apps/ios/Sources/Services/NodeServiceProtocols.swift index 1eba72e7d6a..52121ca762a 100644 --- a/apps/ios/Sources/Services/NodeServiceProtocols.swift +++ b/apps/ios/Sources/Services/NodeServiceProtocols.swift @@ -39,6 +39,7 @@ protocol LocationServicing: Sendable { func stopMonitoringSignificantLocationChanges() } +@MainActor protocol DeviceStatusServicing: Sendable { func status() async throws -> OpenClawDeviceStatusPayload func info() -> OpenClawDeviceInfoPayload