From b202559d3712c1b6e08731c620b10d97fa2ac7b4 Mon Sep 17 00:00:00 2001 From: Jason P Date: Sun, 16 Nov 2025 14:18:16 -0600 Subject: [PATCH] Add code for preserving favorites, also move to Home screen before reseting (#8647) --- src/graphics/draw/MenuHandler.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/graphics/draw/MenuHandler.cpp b/src/graphics/draw/MenuHandler.cpp index e1d309a10..7d70ec35a 100644 --- a/src/graphics/draw/MenuHandler.cpp +++ b/src/graphics/draw/MenuHandler.cpp @@ -790,17 +790,24 @@ void menuHandler::nodeNameLengthMenu() void menuHandler::resetNodeDBMenu() { - static const char *optionsArray[] = {"Back", "Confirm"}; + static const char *optionsArray[] = {"Back", "Reset All", "Preserve Favorites"}; BannerOverlayOptions bannerOptions; bannerOptions.message = "Confirm Reset NodeDB"; bannerOptions.optionsArrayPtr = optionsArray; - bannerOptions.optionsCount = 2; + bannerOptions.optionsCount = 3; bannerOptions.bannerCallback = [](int selected) -> void { - if (selected == 1) { + if (selected == 1 || selected == 2) { disableBluetooth(); + screen->setFrames(Screen::FOCUS_DEFAULT); + } + if (selected == 1) { LOG_INFO("Initiate node-db reset"); nodeDB->resetNodes(); rebootAtMsec = (millis() + DEFAULT_REBOOT_SECONDS * 1000); + } else if (selected == 2) { + LOG_INFO("Initiate node-db reset but keeping favorites"); + nodeDB->resetNodes(1); + rebootAtMsec = (millis() + DEFAULT_REBOOT_SECONDS * 1000); } }; screen->showOverlayBanner(bannerOptions);