#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "scenes/momentum_app_scene.h" ARRAY_DEF(CharList, char*) #define DOLPHIN_MAX_XP (DOLPHIN_LEVELS[DOLPHIN_LEVEL_COUNT - 1] + 1) typedef struct { Gui* gui; Storage* storage; Desktop* desktop; Dolphin* dolphin; DialogsApp* dialogs; Expansion* expansion; NotificationApp* notification; SceneManager* scene_manager; ViewDispatcher* view_dispatcher; VariableItemList* var_item_list; Submenu* submenu; TextInput* text_input; ByteInput* byte_input; NumberInput* number_input; Popup* popup; DialogEx* dialog_ex; CharList_t asset_pack_names; uint8_t asset_pack_index; CharList_t mainmenu_app_labels; CharList_t mainmenu_app_exes; uint8_t mainmenu_app_index; DesktopSettings desktop_settings; bool subghz_use_defaults; FrequencyList_t subghz_static_freqs; uint8_t subghz_static_index; FrequencyList_t subghz_hopper_freqs; uint8_t subghz_hopper_index; bool subghz_extend; bool subghz_bypass; RgbColor lcd_color; RgbColor vgm_color; char device_name[FURI_HAL_VERSION_ARRAY_NAME_LENGTH]; uint32_t dolphin_xp; uint32_t dolphin_angry; FuriString* version_tag; bool save_mainmenu_apps; bool save_desktop; bool save_subghz_freqs; bool save_subghz; bool save_name; bool save_xp; bool save_angry; bool save_dolphin; bool save_backlight; bool save_settings; bool apply_pack; bool show_slideshow; bool require_reboot; } MomentumApp; typedef enum { MomentumAppViewVarItemList, MomentumAppViewSubmenu, MomentumAppViewTextInput, MomentumAppViewByteInput, MomentumAppViewNumberInput, MomentumAppViewPopup, MomentumAppViewDialogEx, } MomentumAppView; bool momentum_app_apply(MomentumApp* app); void momentum_app_push_mainmenu_app(MomentumApp* app, FuriString* exe); void momentum_app_load_mainmenu_apps(MomentumApp* app); void momentum_app_empty_mainmenu_apps(MomentumApp* app);