#pragma once #include #include "desktop_events.h" #include #include #define HINT_TIMEOUT 2 typedef struct DesktopLockMenuView DesktopLockMenuView; typedef void (*DesktopLockMenuViewCallback)(DesktopEvent event, void* context); struct DesktopLockMenuView { View* view; DesktopLockMenuViewCallback callback; void* context; NotificationApp* notification; Bt* bt; bool save_notification; bool save_momentum; bool save_bt; }; typedef enum { DesktopLockMenuPopupIndexKeypad, DesktopLockMenuPopupIndexPinCode, DesktopLockMenuPopupIndexPinOff, DesktopLockMenuPopupIndexMAX, } DesktopLockMenuPopupIndex; typedef struct { uint8_t idx; bool _dummy_mode; // Unused, kept for compatibility bool stealth_mode; bool pin_is_set; bool show_lock_popup; DesktopLockMenuPopupIndex lock_popup_index; DesktopLockMenuView* lock_menu; } DesktopLockMenuViewModel; void desktop_lock_menu_set_callback( DesktopLockMenuView* lock_menu, DesktopLockMenuViewCallback callback, void* context); View* desktop_lock_menu_get_view(DesktopLockMenuView* lock_menu); void desktop_lock_menu_set_pin_state(DesktopLockMenuView* lock_menu, bool pin_is_set); void desktop_lock_menu_set_stealth_mode_state(DesktopLockMenuView* lock_menu, bool stealth_mode); void desktop_lock_menu_set_idx(DesktopLockMenuView* lock_menu, uint8_t idx); DesktopLockMenuView* desktop_lock_menu_alloc(void); void desktop_lock_menu_free(DesktopLockMenuView* lock_menu);