mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
Block the range test
This commit is contained in:
parent
058e5e2452
commit
b304b81d5f
8 changed files with 41 additions and 14 deletions
|
|
@ -9,6 +9,7 @@ import Foundation
|
|||
|
||||
extension UserDefaults {
|
||||
enum Keys: String, CaseIterable {
|
||||
case enableRangeTest
|
||||
case meshtasticUsername
|
||||
case preferredPeripheralId
|
||||
case provideLocation
|
||||
|
|
@ -25,6 +26,13 @@ extension UserDefaults {
|
|||
func reset() {
|
||||
Keys.allCases.forEach { removeObject(forKey: $0.rawValue) }
|
||||
}
|
||||
static var blockRangeTest: Bool {
|
||||
get {
|
||||
UserDefaults.standard.bool(forKey: "blockRangeTest")
|
||||
} set {
|
||||
UserDefaults.standard.set(newValue, forKey: "blockRangeTest")
|
||||
}
|
||||
}
|
||||
static var meshtasticUsername: String {
|
||||
get {
|
||||
UserDefaults.standard.string(forKey: "meshtasticUsername") ?? ""
|
||||
|
|
|
|||
|
|
@ -531,7 +531,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, MqttClientProxyManagerDelegate
|
|||
if !nowKnown { MeshLogger.log("🕸️ MESH PACKET received for Unknown App UNHANDLED \((try? decodedInfo.packet.jsonString()) ?? "JSON Decode Failure")") }
|
||||
|
||||
case .textMessageApp, .detectionSensorApp:
|
||||
textMessageAppPacket(packet: decodedInfo.packet, connectedNode: (self.connectedPeripheral != nil ? connectedPeripheral.num : 0), context: context!)
|
||||
textMessageAppPacket(packet: decodedInfo.packet, blockRangeTest: UserDefaults.blockRangeTest, connectedNode: (self.connectedPeripheral != nil ? connectedPeripheral.num : 0), context: context!)
|
||||
case .remoteHardwareApp:
|
||||
MeshLogger.log("🕸️ MESH PACKET received for Remote Hardware App UNHANDLED \((try? decodedInfo.packet.jsonString()) ?? "JSON Decode Failure")")
|
||||
case .positionApp:
|
||||
|
|
@ -553,8 +553,8 @@ class BLEManager: NSObject, CBPeripheralDelegate, MqttClientProxyManagerDelegate
|
|||
case .storeForwardApp:
|
||||
storeAndForwardPacket(packet: decodedInfo.packet, connectedNodeNum: (self.connectedPeripheral != nil ? connectedPeripheral.num : 0), context: context!)
|
||||
case .rangeTestApp:
|
||||
if wantRangeTestPackets {
|
||||
textMessageAppPacket(packet: decodedInfo.packet, connectedNode: (self.connectedPeripheral != nil ? connectedPeripheral.num : 0), context: context!)
|
||||
if wantRangeTestPackets && !UserDefaults.blockRangeTest {
|
||||
textMessageAppPacket(packet: decodedInfo.packet, blockRangeTest: false, connectedNode: (self.connectedPeripheral != nil ? connectedPeripheral.num : 0), context: context!)
|
||||
}
|
||||
else {
|
||||
MeshLogger.log("🕸️ MESH PACKET received for Range Test App UNHANDLED \((try? decodedInfo.packet.jsonString()) ?? "JSON Decode Failure")")
|
||||
|
|
|
|||
|
|
@ -711,9 +711,13 @@ func telemetryPacket(packet: MeshPacket, connectedNode: Int64, context: NSManage
|
|||
}
|
||||
}
|
||||
|
||||
func textMessageAppPacket(packet: MeshPacket, connectedNode: Int64, context: NSManagedObjectContext) {
|
||||
func textMessageAppPacket(packet: MeshPacket, blockRangeTest: Bool, connectedNode: Int64, context: NSManagedObjectContext) {
|
||||
|
||||
if let messageText = String(bytes: packet.decoded.payload, encoding: .utf8) {
|
||||
|
||||
if blockRangeTest && messageText.starts(with: "seq ") {
|
||||
return
|
||||
}
|
||||
|
||||
MeshLogger.log("💬 \("mesh.log.textmessage.received".localized)")
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ struct AppSettings: View {
|
|||
@StateObject var locationHelper = LocationHelper()
|
||||
@State var meshtasticUsername: String = UserDefaults.meshtasticUsername
|
||||
@State var provideLocation: Bool = UserDefaults.provideLocation
|
||||
@State var blockRangeTest: Bool = UserDefaults.blockRangeTest
|
||||
@State var provideLocationInterval: Int = UserDefaults.provideLocationInterval
|
||||
@State private var isPresentingCoreDataResetConfirm = false
|
||||
@State private var isPresentingDeleteMapTilesConfirm = false
|
||||
|
|
@ -28,6 +29,13 @@ struct AppSettings: View {
|
|||
.disableAutocorrection(true)
|
||||
.listRowSeparator(.visible)
|
||||
}
|
||||
Section(header: Text("options")) {
|
||||
|
||||
Toggle(isOn: $blockRangeTest) {
|
||||
Label("range.test.blocked", systemImage: "x.circle")
|
||||
}
|
||||
.toggleStyle(SwitchToggleStyle(tint: .accentColor))
|
||||
}
|
||||
Section(header: Text("phone.gps")) {
|
||||
let accuracy = Measurement(value: locationHelper.locationManager.location?.horizontalAccuracy ?? 300, unit: UnitLength.meters)
|
||||
let altitiude = Measurement(value: locationHelper.locationManager.location?.altitude ?? 0, unit: UnitLength.meters)
|
||||
|
|
@ -115,16 +123,16 @@ struct AppSettings: View {
|
|||
print("delete all tiles")
|
||||
}
|
||||
}
|
||||
ForEach(MapTileServer.allCases, id: \.self) { tsl in
|
||||
Button {
|
||||
tileManager.remove(for: tsl)
|
||||
totalDownloadedTileSize = tileManager.getAllDownloadedSize()
|
||||
} label: {
|
||||
Label("Delete \(tsl.description) Tiles", systemImage: "trash")
|
||||
.foregroundColor(.red)
|
||||
.font(.footnote)
|
||||
}
|
||||
}
|
||||
// ForEach(MapTileServer.allCases, id: \.self) { tsl in
|
||||
// Button {
|
||||
// tileManager.remove(for: tsl)
|
||||
// totalDownloadedTileSize = tileManager.getAllDownloadedSize()
|
||||
// } label: {
|
||||
// Label("Delete \(tsl.description) Tiles", systemImage: "trash")
|
||||
// .foregroundColor(.red)
|
||||
// .font(.footnote)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -140,6 +148,9 @@ struct AppSettings: View {
|
|||
.onAppear {
|
||||
self.bleManager.context = context
|
||||
}
|
||||
.onChange(of: blockRangeTest) { newBlockRangeTest in
|
||||
UserDefaults.blockRangeTest = newBlockRangeTest
|
||||
}
|
||||
.onChange(of: (meshtasticUsername)) { newMeshtasticUsername in
|
||||
UserDefaults.meshtasticUsername = newMeshtasticUsername
|
||||
}
|
||||
|
|
|
|||
|
|
@ -214,6 +214,7 @@
|
|||
"provide.location"="Standort im Mesh veröffentlichen";
|
||||
"radio.configuration"="Geräteeinstellungen";
|
||||
"range.test"="Entfernungstest";
|
||||
"range.test.blocked"="Block Range Test";
|
||||
"range.test.config"="Entfernungstest Konfiguration";
|
||||
"reboot"="Reboot";
|
||||
"reboot.node"="Node neustarten?";
|
||||
|
|
|
|||
|
|
@ -217,6 +217,7 @@
|
|||
"provide.location"="Share location";
|
||||
"radio.configuration"="Radio Configuration";
|
||||
"range.test"="Range Test";
|
||||
"range.test.blocked"="Block Range Test";
|
||||
"range.test.config"="Range Test Config";
|
||||
"reply"="Reply";
|
||||
"reboot"="Reboot";
|
||||
|
|
|
|||
|
|
@ -215,6 +215,7 @@
|
|||
"provide.location"="Udostępnij lokalizację";
|
||||
"radio.configuration"="Konfiguracja radia";
|
||||
"range.test"="Test zasięgu";
|
||||
"range.test.blocked"="Block Range Test";
|
||||
"range.test.config"="Konfiguracja testu zasięgu";
|
||||
"reply"="Odpowiedz";
|
||||
"reboot"="Uruchom ponownie";
|
||||
|
|
|
|||
|
|
@ -214,6 +214,7 @@
|
|||
"provide.location"="提供定位到 Mesh 网络";
|
||||
"radio.configuration"="电台配置";
|
||||
"range.test"="拉距测试";
|
||||
"range.test.blocked"="Block Range Test";
|
||||
"range.test.config"="拉距测试配置";
|
||||
"reply"="回复";
|
||||
"reboot"="重启";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue