From 5589d198a4f7428bed97dde63c25f16d1be6f829 Mon Sep 17 00:00:00 2001 From: Jason P Date: Mon, 12 Jan 2026 09:04:16 -0600 Subject: [PATCH] Add logging, code cleanup, and add save on delete. --- src/MessageStore.cpp | 4 +++- src/graphics/draw/MenuHandler.cpp | 35 ++++++------------------------- 2 files changed, 9 insertions(+), 30 deletions(-) diff --git a/src/MessageStore.cpp b/src/MessageStore.cpp index 45e640267..fbcfe53a1 100644 --- a/src/MessageStore.cpp +++ b/src/MessageStore.cpp @@ -15,7 +15,7 @@ // Default autosave interval 12 hours, override per device later with -DMESSAGE_AUTOSAVE_INTERVAL_SEC=300 (etc) #ifndef MESSAGE_AUTOSAVE_INTERVAL_SEC -#define MESSAGE_AUTOSAVE_INTERVAL_SEC (12 * 60 * 60) +#define MESSAGE_AUTOSAVE_INTERVAL_SEC (2 * 60 * 60) #endif // Global message text pool and state @@ -152,8 +152,10 @@ static inline void autosaveTick(MessageStore *store) // Autosave interval reached, Only save if there are unsaved messages. if (g_messageStoreHasUnsavedChanges) { + LOG_INFO("Autosaving MessageStore to flash"); store->saveToFlash(); } else { + LOG_INFO("Autosave skipped, no changes to save"); g_lastAutoSaveMs = now; } } diff --git a/src/graphics/draw/MenuHandler.cpp b/src/graphics/draw/MenuHandler.cpp index 7c17c8b92..cd4ec518a 100644 --- a/src/graphics/draw/MenuHandler.cpp +++ b/src/graphics/draw/MenuHandler.cpp @@ -449,7 +449,7 @@ void menuHandler::clockMenu() } void menuHandler::messageResponseMenu() { - enum optionsNumbers { Back = 0, ViewMode, DeleteAll, DeleteOldest, ReplyMenu, MuteChannel, Aloud, enumEnd }; + enum optionsNumbers { Back = 0, ViewMode, DeleteMenu, ReplyMenu, MuteChannel, Aloud, enumEnd }; static const char *optionsArray[enumEnd]; static int optionsEnumArray[enumEnd]; @@ -479,7 +479,7 @@ void menuHandler::messageResponseMenu() // Delete submenu optionsArray[options] = "Delete"; - optionsEnumArray[options++] = 900; + optionsEnumArray[options++] = DeleteMenu; #ifdef HAS_I2S optionsArray[options] = "Read Aloud"; @@ -520,34 +520,10 @@ void menuHandler::messageResponseMenu() nodeDB->saveToDisk(); } - // Delete submenu - } else if (selected == 900) { + } else if (selected == DeleteMenu) { menuHandler::menuQueue = menuHandler::delete_messages_menu; screen->runNow(); - // Delete oldest FIRST (only change) - } else if (selected == DeleteOldest) { - auto mode = graphics::MessageRenderer::getThreadMode(); - int ch = graphics::MessageRenderer::getThreadChannel(); - uint32_t peer = graphics::MessageRenderer::getThreadPeer(); - - if (mode == graphics::MessageRenderer::ThreadMode::ALL) { - // Global oldest - messageStore.deleteOldestMessage(); - } else if (mode == graphics::MessageRenderer::ThreadMode::CHANNEL) { - // Oldest in current channel - messageStore.deleteOldestMessageInChannel(ch); - } else if (mode == graphics::MessageRenderer::ThreadMode::DIRECT) { - // Oldest in current DM - messageStore.deleteOldestMessageWithPeer(peer); - } - - // Delete all messages - } else if (selected == DeleteAll) { - messageStore.clearAllMessages(); - graphics::MessageRenderer::clearThreadRegistries(); - graphics::MessageRenderer::clearMessageCache(); - #ifdef HAS_I2S } else if (selected == Aloud) { const meshtastic_MeshPacket &mp = devicestate.rx_text_message; @@ -703,6 +679,7 @@ void menuHandler::deleteMessagesMenu() messageStore.clearAllMessages(); graphics::MessageRenderer::clearThreadRegistries(); graphics::MessageRenderer::clearMessageCache(); + messageStore.saveToFlash(); return; } @@ -716,7 +693,7 @@ void menuHandler::deleteMessagesMenu() } else if (mode == graphics::MessageRenderer::ThreadMode::DIRECT) { messageStore.deleteOldestMessageWithPeer(peer); } - + messageStore.saveToFlash(); return; } @@ -729,7 +706,7 @@ void menuHandler::deleteMessagesMenu() } else if (mode == graphics::MessageRenderer::ThreadMode::DIRECT) { messageStore.deleteAllMessagesWithPeer(peer); } - + messageStore.saveToFlash(); return; } };