diff --git a/Localizable.xcstrings b/Localizable.xcstrings
index 2881b290..99a00727 100644
--- a/Localizable.xcstrings
+++ b/Localizable.xcstrings
@@ -23713,18 +23713,15 @@
}
}
},
- "Version %@ includes breaking changes to devices and the client apps. Only nodes version %@ and above are supported." : {
+ "Version %@ includes substantial network optimizations and extensive changes to devices and client apps. Only nodes version %@ and above are supported." : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
- "value" : "Version %1$@ includes breaking changes to devices and the client apps. Only nodes version %2$@ and above are supported."
+ "value" : "Version %1$@ includes substantial network optimizations and extensive changes to devices and client apps. Only nodes version %2$@ and above are supported."
}
}
}
- },
- "Version 1.2 End of life (EOL) Info" : {
-
},
"Version: %@ (%@) " : {
"localizations" : {
@@ -24065,4 +24062,4 @@
}
},
"version" : "1.0"
-}
+}
\ No newline at end of file
diff --git a/Meshtastic/Assets.xcassets/HELTECV3.imageset/Contents.json b/Meshtastic/Assets.xcassets/HELTECV3.imageset/Contents.json
index 98595042..42c0472b 100644
--- a/Meshtastic/Assets.xcassets/HELTECV3.imageset/Contents.json
+++ b/Meshtastic/Assets.xcassets/HELTECV3.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "Heltec_turq.png",
+ "filename" : "heltec-v3-case.svg",
"idiom" : "universal"
}
],
diff --git a/Meshtastic/Assets.xcassets/HELTECV3.imageset/Heltec_turq.png b/Meshtastic/Assets.xcassets/HELTECV3.imageset/Heltec_turq.png
deleted file mode 100644
index c4454bcc..00000000
Binary files a/Meshtastic/Assets.xcassets/HELTECV3.imageset/Heltec_turq.png and /dev/null differ
diff --git a/Meshtastic/Assets.xcassets/HELTECV3.imageset/heltec-v3-case.svg b/Meshtastic/Assets.xcassets/HELTECV3.imageset/heltec-v3-case.svg
new file mode 100644
index 00000000..1b1d3c55
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/HELTECV3.imageset/heltec-v3-case.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Meshtastic/Assets.xcassets/LILYGOTBEAMS3CORE.imageset/Contents.json b/Meshtastic/Assets.xcassets/LILYGOTBEAMS3CORE.imageset/Contents.json
deleted file mode 100644
index 892d20eb..00000000
--- a/Meshtastic/Assets.xcassets/LILYGOTBEAMS3CORE.imageset/Contents.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "images" : [
- {
- "filename" : "tbeam_supreme.png",
- "idiom" : "universal"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/Meshtastic/Assets.xcassets/LILYGOTBEAMS3CORE.imageset/tbeam_supreme.png b/Meshtastic/Assets.xcassets/LILYGOTBEAMS3CORE.imageset/tbeam_supreme.png
deleted file mode 100644
index 6a618653..00000000
Binary files a/Meshtastic/Assets.xcassets/LILYGOTBEAMS3CORE.imageset/tbeam_supreme.png and /dev/null differ
diff --git a/Meshtastic/Assets.xcassets/NANOG2ULTRA.imageset/Contents.json b/Meshtastic/Assets.xcassets/NANOG2ULTRA.imageset/Contents.json
index 2f074381..fe8b1d15 100644
--- a/Meshtastic/Assets.xcassets/NANOG2ULTRA.imageset/Contents.json
+++ b/Meshtastic/Assets.xcassets/NANOG2ULTRA.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "nano_g2_ultra_product_image.jpg",
+ "filename" : "nano-g2-ultra.svg",
"idiom" : "universal"
}
],
diff --git a/Meshtastic/Assets.xcassets/NANOG2ULTRA.imageset/nano-g2-ultra.svg b/Meshtastic/Assets.xcassets/NANOG2ULTRA.imageset/nano-g2-ultra.svg
new file mode 100644
index 00000000..6dbe47af
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/NANOG2ULTRA.imageset/nano-g2-ultra.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Meshtastic/Assets.xcassets/NANOG2ULTRA.imageset/nano_g2_ultra_product_image.jpg b/Meshtastic/Assets.xcassets/NANOG2ULTRA.imageset/nano_g2_ultra_product_image.jpg
deleted file mode 100644
index 18f2b472..00000000
Binary files a/Meshtastic/Assets.xcassets/NANOG2ULTRA.imageset/nano_g2_ultra_product_image.jpg and /dev/null differ
diff --git a/Meshtastic/Assets.xcassets/TBEAM.imageset/Contents.json b/Meshtastic/Assets.xcassets/STATIONG2.imageset/Contents.json
similarity index 76%
rename from Meshtastic/Assets.xcassets/TBEAM.imageset/Contents.json
rename to Meshtastic/Assets.xcassets/STATIONG2.imageset/Contents.json
index 64a09f22..dc823045 100644
--- a/Meshtastic/Assets.xcassets/TBEAM.imageset/Contents.json
+++ b/Meshtastic/Assets.xcassets/STATIONG2.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "tbeam.png",
+ "filename" : "station-g2.svg",
"idiom" : "universal"
}
],
diff --git a/Meshtastic/Assets.xcassets/STATIONG2.imageset/station-g2.svg b/Meshtastic/Assets.xcassets/STATIONG2.imageset/station-g2.svg
new file mode 100644
index 00000000..8d2e0aed
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/STATIONG2.imageset/station-g2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Meshtastic/Assets.xcassets/TBEAM.imageset/tbeam.png b/Meshtastic/Assets.xcassets/TBEAM.imageset/tbeam.png
deleted file mode 100644
index 75fec7be..00000000
Binary files a/Meshtastic/Assets.xcassets/TBEAM.imageset/tbeam.png and /dev/null differ
diff --git a/Meshtastic/Assets.xcassets/TECHO.imageset/Contents.json b/Meshtastic/Assets.xcassets/TECHO.imageset/Contents.json
deleted file mode 100644
index f380b7af..00000000
--- a/Meshtastic/Assets.xcassets/TECHO.imageset/Contents.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "images" : [
- {
- "filename" : "LILYGO-TTGO-SoftRF-T-Echo-NRF52840-LoRa-SX1262-433-868-915MHz-Wireless-Module-L76K-GPS-1.png",
- "idiom" : "universal"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/Meshtastic/Assets.xcassets/TECHO.imageset/LILYGO-TTGO-SoftRF-T-Echo-NRF52840-LoRa-SX1262-433-868-915MHz-Wireless-Module-L76K-GPS-1.png b/Meshtastic/Assets.xcassets/TECHO.imageset/LILYGO-TTGO-SoftRF-T-Echo-NRF52840-LoRa-SX1262-433-868-915MHz-Wireless-Module-L76K-GPS-1.png
deleted file mode 100644
index 7b2f9f96..00000000
Binary files a/Meshtastic/Assets.xcassets/TECHO.imageset/LILYGO-TTGO-SoftRF-T-Echo-NRF52840-LoRa-SX1262-433-868-915MHz-Wireless-Module-L76K-GPS-1.png and /dev/null differ
diff --git a/Meshtastic/Assets.xcassets/TLORABOARD.imageset/Contents.json b/Meshtastic/Assets.xcassets/TLORABOARD.imageset/Contents.json
deleted file mode 100644
index f8356864..00000000
--- a/Meshtastic/Assets.xcassets/TLORABOARD.imageset/Contents.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "images" : [
- {
- "filename" : "LILYGO-TTGO-LoRa32-V2-1-1-6-Version-433-868-915Mhz-ESP32-LoRa-OLED-0-96.jpg_Q90.jpg_.webp.png",
- "idiom" : "universal"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/Meshtastic/Assets.xcassets/TLORABOARD.imageset/LILYGO-TTGO-LoRa32-V2-1-1-6-Version-433-868-915Mhz-ESP32-LoRa-OLED-0-96.jpg_Q90.jpg_.webp.png b/Meshtastic/Assets.xcassets/TLORABOARD.imageset/LILYGO-TTGO-LoRa32-V2-1-1-6-Version-433-868-915Mhz-ESP32-LoRa-OLED-0-96.jpg_Q90.jpg_.webp.png
deleted file mode 100644
index ff3da639..00000000
Binary files a/Meshtastic/Assets.xcassets/TLORABOARD.imageset/LILYGO-TTGO-LoRa32-V2-1-1-6-Version-433-868-915Mhz-ESP32-LoRa-OLED-0-96.jpg_Q90.jpg_.webp.png and /dev/null differ
diff --git a/Meshtastic/Assets.xcassets/TLORAV1.imageset/Contents.json b/Meshtastic/Assets.xcassets/TLORAV1.imageset/Contents.json
deleted file mode 100644
index 093c722d..00000000
--- a/Meshtastic/Assets.xcassets/TLORAV1.imageset/Contents.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "images" : [
- {
- "filename" : "TLORA_olive 1.png",
- "idiom" : "universal"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/Meshtastic/Assets.xcassets/TLORAV1.imageset/TLORA_olive 1.png b/Meshtastic/Assets.xcassets/TLORAV1.imageset/TLORA_olive 1.png
deleted file mode 100644
index e8980a2c..00000000
Binary files a/Meshtastic/Assets.xcassets/TLORAV1.imageset/TLORA_olive 1.png and /dev/null differ
diff --git a/Meshtastic/Assets.xcassets/UNSET.imageset/Contents.json b/Meshtastic/Assets.xcassets/UNSET.imageset/Contents.json
index 04be44d5..4508d9cd 100644
--- a/Meshtastic/Assets.xcassets/UNSET.imageset/Contents.json
+++ b/Meshtastic/Assets.xcassets/UNSET.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "play_store_icon_114px-2.png",
+ "filename" : "unknown.svg",
"idiom" : "universal"
}
],
diff --git a/Meshtastic/Assets.xcassets/UNSET.imageset/play_store_icon_114px-2.png b/Meshtastic/Assets.xcassets/UNSET.imageset/play_store_icon_114px-2.png
deleted file mode 100644
index 79cf0e00..00000000
Binary files a/Meshtastic/Assets.xcassets/UNSET.imageset/play_store_icon_114px-2.png and /dev/null differ
diff --git a/Meshtastic/Assets.xcassets/UNSET.imageset/unknown.svg b/Meshtastic/Assets.xcassets/UNSET.imageset/unknown.svg
new file mode 100644
index 00000000..8e74fbc5
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/UNSET.imageset/unknown.svg
@@ -0,0 +1,189 @@
+
+
diff --git a/Meshtastic/Extensions/CoreData/UserEntityExtension.swift b/Meshtastic/Extensions/CoreData/UserEntityExtension.swift
index 8c49b322..099d910d 100644
--- a/Meshtastic/Extensions/CoreData/UserEntityExtension.swift
+++ b/Meshtastic/Extensions/CoreData/UserEntityExtension.swift
@@ -37,7 +37,7 @@ extension UserEntity {
var hardwareImage: String? {
guard let hwModel else { return nil }
switch hwModel {
- case "HELTECV1", "HELTECV3", "HELTECV20", "HELTECV21":
+ case "HELTECV3":
return "HELTECV3"
case "HELTECWIRELESSPAPER", "HELTECWIRELESSPAPERV10":
return "HELTECWIRELESSPAPER"
@@ -45,8 +45,6 @@ extension UserEntity {
return "HELTECWIRELESSTRACKER"
case "HELTECWSLV3":
return "HELTECWSLV3"
- case "LILYGOTBEAMSCORE":
- return "LILYGOTBEAMS3CORE"
case "NANOG1", "NANOG1EXPLORER":
return "NANOG1"
case "NANOG2ULTRA":
@@ -59,14 +57,6 @@ extension UserEntity {
return "SOLAR_NODE"
case "STATIONG1":
return "STATIONG1"
- case "ТВЕАМ", "TBEAMVOP7":
- return "ТВЕАМ"
- case "TECHO":
- return "TECHO"
- case "TLORAV1", "TLORAV11P3":
- return "TLORAV1"
- case "TLORAV2", "TLORAT3S3", "TLORAV211P6", "TLORAV211P8":
- return "TLORABOARD"
case "UNPHONE":
return "UNPHONE"
default:
@@ -74,7 +64,6 @@ extension UserEntity {
}
}
}
-
public func createUser(num: Int64, context: NSManagedObjectContext) -> UserEntity {
let newUser = UserEntity(context: context)
newUser.num = Int64(num)
diff --git a/Meshtastic/Extensions/String.swift b/Meshtastic/Extensions/String.swift
index b001f2eb..b97ad1c5 100644
--- a/Meshtastic/Extensions/String.swift
+++ b/Meshtastic/Extensions/String.swift
@@ -65,7 +65,6 @@ extension String {
.replacingOccurrences(of: "([a-z])([A-Z](?=[A-Z])[a-z]*)", with: "$1 $2", options: .regularExpression)
.replacingOccurrences(of: "([A-Z])([A-Z][a-z])", with: "$1 $2", options: .regularExpression)
.replacingOccurrences(of: "([a-z])([A-Z][a-z])", with: "$1 $2", options: .regularExpression)
- .replacingOccurrences(of: "([a-z])([A-Z][a-z])", with: "$1 $2", options: .regularExpression)
}
var length: Int {
diff --git a/Meshtastic/Helpers/MeshPackets.swift b/Meshtastic/Helpers/MeshPackets.swift
index a5cfa7ba..04088e69 100644
--- a/Meshtastic/Helpers/MeshPackets.swift
+++ b/Meshtastic/Helpers/MeshPackets.swift
@@ -876,6 +876,9 @@ func textMessageAppPacket(
if fetchedUsers.first(where: { $0.num == packet.to }) != nil && packet.to != Constants.maximumNodeNum {
if !storeForwardBroadcast {
newMessage.toUser = fetchedUsers.first(where: { $0.num == packet.to })
+ } else {
+ /// Make a new to user if they are unknown
+ newMessage.toUser = createUser(num: Int64(truncatingIfNeeded: packet.to), context: context)
}
}
if fetchedUsers.first(where: { $0.num == packet.from }) != nil {
@@ -903,11 +906,14 @@ func textMessageAppPacket(
newMessage.fromUser?.publicKey = packet.publicKey
}
}
- if packet.rxTime > 0 {
- newMessage.fromUser?.userNode?.lastHeard = Date(timeIntervalSince1970: TimeInterval(Int64(packet.rxTime)))
- } else {
- newMessage.fromUser?.userNode?.lastHeard = Date()
- }
+ } else {
+ /// Make a new from user if they are unknown
+ newMessage.fromUser = createUser(num: Int64(truncatingIfNeeded: packet.to), context: context)
+ }
+ if packet.rxTime > 0 {
+ newMessage.fromUser?.userNode?.lastHeard = Date(timeIntervalSince1970: TimeInterval(Int64(packet.rxTime)))
+ } else {
+ newMessage.fromUser?.userNode?.lastHeard = Date()
}
newMessage.messagePayload = messageText
newMessage.messagePayloadMarkdown = generateMessageMarkdown(message: messageText!)
diff --git a/Meshtastic/Views/Bluetooth/InvalidVersion.swift b/Meshtastic/Views/Bluetooth/InvalidVersion.swift
index 291722f4..ba94e7c1 100644
--- a/Meshtastic/Views/Bluetooth/InvalidVersion.swift
+++ b/Meshtastic/Views/Bluetooth/InvalidVersion.swift
@@ -41,7 +41,7 @@ struct InvalidVersion: View {
.font(.title3)
.foregroundColor(.orange)
.padding(.bottom)
- Text("Version \(minimumVersion) includes breaking changes to devices and the client apps. Only nodes version \(minimumVersion) and above are supported.")
+ Text("Version \(minimumVersion) includes substantial network optimizations and extensive changes to devices and client apps. Only nodes version \(minimumVersion) and above are supported.")
.font(.callout)
.padding([.leading, .trailing, .bottom])