T-Decks Pro & Max: reverted back to Q to exit in most instances (not involving text entry, where it remains sh+del to exit)

This commit is contained in:
pelgraine
2026-07-18 18:16:27 +10:00
parent 627039cd36
commit b90edc5995
22 changed files with 114 additions and 108 deletions
+10 -7
View File
@@ -4953,7 +4953,7 @@ void handleKeyboardInput() {
// - Playing: navigate home, audio continues in background
// - Paused/stopped: close book, return to file list
// - File list: exit player entirely
if (key == KEY_CANCEL) {
if (key == KEY_CANCEL || key == 'q') {
if (abPlayer->isBookOpen()) {
if (abPlayer->isAudioActive()) {
// Audio is playing -- leave screen, audio continues via audioTick()
@@ -4997,6 +4997,8 @@ void handleKeyboardInput() {
ui_task.forceRefresh();
return;
}
// 'q' = back/cancel in every voice mode (no text entry here); treat as Shift+Del.
if (key == 'q') key = KEY_CANCEL;
// Shift+Del from message list exits voice screen
if (key == KEY_CANCEL && voiceScr->getMode() == VoiceMessageScreen::MESSAGE_LIST) {
Serial.println("Exiting voice message screen");
@@ -5017,7 +5019,7 @@ void handleKeyboardInput() {
// Shift+Del: if reading, reader handles it (close book -> file list)
// if on file list, exit reader entirely
if (key == KEY_CANCEL) {
if (key == KEY_CANCEL || key == 'q') {
if (reader->isReading()) {
// Let the reader handle Shift+Del (close book, go to file list)
ui_task.injectKey(KEY_CANCEL);
@@ -5167,7 +5169,7 @@ void handleKeyboardInput() {
SettingsScreen* settings = (SettingsScreen*)ui_task.getSettingsScreen();
// Shift+Del: exit settings (when not editing)
if (!settings->isEditing() && (key == KEY_CANCEL)) {
if (!settings->isEditing() && (key == KEY_CANCEL || key == 'q')) {
if (settings->hasRadioChanges()) {
// Let settings show "apply changes?" confirm dialog
ui_task.injectKey(key);
@@ -5308,7 +5310,7 @@ void handleKeyboardInput() {
// In category menu (top level): Shift+Del exits, C opens compose
if (astate == RepeaterAdminScreen::STATE_CATEGORY_MENU) {
if (shiftDel) {
if (shiftDel || key == 'q') {
exitAdmin();
return;
}
@@ -5331,7 +5333,7 @@ void handleKeyboardInput() {
// All other states (command menu, param entry, confirm, waiting,
// response, error): convert Shift+Del to exit signal and let the
// screen handle back-navigation internally
if (shiftDel) {
if (shiftDel || (key == 'q' && astate != RepeaterAdminScreen::STATE_PARAM_ENTRY)) {
ui_task.injectKey(KEY_ADMIN_EXIT);
} else {
ui_task.injectKey(key);
@@ -5360,7 +5362,7 @@ void handleKeyboardInput() {
}
// Shift+Del from app menu -> go home; Shift+Del from inner views is handled by SMSScreen
if ((key == KEY_CANCEL) && smsScr->getSubView() == SMSScreen::APP_MENU) {
if ((key == KEY_CANCEL || key == 'q') && smsScr->getSubView() == SMSScreen::APP_MENU) {
Serial.println("Nav: SMS -> Home");
ui_task.gotoHomeScreen();
return;
@@ -5439,7 +5441,7 @@ void handleKeyboardInput() {
webReaderTextEntry = false;
// Shift+Del from HOME mode exits the web reader entirely (like text reader)
if ((key == KEY_CANCEL) && wr && wr->isHome() && !wr->isUrlEditing() && !wr->isSearchEditing()) {
if ((key == KEY_CANCEL || key == 'q') && wr && wr->isHome() && !wr->isUrlEditing() && !wr->isSearchEditing()) {
Serial.println("Exiting web reader");
ui_task.gotoHomeScreen();
return;
@@ -6146,6 +6148,7 @@ void handleKeyboardInput() {
}
break;
case 'q':
case KEY_CANCEL:
// If channel screen reply select or path overlay is showing, dismiss it
if (ui_task.isOnChannelScreen()) {
@@ -520,7 +520,7 @@ private:
display.print(line2);
}
drawFooter(display, "O:On/Off Enter:Edit", "Sh+Del:X");
drawFooter(display, "O:On/Off Enter:Edit", "Q:X");
}
// ---- Render: Edit alarm ----
@@ -649,7 +649,7 @@ private:
drawFooter(display, "Type digits", "Enter:OK Sh+Del:Cancel");
} else {
drawFooter(display, "A/D:Adjust Enter:Type", "Sh+Del:Save");
drawFooter(display, "A/D:Adjust Enter:Type", "Q:Save");
}
}
@@ -671,7 +671,7 @@ private:
display.print("Place 44kHz .mp3 in");
display.setCursor(0, 38);
display.print("/alarms/ on SD card");
drawFooter(display, "0 files", "Sh+Del:Back");
drawFooter(display, "0 files", "Q:Back");
return;
}
@@ -715,7 +715,7 @@ private:
char countBuf[12];
snprintf(countBuf, sizeof(countBuf), "%d files", (int)_soundFiles.size());
drawFooter(display, countBuf, "Enter:Pick Sh+Del:X");
drawFooter(display, countBuf, "Enter:Pick Q:X");
}
// ---- Render: Ringing ----
@@ -945,7 +945,7 @@ private:
}
// Shift+Del - save and exit edit
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
memcpy(&_config.slots[_editSlot], &_editCopy, sizeof(AlarmSlot));
saveConfig();
_mode = ALARM_LIST;
@@ -988,7 +988,7 @@ private:
}
// Shift+Del - cancel
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
_mode = EDIT_ALARM;
return true;
}
@@ -1279,7 +1279,7 @@ private:
display.setCursor(0, 38);
display.print("/audiobooks/ on SD");
drawFooter(display, "0 files", "Sh+Del:Back");
drawFooter(display, "0 files", "Q:Back");
return;
}
@@ -1505,7 +1505,7 @@ private:
// ---- Footer Nav Bar ----
{
const char* rightText = (_isPlaying && !_isPaused) ? "Sh+Del:Leave" : "Sh+Del:Close";
const char* rightText = (_isPlaying && !_isPaused) ? "Q:Leave" : "Q:Close";
if (_playlist.size() > 1) {
drawFooter(display, "A/D:Seek N:Next", rightText);
} else {
@@ -379,7 +379,7 @@ public:
#if defined(LilyGo_T5S3_EPaper_Pro)
const char* hints = "Tap:Yes Boot:Cancel";
#else
const char* hints = "Enter:Yes Sh+Del:Cancel";
const char* hints = "Enter:Yes Q:Cancel";
#endif
display.setCursor(boxX + 4, boxY + 29);
display.print(hints);
@@ -411,9 +411,9 @@ public:
display.print(rt);
#else
if (_confirmDelete) {
display.print("Enter:Yes Sh+Del:Cancel");
display.print("Enter:Yes Q:Cancel");
} else {
display.print("W/S:Nav Sh+Del:X");
display.print("W/S:Nav Q:X");
const char* rt = "Ent:Open";
display.setCursor(display.width() - display.getTextWidth(rt) - 2, footerY);
display.print(rt);
@@ -1005,7 +1005,7 @@ public:
display.print(rtInbox);
#else
display.setCursor(0, footerY);
display.print("Sh+Del:Bck");
display.print("Q:Bck");
const char* rtInbox = "Ent:Open";
display.setCursor(display.width() - display.getTextWidth(rtInbox) - 2, footerY);
display.print(rtInbox);
@@ -1206,7 +1206,7 @@ public:
display.print("Back");
const char* copyHint = "Tap:Dismiss";
#else
display.print("Sh+Del:Back");
display.print("Q:Back");
// Show scroll hint if path is scrollable
if (msg && (msg->path_len & 63) > _pathHopsVisible && msg->path_len != 0xFF) {
const char* scrollHint = "W/S:Scrl";
@@ -1238,7 +1238,7 @@ public:
#if defined(LilyGo_T5S3_EPaper_Pro)
display.print("Hold: Compose reply");
#else
display.print("Sh+Del: Back to inbox");
display.print("Q: Back to inbox");
display.setCursor(0, 40);
display.print("Ent: Compose reply");
#endif
@@ -1758,21 +1758,21 @@ public:
#else
// Left side: abbreviated controls
if (_replySelectMode) {
display.print("W/S:Sel V:Pth Sh+Del:X");
display.print("W/S:Sel V:Pth Q:X");
const char* rightText = "Ent:Reply";
display.setCursor(display.width() - display.getTextWidth(rightText) - 2, footerY);
display.print(rightText);
} else if (_viewChannelIdx == 0xFF) {
if (_dmContactPerms > 0) {
display.print("Sh+Del:Exit L:Admin");
display.print("Q:Exit L:Admin");
} else {
display.print("Sh+Del:Exit");
display.print("Q:Exit");
}
const char* rightText = "Ent:Reply";
display.setCursor(display.width() - display.getTextWidth(rightText) - 2, footerY);
display.print(rightText);
} else {
display.print("Sh+Del:Bck R:Rply");
display.print("Q:Bck R:Rply");
const char* rightText = "Ent:New";
display.setCursor(display.width() - display.getTextWidth(rightText) - 2, footerY);
display.print(rightText);
@@ -116,7 +116,7 @@ public:
#if defined(LilyGo_T5S3_EPaper_Pro)
display.print("Long press: Rescan");
#else
display.print("F: Scan again Sh+Del: Back");
display.print("F: Scan again Q: Back");
#endif
}
#endif
@@ -218,7 +218,7 @@ public:
display.setCursor(display.width() - display.getTextWidth(right) - 2, footerY);
display.print(right);
#else
display.print("Sh+Del:X F:Scan");
display.print("Q:X F:Scan");
const char* right = "Tap/Ent:Add";
display.setCursor(display.width() - display.getTextWidth(right) - 2, footerY);
@@ -136,7 +136,7 @@ public:
display.print("Swipe:Pick");
const char* rt = "Boot:Back Tap:Apply";
#else
display.print("W/S:Pick Sh+Del:Back");
display.print("W/S:Pick Q:Back");
const char* rt = "Enter:Apply";
#endif
display.setCursor(display.width() - display.getTextWidth(rt) - 2, footerY);
@@ -183,7 +183,7 @@ public:
}
// Shift+Del - cancel, restore original style
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
_prefs->ui_font_style = _originalStyle;
_wantExit = true;
return true;
@@ -145,7 +145,7 @@ public:
int fy = display.height() - 12;
display.drawRect(0, fy - 2, display.width(), 1);
display.setCursor(2, fy);
display.print("Enter:Play Sh+Del:Back");
display.print("Enter:Play Q:Back");
#endif
return 5000; // Static menu -- slow refresh
@@ -213,7 +213,7 @@ public:
display.setCursor(display.width() - display.getTextWidth(right) - 2, footerY);
display.print(right);
#else
display.print("Sh+Del:Bk");
display.print("Q:Bk");
const char* right = "Tap/Ent:Add/Del";
display.setCursor(display.width() - display.getTextWidth(right) - 2, footerY);
display.print(right);
@@ -431,7 +431,7 @@ public:
int fy = display.height() - 12;
display.drawRect(0, fy - 2, display.width(), 1);
display.setCursor(2, fy);
display.print("Enter:Start Sh+Del:Back");
display.print("Enter:Start Q:Back");
#endif
return 5000;
@@ -487,7 +487,7 @@ public:
}
ty += 16;
display.setColor(DisplayDriver::GREEN);
display.drawTextCentered(cx, ty, "Enter:Retry Sh+Del:Back");
display.drawTextCentered(cx, ty, "Enter:Retry Q:Back");
return 5000;
}
@@ -397,7 +397,7 @@ public:
display.print(right);
#else
display.setCursor(0, footerY);
display.print("Sh+Del:Bk W/S:Nav");
display.print("Q:Bk W/S:Nav");
const char* right = "Enter:Sel";
display.setCursor(display.width() - display.getTextWidth(right) - 2, footerY);
display.print(right);
@@ -486,7 +486,7 @@ public:
display.print(right);
#else
display.setCursor(0, footerY);
display.print("Sh+Del:Cancel W/S:Scroll");
display.print("Q:Cancel W/S:Scroll");
const char* right = "Enter:Add";
display.setCursor(display.width() - display.getTextWidth(right) - 2, footerY);
display.print(right);
@@ -657,7 +657,7 @@ public:
#if defined(LilyGo_T5S3_EPaper_Pro)
display.print("Boot:Cancel");
#else
display.print("Sh+Del:Cancel");
display.print("Q:Cancel");
#endif
break;
@@ -668,8 +668,8 @@ public:
#elif defined(MECK_TWATCH)
display.print("Long Press: Select");
#else
display.print("Sh+Del:Exit");
renderFooterMidRight(display, footerY, "Sh+Del:Exit", "Ent:Open", "W/S:Sel");
display.print("Q:Exit");
renderFooterMidRight(display, footerY, "Q:Exit", "Ent:Open", "W/S:Sel");
#endif
break;
@@ -680,8 +680,8 @@ public:
#elif defined(MECK_TWATCH)
display.print("Long Press: Run");
#else
display.print("Sh+Del:Back");
renderFooterMidRight(display, footerY, "Sh+Del:Back", "Ent:Run", "W/S:Sel");
display.print("Q:Back");
renderFooterMidRight(display, footerY, "Q:Back", "Ent:Run", "W/S:Sel");
#endif
break;
@@ -702,7 +702,7 @@ public:
display.print("Boot:No");
renderFooterRight(display, footerY, "Tap:Yes");
#else
display.print("Sh+Del:No");
display.print("Q:No");
renderFooterRight(display, footerY, "Ent:Yes");
#endif
break;
@@ -715,7 +715,7 @@ public:
renderFooterRight(display, footerY, "Swipe:Scroll");
}
#else
display.print("Sh+Del:Back");
display.print("Q:Back");
if (_responseTotalLines > bodyHeight / 9) {
renderFooterRight(display, footerY, "W/S:Scrll");
}
@@ -1095,7 +1095,7 @@ private:
#if defined(LilyGo_T5S3_EPaper_Pro)
display.print("Tap=Yes Back=No");
#else
display.print("Enter=Yes Sh+Del=No");
display.print("Enter=Yes Q=No");
#endif
}
@@ -196,7 +196,7 @@ public:
#if defined(LilyGo_T5S3_EPaper_Pro)
display.print("Swipe:Scroll");
#else
display.print("Sh+Del:Bk W/S:Scroll");
display.print("Q:Bk W/S:Scroll");
#endif
#endif
+7 -4
View File
@@ -385,7 +385,7 @@ public:
display.drawRect(0, footerY - 2, display.width(), 1);
display.setColor(DisplayDriver::YELLOW);
display.setCursor(0, footerY);
display.print("Sh+Del:Back");
display.print("Q:Back");
const char* rt = "Ent:Open";
display.setCursor(display.width() - display.getTextWidth(rt) - 2, footerY);
display.print(rt);
@@ -620,7 +620,7 @@ public:
display.drawRect(0, footerY - 2, display.width(), 1);
display.setColor(DisplayDriver::YELLOW);
display.setCursor(0, footerY);
display.print("Sh+Del:Back");
display.print("Q:Back");
const char* mid = "D:Contacts";
display.setCursor((display.width() - display.getTextWidth(mid)) / 2, footerY);
display.print(mid);
@@ -734,7 +734,7 @@ public:
display.drawRect(0, footerY - 2, display.width(), 1);
display.setColor(DisplayDriver::YELLOW);
display.setCursor(0, footerY);
display.print("Sh+Del:Bk A:Add Contact");
display.print("Q:Bk A:Add Contact");
const char* rt = "C:Reply";
display.setCursor(display.width() - display.getTextWidth(rt) - 2, footerY);
display.print(rt);
@@ -887,7 +887,7 @@ public:
display.drawRect(0, footerY - 2, display.width(), 1);
display.setColor(DisplayDriver::YELLOW);
display.setCursor(0, footerY);
display.print("Sh+Del:Back");
display.print("Q:Back");
const char* rt = "Ent:SMS F:Call";
display.setCursor(display.width() - display.getTextWidth(rt) - 2, footerY);
display.print(rt);
@@ -1343,6 +1343,7 @@ public:
_view = CONTACTS;
return true;
case 'q':
case KEY_CANCEL: // Back to app menu
_view = APP_MENU;
_menuCursor = 0;
@@ -1399,6 +1400,7 @@ public:
return true;
}
case 'q':
case KEY_CANCEL: // Back to inbox
refreshInbox();
_view = INBOX;
@@ -1527,6 +1529,7 @@ public:
}
return true;
case 'q':
case KEY_CANCEL: // Back to inbox
refreshInbox();
_view = INBOX;
@@ -2427,7 +2427,7 @@ public:
#if defined(LilyGo_T5S3_EPaper_Pro)
display.drawTextCentered(display.width() / 2, by + bh - 14, "Tap:Yes Boot:No");
#else
display.drawTextCentered(display.width() / 2, by + bh - 14, "Enter:Yes Sh+Del:No");
display.drawTextCentered(display.width() / 2, by + bh - 14, "Enter:Yes Q:No");
#endif
display.setTextSize(1);
}
@@ -2509,7 +2509,7 @@ public:
display.print("Tap:Pick Boot:Back");
#else
display.setCursor(bx + 4, fy);
display.print("Enter:Pick Sh+Del:Back");
display.print("Enter:Pick Q:Back");
#endif
// Scroll indicator
@@ -2848,7 +2848,7 @@ public:
#if defined(LilyGo_T5S3_EPaper_Pro)
display.print("Tap:Send Boot:Cancel");
#else
display.print("Enter:Send Sh+Del:Cancel");
display.print("Enter:Send Q:Cancel");
#endif
display.setTextSize(1);
}
@@ -2949,7 +2949,7 @@ public:
} else if (_editMode == EDIT_CONFIRM) {
// overlay handles it
} else {
display.print("Sh+Del:Bk");
display.print("Q:Bk");
const char* r = "Ent:Edit";
display.setCursor(display.width() - display.getTextWidth(r) - 2, footerY);
display.print(r);
@@ -2961,7 +2961,7 @@ public:
} else if (_editMode == EDIT_WIFI) {
if (_wifiPhase == WIFI_PHASE_SELECT) {
if (_wifiSSIDCount == 0) {
display.print("R/Enter:Rescan Sh+Del:Back");
display.print("R/Enter:Rescan Q:Back");
} else {
display.print("W/S:Pick Enter:Sel R:Rescan");
}
@@ -2974,21 +2974,21 @@ public:
#ifdef MECK_OTA_UPDATE
} else if (_editMode == EDIT_OTA) {
if (_otaPhase == OTA_PHASE_CONFIRM) {
display.print("Enter:Start Sh+Del:Cancel");
display.print("Enter:Start Q:Cancel");
} else if (_otaPhase == OTA_PHASE_WAITING) {
display.print("Sh+Del:Cancel");
display.print("Q:Cancel");
} else if (_otaPhase == OTA_PHASE_ERROR) {
display.print("Sh+Del:Back");
display.print("Q:Back");
} else {
display.print("Please wait...");
}
} else if (_editMode == EDIT_FILEMGR) {
if (_fmPhase == FM_PHASE_CONFIRM) {
display.print("Enter:Start Sh+Del:Cancel");
display.print("Enter:Start Q:Cancel");
} else if (_fmPhase == FM_PHASE_WAITING) {
display.print("Sh+Del:Stop");
display.print("Q:Stop");
} else if (_fmPhase == FM_PHASE_ERROR) {
display.print("Sh+Del:Back");
display.print("Q:Back");
} else {
display.print("Please wait...");
}
@@ -2996,19 +2996,19 @@ public:
} else if (_editMode == EDIT_PICKER) {
display.print("A/D:Choose Enter:Ok");
} else if (_editMode == EDIT_NUMBER) {
display.print("W/S:Adj Enter:Ok Sh+Del:Cancel");
display.print("W/S:Adj Enter:Ok Q:Cancel");
} else if (_editMode == EDIT_CONFIRM) {
// Footer already covered by overlay
} else {
if (_subScreen == SUB_CHANNELS) {
display.print("Sh+Del:Bk C:Share");
display.print("Q:Bk C:Share");
} else if (_subScreen != SUB_NONE) {
display.print("Sh+Del:Back");
display.print("Q:Back");
} else {
#if defined(MECK_TWATCH)
display.print("Hold:Edit");
#else
display.print("Sh+Del:Bk");
display.print("Q:Bk");
#endif
}
#if defined(MECK_TWATCH)
@@ -3066,7 +3066,7 @@ public:
_confirmAction = 0;
return true;
}
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
if (_confirmAction == 3) {
// Region nudge cancelled — scroll to Default Region row
_editMode = EDIT_NONE;
@@ -3120,7 +3120,7 @@ public:
_editMode = EDIT_NONE;
return true;
}
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
_editMode = EDIT_NONE;
return true;
}
@@ -3148,7 +3148,7 @@ public:
_editMode = EDIT_NONE;
return true;
}
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
_editMode = EDIT_NONE;
return true;
}
@@ -3164,7 +3164,7 @@ public:
startOTAServer();
return true;
}
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
_editMode = EDIT_NONE;
return true;
}
@@ -3173,12 +3173,12 @@ public:
if (_otaUploadOk) {
return true;
}
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
stopOTA();
return true;
}
} else if (_otaPhase == OTA_PHASE_ERROR) {
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
stopOTA();
return true;
}
@@ -3194,17 +3194,17 @@ public:
startFileMgrServer();
return true;
}
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
_editMode = EDIT_NONE;
return true;
}
} else if (_fmPhase == FM_PHASE_WAITING) {
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
stopFileMgr();
return true;
}
} else if (_fmPhase == FM_PHASE_ERROR) {
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
stopFileMgr();
return true;
}
@@ -3247,7 +3247,7 @@ public:
#endif
return true;
}
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
_editMode = EDIT_NONE;
_wifiPhase = WIFI_PHASE_IDLE;
if (_onboarding) _onboarding = false; // Skip WiFi, finish onboarding
@@ -3524,7 +3524,7 @@ public:
}
return true;
}
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
// Revert live preview if font style picker was active
if (type == ROW_FONT_STYLE) {
_prefs->ui_font_style = _fontPickerOriginal;
@@ -3619,7 +3619,7 @@ public:
_editMode = EDIT_NONE;
return true;
}
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
_editMode = EDIT_NONE;
return true;
}
@@ -4091,7 +4091,7 @@ public:
#endif
// Shift+Del: back -- if in sub-screen, return to top level; else exit settings
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
#ifdef HAS_SDCARD
if (_subScreen == SUB_EXPORT_FLAGS) {
// Return to Export/Import sub-screen
@@ -459,7 +459,7 @@ public:
ty += 12;
}
display.setColor(DisplayDriver::GREEN);
display.drawTextCentered(cx, ty, "Enter:Retry Sh+Del:Back");
display.drawTextCentered(cx, ty, "Enter:Retry Q:Back");
}
}
@@ -476,10 +476,10 @@ public:
display.drawRect(0, fy - 2, display.width(), 1);
if (_state == PLAYING) {
display.setCursor(2, fy);
display.print("Sh+Del:Back");
display.print("Q:Back");
} else if (_state == READY) {
display.setCursor(2, fy);
display.print("Enter:Start Sh+Del:Back");
display.print("Enter:Start Q:Back");
}
#endif
@@ -1175,7 +1175,7 @@ private:
display.drawTextCentered(display.width() / 2, footerY, "Swipe: Scroll Tap: Open Boot: home");
#else
display.setCursor(0, footerY);
display.print("Sh+Del:Bk");
display.print("Q:Bk");
const char* right = "Tap/Ent:Open";
display.setCursor(display.width() - display.getTextWidth(right) - 2, footerY);
@@ -1299,7 +1299,7 @@ private:
display.setCursor(0, footerY);
display.print(status);
const char* right = _gotoMode ? "Ent:Go Sh+Del:Cancel" : "Entr:Pg# Sh+Del:Bk";
const char* right = _gotoMode ? "Ent:Go Sh+Del:Cancel" : "Entr:Pg# Q:Bk";
display.setCursor(display.width() - display.getTextWidth(right) - 2, footerY);
display.print(right);
#endif
@@ -586,7 +586,7 @@ private:
#if defined(LilyGo_T5S3_EPaper_Pro)
display.print("Boot:Cancel Tap:Apply");
#else
display.print("Sh+Del:Cancel Enter:Apply");
display.print("Q:Cancel Enter:Apply");
#endif
} else {
#if defined(LilyGo_T5S3_EPaper_Pro)
@@ -594,7 +594,7 @@ private:
#elif defined(MECK_TWATCH)
display.print("Tap:Sel Hold:Go");
#else
display.print("Sh+Del:Exit W/S:Nav Ent:Sel");
display.print("Q:Exit W/S:Nav Ent:Sel");
#endif
}
@@ -659,7 +659,7 @@ private:
#elif defined(MECK_TWATCH)
display.print("Tap:Sel Hold:Add");
#else
display.print("Sh+Del:Back W/S:Scroll Ent:Add");
display.print("Q:Back W/S:Scroll Ent:Add");
#endif
return 5000;
@@ -715,7 +715,7 @@ private:
#if defined(LilyGo_T5S3_EPaper_Pro)
display.print("Boot:Cancel");
#else
display.print("Sh+Del:Cancel");
display.print("Q:Cancel");
#endif
return 500; // Fast refresh for elapsed timer
@@ -813,7 +813,7 @@ private:
#elif defined(MECK_TWATCH)
display.print("Hold: New Trace");
#else
display.print("Sh+Del:Back Ent:New Trace");
display.print("Q:Back Ent:New Trace");
#endif
return 5000;
@@ -1043,7 +1043,7 @@ private:
int footerY = display.height() - 12;
display.setTextSize(1);
display.setCursor(0, footerY);
display.print("Ent:Send Sh+Del:Cancel");
display.print("Ent:Send Q:Cancel");
// No-direct-path popup. RAW_CUSTOM voice packets are direct-route only,
// so a contact with no path set cannot receive one. Drawn last so it
@@ -1172,11 +1172,11 @@ private:
display.setTextSize(1);
display.setCursor(0, footerY);
if (_listPlaying) {
display.print("Playing... Sh+Del:Stop");
display.print("Playing... Q:Stop");
} else if (!_fileList.empty()) {
display.print("Mic:Rec Ent:Ply F:Snd D:Del");
} else {
display.print("Mic:Record Sh+Del:Exit");
display.print("Mic:Record Q:Exit");
}
// "Loading" popup while a forward-send file is read off SD and encoded.
@@ -1321,11 +1321,11 @@ private:
display.setTextSize(1);
display.setCursor(0, footerY);
if (_reviewPlaying) {
display.print("Sh+Del:Stop");
display.print("Q:Stop");
} else if (_c2Valid) {
display.print("S:Send Ent:Play Mic:Redo Sh+Del:List");
display.print("S:Send Ent:Play Mic:Redo Q:List");
} else {
display.print("Ent:Play Mic:Redo D:Del Sh+Del:List");
display.print("Ent:Play Mic:Redo D:Del Q:List");
}
}
@@ -3164,11 +3164,11 @@ private:
if (onBookmark && hasData)
snprintf(footerBuf, sizeof(footerBuf), "Ent:Go Del:Del Bkmk X:Clr Ckies");
else if (onBookmark)
snprintf(footerBuf, sizeof(footerBuf), "Sh+Del:Bk Ent:Go Del:Del Bkmk");
snprintf(footerBuf, sizeof(footerBuf), "Q:Bk Ent:Go Del:Del Bkmk");
else if (hasData)
snprintf(footerBuf, sizeof(footerBuf), "Sh+Del:Bk W/S Ent:Go X:Clr Ckies");
snprintf(footerBuf, sizeof(footerBuf), "Q:Bk W/S Ent:Go X:Clr Ckies");
else
snprintf(footerBuf, sizeof(footerBuf), "Sh+Del:Bk W/S:Nav Ent:Go");
snprintf(footerBuf, sizeof(footerBuf), "Q:Bk W/S:Nav Ent:Go");
#endif
display.print(footerBuf);
}
@@ -3273,7 +3273,7 @@ private:
#else
display.print("Ent: Open in Reader");
display.setCursor(0, y + 16);
display.print("Sh+Del: Back to browser");
display.print("Q: Back to browser");
#endif
} else {
display.setColor(DisplayDriver::YELLOW);
@@ -3292,7 +3292,7 @@ private:
#if defined(LilyGo_T5S3_EPaper_Pro)
display.print("Tap: Back to browser");
#else
display.print("Sh+Del: Back to browser");
display.print("Q: Back to browser");
#endif
}
@@ -3305,7 +3305,7 @@ private:
#if defined(LilyGo_T5S3_EPaper_Pro)
display.print(_downloadOk ? "Tap: Open in Reader" : "Tap: Back");
#else
display.print(_downloadOk ? "Ent:Read Sh+Del:Back" : "Sh+Del:Back");
display.print(_downloadOk ? "Ent:Read Q:Back" : "Q:Back");
#endif
}
@@ -3442,13 +3442,13 @@ private:
}
#else
} else if (_formCount > 0 && _linkCount > 0) {
hint = "L:Lnk F:Frm B:Bk Sh+Del:X";
hint = "L:Lnk F:Frm B:Bk Q:X";
} else if (_formCount > 0) {
hint = "F:Frm B:Bk Sh+Del:X";
hint = "F:Frm B:Bk Q:X";
} else if (_linkCount > 0) {
hint = "L:Lnk B:Bk Sh+Del:X";
hint = "L:Lnk B:Bk Q:X";
} else {
hint = "B:Bk Sh+Del:X";
hint = "B:Bk Q:X";
}
#endif
display.setCursor(display.width() - display.getTextWidth(hint) - 2, footerY);
@@ -3892,7 +3892,7 @@ private:
}
// Shift+Del - exit to home
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
_mode = HOME;
_homeSelected = 0;
return true;
@@ -5412,7 +5412,7 @@ public:
case FETCHING:
// Shift+Del to cancel fetch (can't actually cancel HTTP mid-stream, but
// go back to home)
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
_mode = HOME;
return true;
}
@@ -5424,7 +5424,7 @@ public:
_requestTextReader = true;
return true;
}
if (c == KEY_CANCEL) {
if (c == KEY_CANCEL || c == 'q') {
_mode = HOME;
_homeSelected = 0;
return true;