diff --git a/src/modules/CannedMessageModule.cpp b/src/modules/CannedMessageModule.cpp index d86878a8d..24e8339e3 100644 --- a/src/modules/CannedMessageModule.cpp +++ b/src/modules/CannedMessageModule.cpp @@ -880,8 +880,10 @@ bool CannedMessageModule::handleFreeTextInput(const InputEvent *event) // All hardware keys fall through to here (CardKB, physical, etc.) if (event->kbchar == INPUT_BROKER_MSG_EMOTE_LIST) { - updateState(CANNED_MESSAGE_RUN_STATE_EMOTE_PICKER); - screen->forceDisplay(); + if (graphics::numEmotes > 0) { // no picker on EXCLUDE_EMOJI builds (empty emotes[]) + updateState(CANNED_MESSAGE_RUN_STATE_EMOTE_PICKER); + screen->forceDisplay(); + } return true; } // Confirm select (Enter) @@ -965,6 +967,11 @@ bool CannedMessageModule::handleFreeTextInput(const InputEvent *event) int CannedMessageModule::handleEmotePickerInput(const InputEvent *event) { int numEmotes = graphics::numEmotes; + if (numEmotes == 0) { // EXCLUDE_EMOJI: emotes[] is empty, any index would read out of bounds + updateState(CANNED_MESSAGE_RUN_STATE_FREETEXT, true); + screen->forceDisplay(); + return 1; + } // Override isDown and isSelect ONLY for emote picker behavior bool isUp = isUpEvent(event); diff --git a/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/platformio.ini b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/platformio.ini index 82a4e1953..c4cff6b13 100644 --- a/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/platformio.ini +++ b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/platformio.ini @@ -15,6 +15,7 @@ board = promicro-nrf52840 build_flags = ${nrf52840_base.build_flags} -I variants/nrf52840/diy/nrf52_promicro_diy_tcxo -D NRF52_PROMICRO_DIY + -D EXCLUDE_EMOJI ; this variant builds 4 radio driver families and is the largest nrf52 image; emote bitmaps don't fit under the 0xEA000 warm-store cap build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/diy/nrf52_promicro_diy_tcxo> debug_tool = jlink