mirror of
https://github.com/meshtastic/firmware.git
synced 2026-01-04 00:52:17 +00:00
Free Heap when not on Message screen
This commit is contained in:
@@ -481,6 +481,7 @@ void menuHandler::messageResponseMenu()
|
||||
} else if (selected == DismissAll) {
|
||||
messageStore.clearAllMessages();
|
||||
graphics::MessageRenderer::clearThreadRegistries();
|
||||
graphics::MessageRenderer::clearMessageCache();
|
||||
} else if (selected == DismissOldest) {
|
||||
auto mode = graphics::MessageRenderer::getThreadMode();
|
||||
int ch = graphics::MessageRenderer::getThreadChannel();
|
||||
@@ -919,9 +920,6 @@ void menuHandler::favoriteBaseMenu()
|
||||
graphics::MessageRenderer::setThreadMode(graphics::MessageRenderer::ThreadMode::DIRECT, -1,
|
||||
graphics::UIRenderer::currentFavoriteNodeNum);
|
||||
|
||||
// Reset scroll state for a fresh view
|
||||
graphics::MessageRenderer::resetScrollState();
|
||||
|
||||
// Manually create and send a UIFrameEvent to trigger the jump
|
||||
UIFrameEvent evt;
|
||||
evt.action = UIFrameEvent::Action::SWITCH_TO_TEXTMESSAGE;
|
||||
|
||||
@@ -209,8 +209,19 @@ void resetScrollState()
|
||||
scrollStartDelay = millis();
|
||||
lastTime = millis();
|
||||
|
||||
didReset = false; // <-- now valid
|
||||
didReset = false;
|
||||
}
|
||||
|
||||
// Fully free cached message data from heap
|
||||
void clearMessageCache()
|
||||
{
|
||||
std::vector<std::string>().swap(cachedLines);
|
||||
std::vector<int>().swap(cachedHeights);
|
||||
|
||||
// Reset scroll so we rebuild cleanly next time we enter the screen
|
||||
resetScrollState();
|
||||
}
|
||||
|
||||
// Current thread state
|
||||
static ThreadMode currentMode = ThreadMode::ALL;
|
||||
static int currentChannel = -1;
|
||||
|
||||
@@ -60,6 +60,9 @@ void setThreadFor(const StoredMessage &sm, const meshtastic_MeshPacket &packet);
|
||||
// Handles a new incoming/outgoing message: banner, wake, thread select, scroll reset
|
||||
void handleNewMessage(const StoredMessage &sm, const meshtastic_MeshPacket &packet);
|
||||
|
||||
// Clear Message Line Cache from Message Renderer
|
||||
void clearMessageCache();
|
||||
|
||||
} // namespace MessageRenderer
|
||||
} // namespace graphics
|
||||
#endif
|
||||
Reference in New Issue
Block a user