diff --git a/src/graphics/Screen.cpp b/src/graphics/Screen.cpp index 934040d88..a86a6f0eb 100644 --- a/src/graphics/Screen.cpp +++ b/src/graphics/Screen.cpp @@ -905,7 +905,7 @@ void Screen::setFrames(FrameFocus focus) // Show detailed node views only on E-Ink builds #ifdef USE_EINK - fsi.positions.nodelist_lastheard = numframes; + fsi.positions.nodelist_brc = numframes; normalFrames[numframes++] = graphics::NodeListRenderer::drawLastHeardScreen; indicatorIcons.push_back(icon_nodes); @@ -916,11 +916,15 @@ void Screen::setFrames(FrameFocus focus) fsi.positions.nodelist_distance = numframes; normalFrames[numframes++] = graphics::NodeListRenderer::drawDistanceScreen; indicatorIcons.push_back(icon_distance); + + fsi.positions.nodelist_bearings = numframes; + normalFrames[numframes++] = graphics::NodeListRenderer::drawNodeListWithCompasses; + indicatorIcons.push_back(icon_list); #endif #if HAS_GPS fsi.positions.nodelist_bearings = numframes; - normalFrames[numframes++] = graphics::NodeListRenderer::drawBRCListWithCompasses; - indicatorIcons.push_back(icon_list); + normalFrames[numframes++] = graphics::NodeListRenderer::drawBRCList; + indicatorIcons.push_back(icon_bm); fsi.positions.gps = numframes; normalFrames[numframes++] = graphics::UIRenderer::drawCompassAndLocationScreen; @@ -1386,7 +1390,8 @@ int Screen::handleInputEvent(const InputEvent *event) this->ui->getUiState()->currentFrame == framesetInfo.positions.nodelist_hopsignal || this->ui->getUiState()->currentFrame == framesetInfo.positions.nodelist_distance || this->ui->getUiState()->currentFrame == framesetInfo.positions.nodelist_hopsignal || - this->ui->getUiState()->currentFrame == framesetInfo.positions.nodelist_bearings) { + this->ui->getUiState()->currentFrame == framesetInfo.positions.nodelist_bearings || + this->ui->getUiState()->currentFrame == framesetInfo.positions.nodelist_brc) { menuHandler::nodeListMenu(); } else if (this->ui->getUiState()->currentFrame == framesetInfo.positions.wifi) { menuHandler::wifiBaseMenu(); diff --git a/src/graphics/Screen.h b/src/graphics/Screen.h index 265900131..9e31cb992 100644 --- a/src/graphics/Screen.h +++ b/src/graphics/Screen.h @@ -662,6 +662,7 @@ class Screen : public concurrency::OSThread uint8_t nodelist_hopsignal = 255; uint8_t nodelist_distance = 255; uint8_t nodelist_bearings = 255; + uint8_t nodelist_brc = 255; uint8_t clock = 255; uint8_t firstFavorite = 255; uint8_t lastFavorite = 255; diff --git a/src/graphics/draw/NodeListRenderer.cpp b/src/graphics/draw/NodeListRenderer.cpp index 519c4363e..98e5332e2 100644 --- a/src/graphics/draw/NodeListRenderer.cpp +++ b/src/graphics/draw/NodeListRenderer.cpp @@ -567,7 +567,7 @@ void drawNodeListWithCompasses(OLEDDisplay *display, OLEDDisplayUiState *state, drawNodeListScreen(display, state, x, y, "Bearings", drawEntryCompass, drawCompassArrow, heading, lat, lon); } -void drawBRCListWithCompasses(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y) +void drawBRCList(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y) { float heading = 0; bool validHeading = false; diff --git a/src/graphics/draw/NodeListRenderer.h b/src/graphics/draw/NodeListRenderer.h index 32fb8144d..ad4653cc2 100644 --- a/src/graphics/draw/NodeListRenderer.h +++ b/src/graphics/draw/NodeListRenderer.h @@ -48,7 +48,7 @@ void drawHopSignalScreen(OLEDDisplay *display, OLEDDisplayUiState *state, int16_ void drawDistanceScreen(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); void drawDynamicNodeListScreen(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); void drawNodeListWithCompasses(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); -void drawBRCListWithCompasses(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); +void drawBRCList(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); // Utility functions const char *getCurrentModeTitle(int screenWidth); diff --git a/src/graphics/images.h b/src/graphics/images.h index beef3a1b2..1f053e56b 100644 --- a/src/graphics/images.h +++ b/src/graphics/images.h @@ -156,6 +156,18 @@ const uint8_t icon_list[] PROGMEM = { 0x82 // Row 7: #.....#. }; +// ➤ The Man Icon (8x8) +const uint8_t icon_bm[] PROGMEM = { + 0x42, // Row 0: .#....#. + 0x3C, // Row 1: ..####.. + 0x3C, // Row 2: ..####.. + 0x18, // Row 3: ...##... + 0x18, // Row 4: ...##... + 0x24, // Row 5: ..#..#.. + 0x24, // Row 6: ..#..#.. + 0x42 // Row 7: .#....#. +}; + // 📶 Signal Bars Icon (left to right, small to large with spacing) const uint8_t icon_signal[] PROGMEM = { 0b00000000, // ░░░░░░░