mirror of
https://github.com/meshtastic/firmware.git
synced 2025-12-21 18:22:32 +00:00
Trunk fixes
This commit is contained in:
@@ -269,8 +269,7 @@ void MessageStore::clearAllMessages()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Internal helper: erase first or last message matching a predicate
|
// Internal helper: erase first or last message matching a predicate
|
||||||
template <typename Predicate>
|
template <typename Predicate> static void eraseIf(std::deque<StoredMessage> &deque, Predicate pred, bool fromBack = false)
|
||||||
static void eraseIf(std::deque<StoredMessage> &deque, Predicate pred, bool fromBack = false)
|
|
||||||
{
|
{
|
||||||
if (fromBack) {
|
if (fromBack) {
|
||||||
// Iterate from the back and erase the first match from the end
|
// Iterate from the back and erase the first match from the end
|
||||||
@@ -299,9 +298,7 @@ void MessageStore::dismissOldestMessage()
|
|||||||
// Dismiss oldest message in a specific channel
|
// Dismiss oldest message in a specific channel
|
||||||
void MessageStore::dismissOldestMessageInChannel(uint8_t channel)
|
void MessageStore::dismissOldestMessageInChannel(uint8_t channel)
|
||||||
{
|
{
|
||||||
auto pred = [channel](const StoredMessage &m) {
|
auto pred = [channel](const StoredMessage &m) { return m.type == MessageType::BROADCAST && m.channelIndex == channel; };
|
||||||
return m.type == MessageType::BROADCAST && m.channelIndex == channel;
|
|
||||||
};
|
|
||||||
eraseIf(liveMessages, pred);
|
eraseIf(liveMessages, pred);
|
||||||
eraseIf(messages, pred);
|
eraseIf(messages, pred);
|
||||||
saveToFlash();
|
saveToFlash();
|
||||||
@@ -325,8 +322,10 @@ void MessageStore::dismissOldestMessageWithPeer(uint32_t peer)
|
|||||||
// Dismiss newest message (RAM + persisted queue)
|
// Dismiss newest message (RAM + persisted queue)
|
||||||
void MessageStore::dismissNewestMessage()
|
void MessageStore::dismissNewestMessage()
|
||||||
{
|
{
|
||||||
eraseIf(liveMessages, [](StoredMessage &) { return true; }, true);
|
eraseIf(
|
||||||
eraseIf(messages, [](StoredMessage &) { return true; }, true);
|
liveMessages, [](StoredMessage &) { return true; }, true);
|
||||||
|
eraseIf(
|
||||||
|
messages, [](StoredMessage &) { return true; }, true);
|
||||||
saveToFlash();
|
saveToFlash();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,10 +36,14 @@ static std::vector<std::string> cachedLines;
|
|||||||
static std::vector<int> cachedHeights;
|
static std::vector<int> cachedHeights;
|
||||||
|
|
||||||
// UTF-8 skip helper
|
// UTF-8 skip helper
|
||||||
inline size_t utf8CharLen(uint8_t c) {
|
inline size_t utf8CharLen(uint8_t c)
|
||||||
if ((c & 0xE0) == 0xC0) return 2;
|
{
|
||||||
if ((c & 0xF0) == 0xE0) return 3;
|
if ((c & 0xE0) == 0xC0)
|
||||||
if ((c & 0xF8) == 0xF0) return 4;
|
return 2;
|
||||||
|
if ((c & 0xF0) == 0xE0)
|
||||||
|
return 3;
|
||||||
|
if ((c & 0xF8) == 0xF0)
|
||||||
|
return 4;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -229,7 +233,8 @@ const std::vector<uint32_t> &getSeenPeers()
|
|||||||
return seenPeers;
|
return seenPeers;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int centerYForRow(int y, int size) {
|
inline int centerYForRow(int y, int size)
|
||||||
|
{
|
||||||
int midY = y + (FONT_HEIGHT_SMALL / 2);
|
int midY = y + (FONT_HEIGHT_SMALL / 2);
|
||||||
return midY - (size / 2);
|
return midY - (size / 2);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user