Add delivery confirmation and read receipts for private messages

- Implement full delivery status flow: sending → sent → delivered → read
- Add visual indicators (gray/green/blue checkmarks)
- Create DeliveryTracker service for managing confirmations
- Add end-to-end encrypted ACK and read receipt messages
- Handle ephemeral peer ID changes with message migration
- Fix message ID preservation in BinaryProtocol
- Ensure proper delivery status for incoming messages
- Add multiple triggers for sending read receipts
- Maintain full backwards compatibility with older clients

Visual indicators:
- ○ Gray circle = Sending
- ✓ Gray check = Sent
- ✓✓ Green double checks = Delivered
- ✓✓ Blue double checks = Read
- ⚠ Red triangle = Failed
This commit is contained in:
jack
2025-07-06 23:44:42 +02:00
parent b880c663c2
commit 784a809d07
8 changed files with 330 additions and 203 deletions
+2 -1
View File
@@ -1581,7 +1581,8 @@ class BluetoothMeshService: NSObject {
recipientNickname: message.recipientNickname,
senderPeerID: senderID,
mentions: message.mentions,
room: message.room
room: message.room,
deliveryStatus: nil // Will be set to .delivered in ChatViewModel
)
// Track last message time from this peer