feat: add MTR Next Train application with multi-page navigation and real-time arrival info

This commit is contained in:
GW_MC
2026-01-24 16:46:00 +08:00
parent d01167fd77
commit d091625cea
4 changed files with 516 additions and 19 deletions

View File

@@ -21,6 +21,7 @@
#include "ui/apps/demo_app.h"
#include "ui/apps/shutdown_app.h"
#include "ui/apps/discord_app.h"
#include "ui/apps/mtr_app.h"
#include <tick/lv_tick.h>
#include "esp_lvgl_port.h"
#include "lvgl.h"
@@ -127,6 +128,14 @@ void app_main(void) {
DemoAppDescriptor* demo_descriptor = new DemoAppDescriptor();
ShutdownAppDescriptor* shutdown_descriptor = new ShutdownAppDescriptor();
DiscordAppDescriptor::instance(); // Use singleton pattern for Discord app
MtrAppDescriptor* mtr_descriptor = new MtrAppDescriptor();
// Pass network handler to MtrApp so it can fetch arrival data
MtrApp* mtr_app = dynamic_cast<MtrApp*>(mtr_descriptor->get_app_instance());
if (mtr_app) {
mtr_app->set_network_handler(network_handler);
}
ESP_LOGI(TAG, "Apps registered with AppRegistry\n");
// Initialize UI Handler (will render app icons from registry)
@@ -162,6 +171,7 @@ void app_main(void) {
ui_handler.deinit();
delete demo_descriptor;
delete shutdown_descriptor;
delete mtr_descriptor;
delete display_handler;
vSemaphoreDelete(lvgl_mutex);
vEventGroupDelete(system_event_group);