mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
98 lines
5.5 KiB
Swift
98 lines
5.5 KiB
Swift
//
|
|
// MessageModel.swift
|
|
// MeshtasticClient
|
|
//
|
|
// Created by Garth Vander Houwen on 9/21/21.
|
|
//
|
|
import Foundation
|
|
|
|
struct MessageModel : Identifiable, Codable
|
|
{
|
|
let id: UUID
|
|
var messageId: UInt32
|
|
var messageTimestamp: Int64
|
|
var fromUserId: UInt32
|
|
var toUserId: UInt32
|
|
var fromUserLongName: String
|
|
var toUserLongName: String
|
|
var fromUserShortName: String
|
|
var toUserShortName: String
|
|
var receivedACK: Bool
|
|
var messagePayload: String
|
|
var direction: String
|
|
|
|
init(id: UUID = UUID(), messageId: UInt32, messageTimeStamp: Int64, fromUserId: UInt32, toUserId: UInt32, fromUserLongName: String, toUserLongName: String, fromUserShortName: String, toUserShortName: String, receivedACK: Bool, messagePayload: String, direction: String)
|
|
{
|
|
self.id = id
|
|
self.messageId = messageId
|
|
self.messageTimestamp = messageTimeStamp
|
|
self.fromUserId = fromUserId
|
|
self.toUserId = toUserId
|
|
self.fromUserLongName = fromUserLongName
|
|
self.toUserLongName = toUserLongName
|
|
self.fromUserShortName = fromUserShortName
|
|
self.toUserShortName = toUserShortName
|
|
self.receivedACK = receivedACK
|
|
self.messagePayload = messagePayload
|
|
self.direction = direction
|
|
}
|
|
|
|
}
|
|
|
|
extension MessageModel {
|
|
|
|
static var data: [MessageModel] {
|
|
[
|
|
// Put dev test data here
|
|
MessageModel(messageId: 3773493287, messageTimeStamp: 1632407404, fromUserId: 4064715620, toUserId: 4294967295, fromUserLongName: "TLORA V1 #1", toUserLongName: "Unknown 1", fromUserShortName: "T#", toUserShortName: "U1", receivedACK: false, messagePayload: "I sent a super great message with amazing text", direction: "received"),
|
|
MessageModel(messageId: 3773493338, messageTimeStamp: 1632643652, fromUserId: 2930161432, toUserId: 4294967295, fromUserLongName: "TBEAM ARMY GREEN", toUserLongName: "Unknown 1", fromUserShortName: "T#", toUserShortName: "U1", receivedACK: false, messagePayload: "It was the best message", direction: "received"),
|
|
MessageModel(messageId: 3773493338, messageTimeStamp: 1632643652, fromUserId: 2930161432, toUserId: 4294967295, fromUserLongName: "TBEAM ARMY GREEN", toUserLongName: "Unknown 1", fromUserShortName: "TAG", toUserShortName: "U1", receivedACK: false, messagePayload: "SwiftUI is great, but it has been lacking of specific native controls, even though that gets much better year by year. One of them was the text view. When SwiftUI was first released, it had no native ", direction: "received"),
|
|
MessageModel(messageId: 3773493338, messageTimeStamp: 1632643652, fromUserId: 2930161432, toUserId: 4294967295, fromUserLongName: "TBEAM ARMY GREEN", toUserLongName: "Unknown 1", fromUserShortName: "TAG", toUserShortName: "U1", receivedACK: false, messagePayload: "One of them was the text view. When SwiftUI was first released, it had no native equivalent of the text view; implementing a custom UIViewRepresentable type to contain UITextView was the only way to g", direction: "received"),
|
|
MessageModel(messageId: 3773493338, messageTimeStamp: 1632407404, fromUserId: 2930161432, toUserId: 4294967295, fromUserLongName: "TBEAM ARMY GREEN", toUserLongName: "Unknown 1", fromUserShortName: "TAG", toUserShortName: "U1", receivedACK: false, messagePayload: "One of them was the text view. When SwiftUI was first released, it had no native equivalent of the text view; implementing a custom UIViewRepresentable type to contain UITextView was the only way to g", direction: "received"),
|
|
|
|
MessageModel(messageId: 3773493338, messageTimeStamp: 1632643652, fromUserId: 2930161432, toUserId: 4294967295, fromUserLongName: "TBEAM ARMY GREEN", toUserLongName: "Unknown 1", fromUserShortName: "GVH", toUserShortName: "U1", receivedACK: false, messagePayload: "yo", direction: "received"),
|
|
|
|
MessageModel(messageId: 3773493338, messageTimeStamp: 1632407404, fromUserId: 2930161432, toUserId: 4294967295, fromUserLongName: "TBEAM ARMY GREEN", toUserLongName: "Unknown 1", fromUserShortName: "GVH", toUserShortName: "U1", receivedACK: false, messagePayload: "yo", direction: "received")
|
|
|
|
|
|
|
|
|
|
]
|
|
}
|
|
}
|
|
|
|
extension MessageModel {
|
|
struct Data {
|
|
var id: UUID
|
|
var messageId: UInt32
|
|
var messageTimestamp: Int64
|
|
var fromUserId: UInt32
|
|
var toUserId: UInt32
|
|
var fromUserLongName: String
|
|
var toUserLongName: String
|
|
var fromUserShortName: String
|
|
var toUserShortName: String
|
|
var receivedACK: Bool
|
|
var messagePayload: String
|
|
var direction: String
|
|
|
|
}
|
|
|
|
var data: Data {
|
|
return Data(id: id, messageId: messageId, messageTimestamp: messageTimestamp, fromUserId: fromUserId, toUserId: toUserId, fromUserLongName: fromUserLongName, toUserLongName: toUserLongName, fromUserShortName: fromUserShortName, toUserShortName: toUserShortName, receivedACK: receivedACK, messagePayload: messagePayload, direction: direction)
|
|
}
|
|
|
|
mutating func update(from data: Data) {
|
|
messageId = data.messageId
|
|
messageTimestamp = data.messageTimestamp
|
|
fromUserId = data.fromUserId
|
|
toUserId = data.toUserId
|
|
fromUserLongName = data.fromUserLongName
|
|
toUserLongName = data.toUserLongName
|
|
fromUserShortName = data.fromUserShortName
|
|
toUserShortName = data.toUserShortName
|
|
receivedACK = data.receivedACK
|
|
messagePayload = data.messagePayload
|
|
direction = data.direction
|
|
}
|
|
}
|