Compare commits

...

3 Commits

Author SHA1 Message Date
Gokul
fa63c7c865
Merge 38ee755033 into d403044f76 2026-02-03 18:32:54 +03:00
Aaron Cunliffe
d403044f76
fix: Increase network SSID display length (#670)
Some checks are pending
CI / build (push) Waiting to run
## Rationale 

I have 2 wifi access points with almost identical names, just one has
`_EXT` at the end of it. With the current display limit of 13 characters
before adding ellipsis, I can't tell which is which.

Before device screenshot with masked SSIDs:
<img
src="https://github.com/user-attachments/assets/3c5cbbaa-b2f6-412f-b5a8-6278963bd0f2"
width="300">


## Summary

Adjusted displayed length from 13 characters to 30 in the Wifi selection
screen - I've left some space for potential proportional font changes in
the future

After image with masked SSIDs:
<img
src="https://github.com/user-attachments/assets/c5f0712b-bbd3-4eec-9820-4693fae90c9f"
width="300">

---

### AI Usage

While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? _**< NO >**_
2026-02-03 18:24:23 +03:00
gokulp01
38ee755033 double shift to caps 2026-01-31 11:26:33 -06:00
3 changed files with 29 additions and 5 deletions

View File

@ -546,8 +546,8 @@ void WifiSelectionActivity::renderNetworkList() const {
// Draw network name (truncate if too long)
std::string displayName = network.ssid;
if (displayName.length() > 16) {
displayName.replace(13, displayName.length() - 13, "...");
if (displayName.length() > 33) {
displayName.replace(30, displayName.length() - 30, "...");
}
renderer.drawText(UI_10_FONT_ID, 20, networkY, displayName.c_str());

View File

@ -92,8 +92,26 @@ void KeyboardEntryActivity::handleKeyPress() {
// Handle special row (bottom row with shift, space, backspace, done)
if (selectedRow == SPECIAL_ROW) {
if (selectedCol >= SHIFT_COL && selectedCol < SPACE_COL) {
// Shift toggle
// Shift toggle (double-tap enables caps lock)
const unsigned long now = millis();
const bool isDoubleTap = (lastShiftTapMs != 0) && ((now - lastShiftTapMs) <= SHIFT_DOUBLE_TAP_MS);
if (capsLockActive) {
capsLockActive = false;
shiftActive = false;
lastShiftTapMs = 0;
return;
}
if (isDoubleTap) {
capsLockActive = true;
shiftActive = true;
lastShiftTapMs = 0;
return;
}
shiftActive = !shiftActive;
lastShiftTapMs = now;
return;
}
@ -131,8 +149,9 @@ void KeyboardEntryActivity::handleKeyPress() {
if (maxLength == 0 || text.length() < maxLength) {
text += c;
// Auto-disable shift after typing a letter
if (shiftActive && ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))) {
if (shiftActive && !capsLockActive && ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))) {
shiftActive = false;
lastShiftTapMs = 0;
}
}
}
@ -318,7 +337,8 @@ void KeyboardEntryActivity::render() const {
// SHIFT key (logical col 0, spans 2 key widths)
const bool shiftSelected = (selectedRow == 4 && selectedCol >= SHIFT_COL && selectedCol < SPACE_COL);
renderItemWithSelector(currentX + 2, rowY, shiftActive ? "SHIFT" : "shift", shiftSelected);
const char* shiftLabel = capsLockActive ? "CAPS" : (shiftActive ? "SHIFT" : "shift");
renderItemWithSelector(currentX + 2, rowY, shiftLabel, shiftSelected);
currentX += 2 * (keyWidth + keySpacing);
// Space bar (logical cols 2-6, spans 5 key widths)

View File

@ -71,6 +71,10 @@ class KeyboardEntryActivity : public Activity {
int selectedRow = 0;
int selectedCol = 0;
bool shiftActive = false;
bool capsLockActive = false;
unsigned long lastShiftTapMs = 0;
static constexpr unsigned long SHIFT_DOUBLE_TAP_MS = 500;
// Callbacks
OnCompleteCallback onComplete;