Don't show messages from Ignored nodes (#11068)

* Honor Node Ignore messages

* Screenless node fix
This commit is contained in:
HarukiToreda
2026-07-19 06:32:34 -05:00
committed by GitHub
parent b8b5582943
commit 8c6cc5dbde
16 changed files with 195 additions and 45 deletions
+6 -2
View File
@@ -93,7 +93,7 @@ class MessageStore
void addLiveMessage(StoredMessage &&msg);
void addLiveMessage(const StoredMessage &msg); // convenience overload
const std::deque<StoredMessage> &getLiveMessages() const { return liveMessages; }
const StoredMessage *tryAddFromPacket(const meshtastic_MeshPacket &mp); // Incoming/outgoing -> RAM only
// Add new messages from packets or manual input
const StoredMessage &addFromPacket(const meshtastic_MeshPacket &mp); // Incoming/outgoing → RAM only
void addFromString(uint32_t sender, uint8_t channelIndex, const std::string &text); // Manual add
@@ -111,13 +111,16 @@ class MessageStore
void deleteOldestMessageWithPeer(uint32_t peer);
void deleteAllMessagesInChannel(uint8_t channel);
void deleteAllMessagesWithPeer(uint32_t peer);
void deleteAllMessagesFromNode(uint32_t nodeNum);
// Unified accessor (for UI code, defaults to RAM buffer)
const std::deque<StoredMessage> &getMessages() const { return liveMessages; }
bool hasVisibleMessages() const;
// Helper filters for future use
std::deque<StoredMessage> getChannelMessages(uint8_t channel) const; // Only broadcast messages on a channel
std::deque<StoredMessage> getDirectMessages() const; // Only direct messages
bool shouldStorePacket(const meshtastic_MeshPacket &mp) const;
bool isMessageVisible(const StoredMessage &msg) const;
// Upgrade boot-relative timestamps once RTC is valid
void upgradeBootRelativeTimestamps();
@@ -129,6 +132,7 @@ class MessageStore
static uint16_t storeText(const char *src, size_t len);
private:
bool pruneHiddenMessages();
std::deque<StoredMessage> liveMessages; // Single in-RAM message buffer (also used for persistence)
std::string filename; // Flash filename for persistence
};