refactor(app): App-per-screen navigation, remove menu_level entirely

Splits the ad-hoc menu_level state machine into standalone Apps with a
uniform parent/child exit convention (long-press CONFIRM -> parent):
clock_app renamed to home_app (boot-default), new set_clock_app
extracted from home_app's time-edit mode, new ipc_bind_app extracted
from menu_app's old level-2 screen, and the sensor-type selection step
merged into pair_app as its new initial state. menu_app now only holds
the 4-item top-level list (language toggle inline). Also makes both
menu_app and pair_app's up/down navigation cyclic (wraps at both ends).
This commit is contained in:
edisondeng
2026-07-31 18:05:23 +08:00
parent 655d29bbe1
commit 56b92a8ede
13 changed files with 462 additions and 393 deletions

View File

@@ -180,9 +180,11 @@ u8 AppManager_GetActiveAppID(void)
// 供遗留代码兼容性引用的 APIStartApp 映射至 SwitchToForeground 动态方式
void AppManager_StartApp(AppID app_id)
{
if (app_id == APP_ID_CLOCK) AppManager_SwitchToForeground(&clock_app);
if (app_id == APP_ID_HOME) AppManager_SwitchToForeground(&home_app);
else if (app_id == APP_ID_MENU) AppManager_SwitchToForeground(&menu_app);
else if (app_id == APP_ID_SET_CLOCK) AppManager_SwitchToForeground(&set_clock_app);
else if (app_id == APP_ID_PAIR) AppManager_SwitchToForeground(&pair_app);
else if (app_id == APP_ID_IPC_BIND) AppManager_SwitchToForeground(&ipc_bind_app);
else if (app_id == APP_ID_ALARM) AppManager_SwitchToForeground(&alarm_app);
else if (app_id == APP_ID_SOS) AppManager_SwitchToForeground(&sos_app);
}