iOS: extract device/platform info into DeviceInfoHelper, keep Settings platform string as iOS X.Y.Z

This commit is contained in:
DoncicX
2026-02-24 13:40:35 +08:00
committed by Peter Steinberger
parent e3ac491da3
commit 32d7756d8c
5 changed files with 87 additions and 82 deletions

View File

@@ -921,44 +921,6 @@ final class GatewayConnectionController {
private static func motionAvailable() -> Bool {
CMMotionActivityManager.isActivityAvailable() || CMPedometer.isStepCountingAvailable()
}
private func platformString() -> String {
let v = ProcessInfo.processInfo.operatingSystemVersion
let name = switch UIDevice.current.userInterfaceIdiom {
case .pad:
"iPadOS"
case .phone:
"iOS"
default:
"iOS"
}
return "\(name) \(v.majorVersion).\(v.minorVersion).\(v.patchVersion)"
}
private func deviceFamily() -> String {
switch UIDevice.current.userInterfaceIdiom {
case .pad:
"iPad"
case .phone:
"iPhone"
default:
"iOS"
}
}
private func modelIdentifier() -> String {
var systemInfo = utsname()
uname(&systemInfo)
let machine = withUnsafeBytes(of: &systemInfo.machine) { ptr in
String(bytes: ptr.prefix { $0 != 0 }, encoding: .utf8)
}
let trimmed = machine?.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
return trimmed.isEmpty ? "unknown" : trimmed
}
private func appVersion() -> String {
Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "dev"
}
}
#if DEBUG
@@ -980,19 +942,19 @@ extension GatewayConnectionController {
}
func _test_platformString() -> String {
self.platformString()
DeviceInfoHelper.platformString()
}
func _test_deviceFamily() -> String {
self.deviceFamily()
DeviceInfoHelper.deviceFamily()
}
func _test_modelIdentifier() -> String {
self.modelIdentifier()
DeviceInfoHelper.modelIdentifier()
}
func _test_appVersion() -> String {
self.appVersion()
DeviceInfoHelper.appVersion()
}
func _test_setGateways(_ gateways: [GatewayDiscoveryModel.DiscoveredGateway]) {