This commit is contained in:
Paxy 2025-07-29 01:22:35 +10:00 committed by GitHub
commit b86d8f7504
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 22 additions and 1 deletions

View File

@ -294,7 +294,7 @@ void menuHandler::messageResponseMenu()
void menuHandler::homeBaseMenu()
{
enum optionsNumbers { Back, Backlight, Position, Preset, Freetext, Bluetooth, Sleep, enumEnd };
enum optionsNumbers { Back, Backlight, Position, Preset, Freetext, Lost, Bluetooth, Sleep, enumEnd };
static const char *optionsArray[enumEnd] = {"Back"};
static int optionsEnumArray[enumEnd] = {Back};
@ -316,6 +316,8 @@ void menuHandler::homeBaseMenu()
optionsArray[options] = "New Freetext Msg";
optionsEnumArray[options++] = Freetext;
}
optionsArray[options] = "LostAndFound";
optionsEnumArray[options++] = Lost;
optionsArray[options] = "Bluetooth Toggle";
optionsEnumArray[options++] = Bluetooth;
@ -345,6 +347,9 @@ void menuHandler::homeBaseMenu()
} else if (selected == Bluetooth) {
menuQueue = bluetooth_toggle_menu;
screen->runNow();
} else if (selected == Lost) {
InputEvent event = {.inputEvent = (input_broker_event)INPUT_BROKER_LOST_TOGGLE, .kbchar = INPUT_BROKER_LOST_TOGGLE, .touchX = 0, .touchY = 0};
inputBroker->injectInputEvent(&event);
}
};
screen->showOverlayBanner(bannerOptions);

View File

@ -27,6 +27,7 @@ enum input_broker_event {
#define INPUT_BROKER_MSG_MUTE_TOGGLE 0xac
#define INPUT_BROKER_MSG_FN_SYMBOL_ON 0xf1
#define INPUT_BROKER_MSG_FN_SYMBOL_OFF 0xf2
#define INPUT_BROKER_LOST_TOGGLE 0xa1
#define INPUT_BROKER_MSG_BLUETOOTH_TOGGLE 0xAA
#define INPUT_BROKER_MSG_TAB 0x09
#define INPUT_BROKER_MSG_EMOTE_LIST 0x8F

View File

@ -74,6 +74,21 @@ int SystemCommandsModule::handleInputEvent(const InputEvent *event)
}
#endif
return 0;
case INPUT_BROKER_LOST_TOGGLE:
LOG_WARN("Lost Toggle");
if (config.device.role == meshtastic_Config_DeviceConfig_Role_CLIENT) {
LOG_WARN("Changing mode to LOST_AND_FOUND");
config.device.role = meshtastic_Config_DeviceConfig_Role_LOST_AND_FOUND;
IF_SCREEN(screen->forceDisplay(); screen->showSimpleBanner("Switching to LOST!", 3000);)
nodeDB->saveToDisk(SEGMENT_CONFIG);
} else {
LOG_WARN("Changing mode to Client");
config.device.role = meshtastic_Config_DeviceConfig_Role_CLIENT;
IF_SCREEN(screen->forceDisplay(); screen->showSimpleBanner("Switching to Client!", 3000);)
nodeDB->saveToDisk(SEGMENT_CONFIG);
}
rebootAtMsec = millis() + DEFAULT_REBOOT_SECONDS * 1000;
return true;
case INPUT_BROKER_MSG_REBOOT:
IF_SCREEN(screen->showSimpleBanner("Rebooting...", 0));
nodeDB->saveToDisk();