mirror of
https://github.com/meshtastic/firmware.git
synced 2025-07-31 02:45:41 +00:00
Add Restore All Frames option
This commit is contained in:
parent
e6be655f66
commit
c8717751b3
@ -1160,6 +1160,30 @@ void Screen::dismissCurrentFrame()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Screen::restoreAllFrames()
|
||||||
|
{
|
||||||
|
dismissedFrames.textMessage = false;
|
||||||
|
dismissedFrames.waypoint = false;
|
||||||
|
dismissedFrames.wifi = false;
|
||||||
|
dismissedFrames.system = false;
|
||||||
|
dismissedFrames.home = false;
|
||||||
|
dismissedFrames.clock = false;
|
||||||
|
#ifndef USE_EINK
|
||||||
|
dismissedFrames.nodelist = false;
|
||||||
|
#endif
|
||||||
|
#ifdef USE_EINK
|
||||||
|
dismissedFrames.nodelist_lastheard = false;
|
||||||
|
dismissedFrames.nodelist_hopsignal = false;
|
||||||
|
dismissedFrames.nodelist_distance = false;
|
||||||
|
#endif
|
||||||
|
#if HAS_GPS
|
||||||
|
dismissedFrames.nodelist_bearings = false;
|
||||||
|
dismissedFrames.gps = false;
|
||||||
|
#endif
|
||||||
|
dismissedFrames.lora = false;
|
||||||
|
setFrames(FOCUS_DEFAULT);
|
||||||
|
}
|
||||||
|
|
||||||
void Screen::handleStartFirmwareUpdateScreen()
|
void Screen::handleStartFirmwareUpdateScreen()
|
||||||
{
|
{
|
||||||
LOG_DEBUG("Show firmware screen");
|
LOG_DEBUG("Show firmware screen");
|
||||||
|
@ -593,6 +593,9 @@ class Screen : public concurrency::OSThread
|
|||||||
// Dismiss the currently focussed frame, if possible (e.g. text message, waypoint)
|
// Dismiss the currently focussed frame, if possible (e.g. text message, waypoint)
|
||||||
void dismissCurrentFrame();
|
void dismissCurrentFrame();
|
||||||
|
|
||||||
|
// Restore all Frames
|
||||||
|
void restoreAllFrames();
|
||||||
|
|
||||||
#ifdef USE_EINK
|
#ifdef USE_EINK
|
||||||
/// Draw an image to remain on E-Ink display after screen off
|
/// Draw an image to remain on E-Ink display after screen off
|
||||||
void setScreensaverFrames(FrameCallback einkScreensaver = NULL);
|
void setScreensaverFrames(FrameCallback einkScreensaver = NULL);
|
||||||
|
@ -396,7 +396,7 @@ void menuHandler::textMessageBaseMenu()
|
|||||||
|
|
||||||
void menuHandler::systemBaseMenu()
|
void menuHandler::systemBaseMenu()
|
||||||
{
|
{
|
||||||
enum optionsNumbers { Back, Notifications, ScreenOptions, PowerMenu, Test, DismissFrame, enumEnd };
|
enum optionsNumbers { Back, Notifications, ScreenOptions, PowerMenu, RestoreAllFrames, Test, DismissFrame, enumEnd };
|
||||||
static const char *optionsArray[enumEnd] = {"Back"};
|
static const char *optionsArray[enumEnd] = {"Back"};
|
||||||
static int optionsEnumArray[enumEnd] = {Back};
|
static int optionsEnumArray[enumEnd] = {Back};
|
||||||
int options = 1;
|
int options = 1;
|
||||||
@ -409,6 +409,9 @@ void menuHandler::systemBaseMenu()
|
|||||||
optionsEnumArray[options++] = ScreenOptions;
|
optionsEnumArray[options++] = ScreenOptions;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
optionsArray[options] = "Restore All Frames";
|
||||||
|
optionsEnumArray[options++] = RestoreAllFrames;
|
||||||
|
|
||||||
optionsArray[options] = "Reboot/Shutdown";
|
optionsArray[options] = "Reboot/Shutdown";
|
||||||
optionsEnumArray[options++] = PowerMenu;
|
optionsEnumArray[options++] = PowerMenu;
|
||||||
|
|
||||||
@ -435,6 +438,9 @@ void menuHandler::systemBaseMenu()
|
|||||||
} else if (selected == PowerMenu) {
|
} else if (selected == PowerMenu) {
|
||||||
menuHandler::menuQueue = menuHandler::power_menu;
|
menuHandler::menuQueue = menuHandler::power_menu;
|
||||||
screen->runNow();
|
screen->runNow();
|
||||||
|
} else if (selected == RestoreAllFrames) {
|
||||||
|
menuHandler::menuQueue = menuHandler::RestoreAllFrames;
|
||||||
|
screen->runNow();
|
||||||
} else if (selected == Test) {
|
} else if (selected == Test) {
|
||||||
menuHandler::menuQueue = menuHandler::test_menu;
|
menuHandler::menuQueue = menuHandler::test_menu;
|
||||||
screen->runNow();
|
screen->runNow();
|
||||||
@ -1115,6 +1121,21 @@ void menuHandler::DismissCurrentFrame_menu()
|
|||||||
screen->showOverlayBanner(bannerOptions);
|
screen->showOverlayBanner(bannerOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void menuHandler::RestoreAllFrames_menu()
|
||||||
|
{
|
||||||
|
static const char *optionsArray[] = {"Cancel", "Confirm"};
|
||||||
|
BannerOverlayOptions bannerOptions;
|
||||||
|
bannerOptions.message = "Restore All Frames?";
|
||||||
|
bannerOptions.optionsArrayPtr = optionsArray;
|
||||||
|
bannerOptions.optionsCount = 2;
|
||||||
|
bannerOptions.bannerCallback = [](int selected) -> void {
|
||||||
|
if (selected == 1) {
|
||||||
|
screen->restoreAllFrames();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
screen->showOverlayBanner(bannerOptions);
|
||||||
|
}
|
||||||
|
|
||||||
void menuHandler::handleMenuSwitch(OLEDDisplay *display)
|
void menuHandler::handleMenuSwitch(OLEDDisplay *display)
|
||||||
{
|
{
|
||||||
if (menuQueue != menu_none)
|
if (menuQueue != menu_none)
|
||||||
@ -1208,6 +1229,9 @@ void menuHandler::handleMenuSwitch(OLEDDisplay *display)
|
|||||||
case DismissCurrentFrame:
|
case DismissCurrentFrame:
|
||||||
DismissCurrentFrame_menu();
|
DismissCurrentFrame_menu();
|
||||||
break;
|
break;
|
||||||
|
case RestoreAllFrames:
|
||||||
|
RestoreAllFrames_menu();
|
||||||
|
break;
|
||||||
case throttle_message:
|
case throttle_message:
|
||||||
screen->showSimpleBanner("Too Many Attempts\nTry again in 60 seconds.", 5000);
|
screen->showSimpleBanner("Too Many Attempts\nTry again in 60 seconds.", 5000);
|
||||||
break;
|
break;
|
||||||
|
@ -37,7 +37,8 @@ class menuHandler
|
|||||||
key_verification_init,
|
key_verification_init,
|
||||||
key_verification_final_prompt,
|
key_verification_final_prompt,
|
||||||
throttle_message,
|
throttle_message,
|
||||||
DismissCurrentFrame
|
DismissCurrentFrame,
|
||||||
|
RestoreAllFrames
|
||||||
};
|
};
|
||||||
static screenMenus menuQueue;
|
static screenMenus menuQueue;
|
||||||
|
|
||||||
@ -74,6 +75,7 @@ class menuHandler
|
|||||||
static void screenOptionsMenu();
|
static void screenOptionsMenu();
|
||||||
static void powerMenu();
|
static void powerMenu();
|
||||||
static void DismissCurrentFrame_menu();
|
static void DismissCurrentFrame_menu();
|
||||||
|
static void RestoreAllFrames_menu();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void saveUIConfig();
|
static void saveUIConfig();
|
||||||
|
Loading…
Reference in New Issue
Block a user