diff --git a/Meshtastic/Helpers/MeshPackets.swift b/Meshtastic/Helpers/MeshPackets.swift
index 7b237b2c..6e259c84 100644
--- a/Meshtastic/Helpers/MeshPackets.swift
+++ b/Meshtastic/Helpers/MeshPackets.swift
@@ -288,6 +288,12 @@ func nodeInfoPacket (nodeInfo: NodeInfo, channel: UInt32, context: NSManagedObje
newUser.shortName = nodeInfo.user.shortName
newUser.hwModel = String(describing: nodeInfo.user.hwModel).uppercased()
newUser.hwModelId = Int32(nodeInfo.user.hwModel.rawValue)
+ Task {
+ Api().loadDeviceHardwareData { (hw) in
+ let dh = hw.first(where: { $0.hwModel == newUser.hwModelId })
+ newUser.hwDisplayName = dh?.displayName
+ }
+ }
newUser.isLicensed = nodeInfo.user.isLicensed
newUser.role = Int32(nodeInfo.user.role.rawValue)
newNode.user = newUser
diff --git a/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 42.xcdatamodel/contents b/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 42.xcdatamodel/contents
index bb7621d8..6b2eaa00 100644
--- a/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 42.xcdatamodel/contents
+++ b/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 42.xcdatamodel/contents
@@ -414,6 +414,7 @@
+
diff --git a/Meshtastic/Views/Nodes/Helpers/NodeInfoItem.swift b/Meshtastic/Views/Nodes/Helpers/NodeInfoItem.swift
index 34dcdece..69235f11 100644
--- a/Meshtastic/Views/Nodes/Helpers/NodeInfoItem.swift
+++ b/Meshtastic/Views/Nodes/Helpers/NodeInfoItem.swift
@@ -12,8 +12,6 @@ import MapKit
struct NodeInfoItem: View {
@ObservedObject var node: NodeInfoEntity
- @State private var currentDevice: DeviceHardware?
- @State private var deviceHardware: [DeviceHardware] = []
var modemPreset: ModemPresets = ModemPresets(
rawValue: UserDefaults.modemPreset
@@ -30,7 +28,7 @@ struct NodeInfoItem: View {
.aspectRatio(contentMode: .fit)
.frame(width: 65, height: 65)
.cornerRadius(5)
- Text(String(currentDevice?.displayName ?? (node.user?.hwModel ?? "unset".localized)))
+ Text(String(node.user?.hwDisplayName ?? (node.user?.hwModel ?? "unset".localized)))
.font(.callout)
} else {
Image(systemName: "person.crop.circle.badge.questionmark")
@@ -42,30 +40,6 @@ struct NodeInfoItem: View {
.font(.callout)
}
}
- .onAppear(perform: {
- if currentDevice == nil {
- Api().loadDeviceHardwareData { (hw) in
- for device in hw {
- let currentHardware = node.user?.hwModel ?? "UNSET"
- let deviceString = device.hwModelSlug.replacingOccurrences(of: "_", with: "")
- if deviceString == currentHardware {
- currentDevice = device
- }
- }
- }
- }
- })
- .onChange(of: node) { newNode in
- Api().loadDeviceHardwareData { (hw) in
- for device in hw {
- let currentHardware = newNode.user?.hwModel ?? "UNSET"
- let deviceString = device.hwModelSlug.replacingOccurrences(of: "_", with: "")
- if deviceString == currentHardware {
- currentDevice = device
- }
- }
- }
- }
}
HStack(alignment: .center) {
Spacer()