mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-25 13:25:20 +00:00
Add private chat feature and fix peer discovery issues
- Implement 1:1 private messaging with IRC-style interface - Add private message type to protocol with routing through mesh - Show orange notification dot for unread private messages - Fix peer list not showing connected peers - Update peer nicknames immediately on first message - Auto-exit private chat when peer disconnects - Improve join/leave channel messages visibility - Make send button larger for better UX - Center and color private chat header in orange
This commit is contained in:
@@ -8,6 +8,8 @@ enum MessageType: UInt8 {
|
||||
case relay = 0x04
|
||||
case announce = 0x05
|
||||
case keyExchange = 0x06
|
||||
case leave = 0x07
|
||||
case privateMessage = 0x08
|
||||
}
|
||||
|
||||
struct BitchatPacket: Codable {
|
||||
@@ -40,21 +42,27 @@ struct BitchatPacket: Codable {
|
||||
}
|
||||
}
|
||||
|
||||
struct BitchatMessage: Codable {
|
||||
struct BitchatMessage: Codable, Equatable {
|
||||
let id: String
|
||||
let sender: String
|
||||
let content: String
|
||||
let timestamp: Date
|
||||
let isRelay: Bool
|
||||
let originalSender: String?
|
||||
let isPrivate: Bool
|
||||
let recipientNickname: String?
|
||||
let senderPeerID: String?
|
||||
|
||||
init(sender: String, content: String, timestamp: Date, isRelay: Bool, originalSender: String? = nil) {
|
||||
init(sender: String, content: String, timestamp: Date, isRelay: Bool, originalSender: String? = nil, isPrivate: Bool = false, recipientNickname: String? = nil, senderPeerID: String? = nil) {
|
||||
self.id = UUID().uuidString
|
||||
self.sender = sender
|
||||
self.content = content
|
||||
self.timestamp = timestamp
|
||||
self.isRelay = isRelay
|
||||
self.originalSender = originalSender
|
||||
self.isPrivate = isPrivate
|
||||
self.recipientNickname = recipientNickname
|
||||
self.senderPeerID = senderPeerID
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user