Rework Delete flow

This commit is contained in:
Jason P
2025-11-10 11:23:25 -06:00
parent fb2223ada3
commit cde626cf56

View File

@@ -601,28 +601,36 @@ void menuHandler::deleteMessagesMenu()
{ {
enum optionsNumbers { Back = 0, DeleteOldest, DeleteThis, DeleteAll, enumEnd }; enum optionsNumbers { Back = 0, DeleteOldest, DeleteThis, DeleteAll, enumEnd };
static const char *optionsArray[enumEnd];
static int optionsEnumArray[enumEnd];
int options = 0;
auto mode = graphics::MessageRenderer::getThreadMode(); auto mode = graphics::MessageRenderer::getThreadMode();
optionsArray[options] = "Back";
optionsEnumArray[options++] = Back;
optionsArray[options] = "Delete Oldest";
optionsEnumArray[options++] = DeleteOldest;
// If viewing ALL chats → hide “Delete This Chat”
if (mode != graphics::MessageRenderer::ThreadMode::ALL) {
optionsArray[options] = "Delete This Chat";
optionsEnumArray[options++] = DeleteThis;
}
#if defined(M5STACK_UNITC6L) #if defined(M5STACK_UNITC6L)
static const char *optionsArrayAll[] = {"Back", "Delete Oldest", "Delete All"}; optionsArray[options] = "Delete All";
static const char *optionsArrayNormal[] = {"Back", "Delete Oldest", "Delete This Chat", "Delete All"};
#else #else
static const char *optionsArrayAll[] = {"Back", "Delete Oldest", "Delete All Chats"}; optionsArray[options] = "Delete All Chats";
static const char *optionsArrayNormal[] = {"Back", "Delete Oldest", "Delete This Chat", "Delete All Chats"};
#endif #endif
optionsEnumArray[options++] = DeleteAll;
BannerOverlayOptions bannerOptions; BannerOverlayOptions bannerOptions;
bannerOptions.message = "Delete Messages"; bannerOptions.message = "Delete Messages";
// If viewing ALL chats → hide “Delete This Chat” bannerOptions.optionsArrayPtr = optionsArray;
if (mode == graphics::MessageRenderer::ThreadMode::ALL) { bannerOptions.optionsEnumPtr = optionsEnumArray;
bannerOptions.optionsArrayPtr = optionsArrayAll; bannerOptions.optionsCount = options;
bannerOptions.optionsCount = 3;
} else {
bannerOptions.optionsArrayPtr = optionsArrayNormal;
bannerOptions.optionsCount = 4;
}
bannerOptions.bannerCallback = [mode](int selected) -> void { bannerOptions.bannerCallback = [mode](int selected) -> void {
int ch = graphics::MessageRenderer::getThreadChannel(); int ch = graphics::MessageRenderer::getThreadChannel();
uint32_t peer = graphics::MessageRenderer::getThreadPeer(); uint32_t peer = graphics::MessageRenderer::getThreadPeer();
@@ -634,6 +642,7 @@ void menuHandler::deleteMessagesMenu()
} }
if (selected == DeleteAll) { if (selected == DeleteAll) {
LOG_INFO("Deleting all messages");
messageStore.clearAllMessages(); messageStore.clearAllMessages();
graphics::MessageRenderer::clearThreadRegistries(); graphics::MessageRenderer::clearThreadRegistries();
graphics::MessageRenderer::clearMessageCache(); graphics::MessageRenderer::clearMessageCache();
@@ -641,6 +650,7 @@ void menuHandler::deleteMessagesMenu()
} }
if (selected == DeleteOldest) { if (selected == DeleteOldest) {
LOG_INFO("Deleting oldest message");
if (mode == graphics::MessageRenderer::ThreadMode::ALL) { if (mode == graphics::MessageRenderer::ThreadMode::ALL) {
messageStore.deleteOldestMessage(); messageStore.deleteOldestMessage();
@@ -655,6 +665,7 @@ void menuHandler::deleteMessagesMenu()
// This only appears in non-ALL modes // This only appears in non-ALL modes
if (selected == DeleteThis) { if (selected == DeleteThis) {
LOG_INFO("Deleting all messages in this thread");
if (mode == graphics::MessageRenderer::ThreadMode::CHANNEL) { if (mode == graphics::MessageRenderer::ThreadMode::CHANNEL) {
messageStore.deleteAllMessagesInChannel(ch); messageStore.deleteAllMessagesInChannel(ch);