Update Screen.cpp

This commit is contained in:
HarukiToreda 2025-04-01 01:49:06 -04:00
parent 7554ff6c57
commit bb961e855e

View File

@ -2153,14 +2153,22 @@ static void drawDeviceFocused(OLEDDisplay *display, OLEDDisplayUiState *state, i
#if HAS_GPS #if HAS_GPS
if (config.position.fixed_position) { if (config.position.fixed_position) {
drawGPS(display, SCREEN_WIDTH - 44, compactFirstLine + 3, gpsStatus); if (SCREEN_WIDTH > 128) {
drawGPS(display, SCREEN_WIDTH - 53, compactFirstLine + 3, gpsStatus);
} else {
drawGPS(display, SCREEN_WIDTH - 47, compactFirstLine + 3, gpsStatus);
}
} else if (!gpsStatus || !gpsStatus->getIsConnected()) { } else if (!gpsStatus || !gpsStatus->getIsConnected()) {
String displayLine = String displayLine =
config.position.gps_mode == meshtastic_Config_PositionConfig_GpsMode_NOT_PRESENT ? "No GPS" : "GPS off"; config.position.gps_mode == meshtastic_Config_PositionConfig_GpsMode_NOT_PRESENT ? "No GPS" : "GPS off";
int posX = SCREEN_WIDTH - display->getStringWidth(displayLine) - 2; int posX = SCREEN_WIDTH - display->getStringWidth(displayLine) - 2;
display->drawString(posX, compactFirstLine + 3, displayLine); display->drawString(posX, compactFirstLine + 3, displayLine);
} else { } else {
drawGPS(display, SCREEN_WIDTH - 44, compactFirstLine + 3, gpsStatus); if (SCREEN_WIDTH > 128) {
drawGPS(display, SCREEN_WIDTH - 53, compactFirstLine + 3, gpsStatus);
} else {
drawGPS(display, SCREEN_WIDTH - 47, compactFirstLine + 3, gpsStatus);
}
} }
#endif #endif
@ -2291,13 +2299,21 @@ static void drawLoRaFocused(OLEDDisplay *display, OLEDDisplayUiState *state, int
} }
display->drawString(x + SCREEN_WIDTH - display->getStringWidth(channelStr), compactSecondLine, channelStr); display->drawString(x + SCREEN_WIDTH - display->getStringWidth(channelStr), compactSecondLine, channelStr);
// === Third Row: Node Name === // === Third Row: Node longName ===
meshtastic_NodeInfoLite *ourNode = nodeDB->getMeshNode(nodeDB->getNodeNum()); meshtastic_NodeInfoLite *ourNode = nodeDB->getMeshNode(nodeDB->getNodeNum());
if (ourNode && ourNode->has_user && strlen(ourNode->user.long_name) > 0) { if (ourNode && ourNode->has_user && strlen(ourNode->user.long_name) > 0) {
const char *longName = ourNode->user.long_name; const char *longName = ourNode->user.long_name;
int uptimeX = (SCREEN_WIDTH - display->getStringWidth(longName)) / 2; int uptimeX = (SCREEN_WIDTH - display->getStringWidth(longName)) / 2;
display->drawString(uptimeX, compactThirdLine, longName); display->drawString(uptimeX, compactThirdLine, longName);
} }
// === Fourth Row: Node shortName ===
char buf[25];
snprintf(buf, sizeof(buf), "%s\n%s", xstr(APP_VERSION_SHORT), haveGlyphs(owner.short_name) ? owner.short_name : "");
if (ourNode && ourNode->has_user && strlen(ourNode->user.long_name) > 0) {
int uptimeX = (SCREEN_WIDTH - display->getStringWidth(owner.short_name)) / 2;
display->drawString(uptimeX, compactFourthLine, owner.short_name);
}
} }
// **************************** // ****************************
@ -2332,9 +2348,8 @@ static void drawActivity(OLEDDisplay *display, OLEDDisplayUiState *state, int16_
// Restore default color after drawing // Restore default color after drawing
display->setColor(WHITE); display->setColor(WHITE);
// === Second Row: Draw any log messages === // === First Line: Draw any log messages ===
int secondRowY = y + FONT_HEIGHT_SMALL + 1; display->drawLogBuffer(x, compactFirstLine);
display->drawLogBuffer(x, secondRowY);
} }
// **************************** // ****************************
// * My Position Screen * // * My Position Screen *
@ -2373,6 +2388,8 @@ static void drawCompassAndLocationScreen(OLEDDisplay *display, OLEDDisplayUiStat
// === Second Row: My Location === // === Second Row: My Location ===
#if HAS_GPS #if HAS_GPS
bool origBold = config.display.heading_bold;
config.display.heading_bold = false;
if (config.position.fixed_position) { if (config.position.fixed_position) {
display->drawString(x + 2, compactFirstLine, "Sat:"); display->drawString(x + 2, compactFirstLine, "Sat:");
if (screenWidth > 128) { if (screenWidth > 128) {
@ -2397,6 +2414,7 @@ static void drawCompassAndLocationScreen(OLEDDisplay *display, OLEDDisplayUiStat
drawGPS(display, x + 23, compactFirstLine + 3, gpsStatus); drawGPS(display, x + 23, compactFirstLine + 3, gpsStatus);
} }
} }
config.display.heading_bold = origBold;
// === Update GeoCoord === // === Update GeoCoord ===
geoCoord.updateCoords(int32_t(gpsStatus->getLatitude()), int32_t(gpsStatus->getLongitude()), geoCoord.updateCoords(int32_t(gpsStatus->getLatitude()), int32_t(gpsStatus->getLongitude()),
int32_t(gpsStatus->getAltitude())); int32_t(gpsStatus->getAltitude()));