mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-08-02 18:26:11 +00:00
feat(ui): DM delivery status marker (pending / delivered / failed)
Outgoing direct messages now show a small delivery glyph after "Me" in the DM history, driven by MeshCore's existing end-to-end ACK (no protocol change): - · pending (awaiting ACK) - ✓ delivered (ACK matched) - ✗ failed (no ACK by the deadline) Plumbing: - DmHistEntry gains ack_status / ack_tag / ack_deadline_ms (RAM only). - sendText() captures expected_ack + est_timeout; afterSend() stores them. - AbstractUITask::onMsgAck() virtual; MyMesh::onAckRecv routes ours-only ACKs to UITask -> QuickMsgScreen::markDmDelivered(). - Status evaluated lazily (pending past deadline reads as failed); no timer. - Glyphs hand-drawn (no font has a usable check/cross), font-independent. Sends with no path (expected_ack == 0) show no marker (can't be confirmed). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
8545454f5b
commit
219a2bba5c
@@ -41,6 +41,9 @@ public:
|
||||
}
|
||||
bool hasConnection() const { return _connected; }
|
||||
virtual void onBLEDisconnected() {}
|
||||
// An end-to-end ACK (CRC) arrived for one of our sent messages — drives the
|
||||
// DM delivery-status marker. Default no-op for UIs that don't track it.
|
||||
virtual void onMsgAck(uint32_t ack_crc) { (void)ack_crc; }
|
||||
// True only when a BLE central is actually bonded/connected. On a dual
|
||||
// (BLE+USB) interface hasConnection() is always true (USB counts), so use
|
||||
// this for BLE-specific UI like the pairing-PIN prompt.
|
||||
|
||||
Reference in New Issue
Block a user