Private
Public Access
1
0

Adds getting/sending messages

This commit is contained in:
2025-08-24 17:58:37 -07:00
parent b5a2f318b4
commit 3ee94a3bea
6 changed files with 345 additions and 2 deletions

View File

@@ -36,6 +36,40 @@ enum Display
self.messagePreview = messagePreview
}
}
struct Message: Identifiable
{
let id: String
let sender: Sender
let text: String
var isFromMe: Bool {
if case .me = sender { true }
else { false }
}
init(from m: Serialized.Message) {
self.id = m.guid
self.text = m.text
self.sender = if m.sender == "(Me)" {
.me
} else {
.counterpart(m.sender)
}
}
init(id: String = UUID().uuidString, sender: Sender = .me, text: String) {
self.id = id
self.sender = sender
self.text = text
}
enum Sender
{
case me
case counterpart(String)
}
}
}
enum Serialized
@@ -70,4 +104,26 @@ enum Serialized
self.date = dt
}
}
struct Message: Decodable
{
let guid: String
let sender: String
let text: String
let date: Date
init?(xpc dict: xpc_object_t)
{
guard let g: String = dict["id"] else { return nil }
let s: String = dict["sender"] ?? ""
let t: String = dict["text"] ?? ""
let d: Date = dict["date"] ?? Date(timeIntervalSince1970: 0)
self.guid = g
self.sender = s
self.text = t
self.date = d
}
}
}