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

@@ -374,9 +374,9 @@ struct SettingsTab: View {
.foregroundStyle(.secondary)
.lineLimit(1)
.truncationMode(.middle)
LabeledContent("Device", value: self.deviceFamily())
LabeledContent("Platform", value: self.platformString())
LabeledContent("OpenClaw", value: self.openClawVersionString())
LabeledContent("Device", value: DeviceInfoHelper.deviceFamily())
LabeledContent("Platform", value: DeviceInfoHelper.platformStringForDisplay())
LabeledContent("OpenClaw", value: DeviceInfoHelper.openClawVersionString())
}
}
}
@@ -584,32 +584,6 @@ struct SettingsTab: View {
return trimmed.isEmpty ? "Not connected" : trimmed
}
private func platformString() -> String {
let v = ProcessInfo.processInfo.operatingSystemVersion
return "iOS \(v.majorVersion).\(v.minorVersion).\(v.patchVersion)"
}
private func deviceFamily() -> String {
switch UIDevice.current.userInterfaceIdiom {
case .pad:
"iPad"
case .phone:
"iPhone"
default:
"iOS"
}
}
private func openClawVersionString() -> String {
let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "dev"
let build = Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? ""
let trimmedBuild = build.trimmingCharacters(in: .whitespacesAndNewlines)
if trimmedBuild.isEmpty || trimmedBuild == version {
return version
}
return "\(version) (\(trimmedBuild))"
}
private func featureToggle(
_ title: String,
isOn: Binding<Bool>,