remove char counter when changing destination

shorten destination to make room for char counter, only on small displays.
This commit is contained in:
Thomas Göttgens 2023-12-12 22:28:50 +01:00 committed by Jonathan Bennett
parent dad05d7873
commit 4932e277f1

View File

@ -572,17 +572,21 @@ void CannedMessageModule::drawFrame(OLEDDisplay *display, OLEDDisplayUiState *st
channels.getName(indexChannels[this->channel])); channels.getName(indexChannels[this->channel]));
break; break;
default: default:
display->drawStringf(0 + x, 0 + y, buffer, "To: %s@%s", cannedMessageModule->getNodeName(this->dest), if (display->getWidth() > 128) {
channels.getName(indexChannels[this->channel])); display->drawStringf(0 + x, 0 + y, buffer, "To: %s@%s", cannedMessageModule->getNodeName(this->dest),
channels.getName(indexChannels[this->channel]));
} else {
display->drawStringf(0 + x, 0 + y, buffer, "To: %.5s@%.5s", cannedMessageModule->getNodeName(this->dest),
channels.getName(indexChannels[this->channel]));
}
break; break;
} }
// used chars right aligned // used chars right aligned, only when not editing the destination
uint16_t charsLeft = if (this->destSelect == CANNED_MESSAGE_DESTINATION_TYPE_NONE) {
meshtastic_Constants_DATA_PAYLOAD_LEN - this->freetext.length() - (moduleConfig.canned_message.send_bell ? 1 : 0); uint16_t charsLeft =
snprintf(buffer, sizeof(buffer), "%d left", charsLeft); meshtastic_Constants_DATA_PAYLOAD_LEN - this->freetext.length() - (moduleConfig.canned_message.send_bell ? 1 : 0);
display->drawString(x + display->getWidth() - display->getStringWidth(buffer), y + 0, buffer); snprintf(buffer, sizeof(buffer), "%d left", charsLeft);
if (this->destSelect != CANNED_MESSAGE_DESTINATION_TYPE_NONE) { display->drawString(x + display->getWidth() - display->getStringWidth(buffer), y + 0, buffer);
display->drawString(x + display->getWidth() - display->getStringWidth(buffer) - 1, y + 0, buffer);
} }
display->setColor(WHITE); display->setColor(WHITE);
display->drawStringMaxWidth( display->drawStringMaxWidth(