Rename System Frame (from Memory) and add Dismiss Frame

This commit is contained in:
Jason P
2025-07-18 19:07:32 -05:00
parent cf574c71d8
commit 42516f541e
7 changed files with 46 additions and 17 deletions

View File

@@ -375,7 +375,7 @@ void menuHandler::textMessageBaseMenu()
void menuHandler::systemBaseMenu()
{
enum optionsNumbers { Back, Notifications, ScreenOptions, PowerMenu, Test, enumEnd };
enum optionsNumbers { Back, Notifications, ScreenOptions, PowerMenu, Test, DismissSystemFrame, enumEnd };
static const char *optionsArray[enumEnd] = {"Back"};
static int optionsEnumArray[enumEnd] = {Back};
int options = 1;
@@ -396,6 +396,9 @@ void menuHandler::systemBaseMenu()
optionsEnumArray[options++] = Test;
}
optionsArray[options] = "Dismiss Frame";
optionsEnumArray[options++] = DismissSystemFrame;
BannerOverlayOptions bannerOptions;
bannerOptions.message = "System Action";
bannerOptions.optionsArrayPtr = optionsArray;
@@ -414,6 +417,9 @@ void menuHandler::systemBaseMenu()
} else if (selected == Test) {
menuHandler::menuQueue = menuHandler::test_menu;
screen->runNow();
} else if (selected == DismissSystemFrame) {
menuHandler::menuQueue = menuHandler::DismissSystemFrame;
screen->runNow();
} else if (selected == Back && !test_enabled) {
test_count++;
if (test_count > 4) {
@@ -1067,6 +1073,24 @@ void menuHandler::keyVerificationFinalPrompt()
}
}
void menuHandler::DismissSystemFrame_menu()
{
static const char *optionsArray[] = {"Back", "Confirm"};
BannerOverlayOptions bannerOptions;
bannerOptions.message = "Dismiss System Frame?";
bannerOptions.optionsArrayPtr = optionsArray;
bannerOptions.optionsCount = 2;
bannerOptions.bannerCallback = [](int selected) -> void {
if (selected == 1) {
screen->dismissCurrentFrame();
} else {
menuQueue = system_base_menu;
screen->runNow();
}
};
screen->showOverlayBanner(bannerOptions);
}
void menuHandler::handleMenuSwitch(OLEDDisplay *display)
{
if (menuQueue != menu_none)
@@ -1157,6 +1181,9 @@ void menuHandler::handleMenuSwitch(OLEDDisplay *display)
case power_menu:
powerMenu();
break;
case DismissSystemFrame:
DismissSystemFrame_menu();
break;
case throttle_message:
screen->showSimpleBanner("Too Many Attempts\nTry again in 60 seconds.", 5000);
break;