diff --git a/Firmware/sdk/apps/lockscreen/src/lockscreen_app.cpp b/Firmware/sdk/apps/lockscreen/src/lockscreen_app.cpp index cba685b..e9a955a 100644 --- a/Firmware/sdk/apps/lockscreen/src/lockscreen_app.cpp +++ b/Firmware/sdk/apps/lockscreen/src/lockscreen_app.cpp @@ -31,12 +31,12 @@ using Framebuffer = typename AppContext::Framebuffer; using Clock = typename AppContext::Clock; constexpr std::array kArrowUpGlyph{ - 0b00011000, 0b00111100, 0b01111110, 0b11111111, 0b00011000, 0b00011000, 0b00011000, 0b00011000, - 0b00011000, 0b00011000, 0b00011000, 0b00011000, 0b00011000, 0b00011000, 0b00000000, 0b00000000}; + 0b00010000, 0b00111000, 0b01111100, 0b11111110, 0b00010000, 0b00010000, 0b00010000, 0b00010000, + 0b00010000, 0b00010000, 0b00010000, 0b00010000, 0b00010000, 0b00010000, 0b00000000, 0b00000000}; constexpr std::array kArrowDownGlyph{ - 0b00000000, 0b00000000, 0b00011000, 0b00011000, 0b00011000, 0b00011000, 0b00011000, 0b00011000, - 0b00011000, 0b00011000, 0b00011000, 0b11111111, 0b01111110, 0b00111100, 0b00011000, 0b00000000}; + 0b00000000, 0b00000000, 0b00010000, 0b00010000, 0b00010000, 0b00010000, 0b00010000, 0b00010000, + 0b00010000, 0b00010000, 0b00010000, 0b11111110, 0b01111100, 0b00111000, 0b00010000, 0b00000000}; struct TimeSnapshot { bool hasWallTime = false; @@ -562,24 +562,18 @@ private: const std::string dateLine = formatDate(snap); drawCenteredText(framebuffer, timeY + font16x8::kGlyphHeight * scaleTime + 16, dateLine, scaleSmall, 1); - const std::string instruction = holdActive ? "KEEP HOLDING A+SELECT" : "HOLD A+SELECT"; + const std::string instruction = "HOLD A+SELECT TO UNLOCK"; const int instructionWidth = font16x8::measureText(instruction, scaleSmall, 1); - const int barHeight = 14; - const int barY = framebuffer.height() - 24; - const int textY = barY + (barHeight - textLineHeight) / 2; - const int textX = 8; - font16x8::drawText(framebuffer, textX, textY, instruction, scaleSmall, true, 1); + const int barHeight = 18; + const int barY = framebuffer.height() - 30; + const int textY = barY + (barHeight - textLineHeight) / 2 + 1; + drawCenteredText(framebuffer, textY, instruction, scaleSmall, 1); - int barX = textX + instructionWidth + 12; - int barWidth = framebuffer.width() - barX - 8; - if (barWidth < 40) { - barWidth = 40; - barX = std::min(barX, framebuffer.width() - barWidth - 8); - } - - drawRectOutline(framebuffer, barX, barY, barWidth, barHeight); + const int barWidth = framebuffer.width() - 64; + const int barX = 32; if (holdActive || holdProgressMs > 0) { + drawRectOutline(framebuffer, barX, barY, barWidth, barHeight); const int innerWidth = barWidth - 2; const int innerHeight = barHeight - 2; const float ratio = std::clamp(holdProgressMs / static_cast(kUnlockHoldMs), 0.0f, 1.0f);