mirror of
https://github.com/meshtastic/firmware.git
synced 2025-07-31 02:45:41 +00:00
Restore menu options necessary to fundamentally dismiss items
This commit is contained in:
parent
228656bc64
commit
f84217a13b
@ -1152,6 +1152,37 @@ bool Screen::isFrameHidden(const std::string &frameName) const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Dismisses the currently displayed screen frame, if possible
|
||||||
|
// Relevant for text message, waypoint, others in future?
|
||||||
|
// Triggered with a CardKB keycombo
|
||||||
|
void Screen::hideCurrentFrame()
|
||||||
|
{
|
||||||
|
uint8_t currentFrame = ui->getUiState()->currentFrame;
|
||||||
|
bool dismissed = false;
|
||||||
|
if (currentFrame == framesetInfo.positions.textMessage && devicestate.has_rx_text_message) {
|
||||||
|
LOG_INFO("Hide Text Message");
|
||||||
|
devicestate.has_rx_text_message = false;
|
||||||
|
memset(&devicestate.rx_text_message, 0, sizeof(devicestate.rx_text_message));
|
||||||
|
} else if (currentFrame == framesetInfo.positions.waypoint && devicestate.has_rx_waypoint) {
|
||||||
|
LOG_DEBUG("Hide Waypoint");
|
||||||
|
devicestate.has_rx_waypoint = false;
|
||||||
|
hiddenFrames.waypoint = true;
|
||||||
|
dismissed = true;
|
||||||
|
} else if (currentFrame == framesetInfo.positions.wifi) {
|
||||||
|
LOG_DEBUG("Hide WiFi Screen");
|
||||||
|
hiddenFrames.wifi = true;
|
||||||
|
dismissed = true;
|
||||||
|
} else if (currentFrame == framesetInfo.positions.lora) {
|
||||||
|
LOG_INFO("Hide LoRa");
|
||||||
|
hiddenFrames.lora = true;
|
||||||
|
dismissed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dismissed) {
|
||||||
|
setFrames(FOCUS_DEFAULT); // You could also use FOCUS_PRESERVE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Screen::handleStartFirmwareUpdateScreen()
|
void Screen::handleStartFirmwareUpdateScreen()
|
||||||
{
|
{
|
||||||
LOG_DEBUG("Show firmware screen");
|
LOG_DEBUG("Show firmware screen");
|
||||||
|
@ -590,6 +590,9 @@ class Screen : public concurrency::OSThread
|
|||||||
/// Draws our SSL cert screen during boot (called from WebServer)
|
/// Draws our SSL cert screen during boot (called from WebServer)
|
||||||
void setSSLFrames();
|
void setSSLFrames();
|
||||||
|
|
||||||
|
// Dismiss the currently focussed frame, if possible (e.g. text message, waypoint)
|
||||||
|
void hideCurrentFrame();
|
||||||
|
|
||||||
// Menu-driven Show / Hide Toggle
|
// Menu-driven Show / Hide Toggle
|
||||||
void toggleFrameVisibility(const std::string &frameName);
|
void toggleFrameVisibility(const std::string &frameName);
|
||||||
bool isFrameHidden(const std::string &frameName) const;
|
bool isFrameHidden(const std::string &frameName) const;
|
||||||
|
@ -277,7 +277,9 @@ void menuHandler::messageResponseMenu()
|
|||||||
bannerOptions.optionsEnumPtr = optionsEnumArray;
|
bannerOptions.optionsEnumPtr = optionsEnumArray;
|
||||||
bannerOptions.optionsCount = options;
|
bannerOptions.optionsCount = options;
|
||||||
bannerOptions.bannerCallback = [](int selected) -> void {
|
bannerOptions.bannerCallback = [](int selected) -> void {
|
||||||
if (selected == Preset) {
|
if (selected == Dismiss) {
|
||||||
|
screen->hideCurrentFrame();
|
||||||
|
} else if (selected == Preset) {
|
||||||
if (devicestate.rx_text_message.to == NODENUM_BROADCAST) {
|
if (devicestate.rx_text_message.to == NODENUM_BROADCAST) {
|
||||||
cannedMessageModule->LaunchWithDestination(NODENUM_BROADCAST, devicestate.rx_text_message.channel);
|
cannedMessageModule->LaunchWithDestination(NODENUM_BROADCAST, devicestate.rx_text_message.channel);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user