Group box for Position Altitude Chart on the node map

Save Prefered node id so messages show up when not connected via ble
This commit is contained in:
Garth Vander Houwen 2023-11-20 13:20:55 -08:00
parent 3305399ded
commit e7a5aa40f0
5 changed files with 15 additions and 4 deletions

View file

@ -12,6 +12,7 @@ extension UserDefaults {
case enableRangeTest
case meshtasticUsername
case preferredPeripheralId
case preferredPeripheralNum
case provideLocation
case provideLocationInterval
case mapLayer
@ -53,6 +54,14 @@ extension UserDefaults {
UserDefaults.standard.set(newValue, forKey: "preferredPeripheralId")
}
}
static var preferredPeripheralNum: Int {
get {
UserDefaults.standard.integer(forKey: "preferredPeripheralNum")
}
set {
UserDefaults.standard.set(newValue, forKey: "preferredPeripheralNum")
}
}
static var provideLocation: Bool {
get {
UserDefaults.standard.bool(forKey: "provideLocation")

View file

@ -486,6 +486,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, MqttClientProxyManagerDelegate
let myInfo = myInfoPacket(myInfo: decodedInfo.myInfo, peripheralId: self.connectedPeripheral.id, context: context!)
if myInfo != nil {
UserDefaults.preferredPeripheralNum = Int(myInfo!.myNodeNum)
connectedPeripheral.num = myInfo!.myNodeNum
connectedPeripheral.name = myInfo?.bleName ?? "unknown".localized
connectedPeripheral.longName = myInfo?.bleName ?? "unknown".localized

View file

@ -30,6 +30,7 @@ struct ChannelMessageList: View {
@State private var deleteMessageId: Int64 = 0
@State private var replyMessageId: Int64 = 0
@State private var sendPositionWithMessage: Bool = false
@AppStorage("preferredPeripheralNum") private var preferredPeripheralNum = -1
var body: some View {
VStack {
@ -39,7 +40,7 @@ struct ChannelMessageList: View {
ScrollView {
LazyVStack {
ForEach( channel.allPrivateMessages ) { (message: MessageEntity) in
let currentUser: Bool = (bleManager.connectedPeripheral?.num ?? -1 == message.fromUser?.num ? true : false)
let currentUser: Bool = (Int64(preferredPeripheralNum) == message.fromUser?.num ? true : false)
if message.replyID > 0 {
let messageReply = channel.allPrivateMessages.first(where: { $0.messageId == message.replyID })
HStack {

View file

@ -72,7 +72,7 @@ struct Messages: View {
}
if UserDefaults.preferredPeripheralId.count > 0 {
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(bleManager.connectedPeripheral?.num ?? -1))
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(UserDefaults.preferredPeripheralNum))
do {
guard let fetchedNode = try context.fetch(fetchNodeInfoRequest) as? [NodeInfoEntity] else {
return

View file

@ -25,7 +25,8 @@ struct PositionAltitudeChart: View {
var body: some View {
let nodePositions = Array(node.positions!) as! [PositionEntity]
let data = nodePositions.map { PositionAltitude(time: $0.time ?? Date(), altitude: Measurement(value: Double($0.altitude), unit: .meters) ) }
HStack {
GroupBox(label: Label("Altitude", systemImage: "mountain.2")) {
Chart(data, id: \.time) {
LineMark(
x: .value("Time", $0.time),
@ -56,7 +57,6 @@ struct PositionAltitudeChart: View {
}
.chartXAxis(.visible)
}
.padding()
.background(Color(UIColor.secondarySystemBackground))
.opacity(/*@START_MENU_TOKEN@*/0.8/*@END_MENU_TOKEN@*/)
}