#ifndef UI_NAV_H #define UI_NAV_H #include #include "gui_guider.h" #include "lvgl.h" #ifdef __cplusplus extern "C" { #endif /** Do not update current_page_idx / is_ui_mode / lottie / idle after Guider transition (e.g. set/sleep overlays). */ #define UI_NAV_PAGE_IDX_KEEP ((int16_t)-1) /** Carousel / primary pages: same indices as ui.h (UI_IDX_*). */ void ui_nav_go_by_index(int new_idx, lv_screen_load_anim_t anim_type); /** * Wraps ui_load_scr_animation; then if page_idx_after is 0..5, applies the same chrome as ui_nav_go_by_index * (current_page_idx, is_ui_mode, Lottie pause/resume, idle_timer) without loading again. * Use UI_NAV_PAGE_IDX_KEEP when the target is not a primary carousel screen (set/sleep, etc.). */ void ui_nav_load_scr_animation(lv_ui *ui, lv_obj_t **new_scr, bool new_scr_del, bool *old_scr_del, ui_setup_scr_t setup_scr, lv_screen_load_anim_t anim_type, uint32_t time, uint32_t delay, bool is_clean, bool auto_del, int16_t page_idx_after); /** Wake-from-sleep path: restore Lottie home (replaces inline block in toggle_sleep_mode). */ void ui_nav_apply_wake_to_lottie_home(void); /** Calendar screen: back to component (same anim / auto_del as widgets_init.c). */ void ui_nav_calendar_back_to_component(void); /** custom.c: same as prior lv_screen_load_anim(sortition_text, FADE_ON, 300, 0, false). */ void ui_nav_load_sortition_text_fade(void); /** events_init fortune: same as prior lv_screen_load_anim(fortune_text, ...). */ void ui_nav_load_fortune_text_fade(void); /** Forward play-sticker / emoji command to change_task (FreeRTOS notify). */ void ui_nav_request_emoji_event(uint32_t emoji_event_bits); /** On gesture page switch, safely interrupt mindfulness playback and return to default emoji. */ void ui_nav_interrupt_mindfulness_for_gesture(void); #ifdef __cplusplus } #endif #endif /* UI_NAV_H */