feat: add status screen with system info display
This commit is contained in:
@@ -354,6 +354,18 @@ int DoorbellLogic::handleTouch(const TouchEvent& evt) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Handle STATUS screen back button (lower right corner)
|
||||
if(_state.screen == ScreenID::STATUS) {
|
||||
int dispW = _display->width();
|
||||
int dispH = _display->height();
|
||||
// Back button area: lower right (dispW-60 to dispW, dispH-30 to dispH)
|
||||
if(evt.x >= dispW - 60 && evt.y >= dispH - 30) {
|
||||
Serial.printf("[%lu] [TOUCH] STATUS → DASHBOARD (back)\n", millis());
|
||||
setScreen(ScreenID::DASHBOARD);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
// Draw debug crosshair at touch point
|
||||
#ifdef DEBUG_MODE
|
||||
if(_state.screen == ScreenID::DASHBOARD) {
|
||||
@@ -380,7 +392,7 @@ int DoorbellLogic::handleTouch(const TouchEvent& evt) {
|
||||
silenceAlert();
|
||||
break;
|
||||
case TileAction::STATUS:
|
||||
heartbeat();
|
||||
setScreen(ScreenID::STATUS);
|
||||
break;
|
||||
case TileAction::REBOOT:
|
||||
flushStatus("REBOOT (tile)");
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
enum class DeviceState { BOOTED, SILENT, ALERTING, SILENCED };
|
||||
|
||||
enum class ScreenID { BOOT, OFF, ALERT, DASHBOARD };
|
||||
enum class ScreenID { BOOT, OFF, ALERT, DASHBOARD, STATUS };
|
||||
|
||||
enum class BootStage { SPLASH, INIT_DISPLAY, INIT_NETWORK, CONNECTING_WIFI, READY, DONE };
|
||||
|
||||
@@ -94,6 +94,8 @@ inline const char* screenIdStr(ScreenID s) {
|
||||
return "ALERT";
|
||||
case ScreenID::DASHBOARD:
|
||||
return "DASHBOARD";
|
||||
case ScreenID::STATUS:
|
||||
return "STATUS";
|
||||
}
|
||||
return "?";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user