#ifndef FLIP_STORE_APPS_H #define FLIP_STORE_APPS_H #include #include #include // Define maximum limits #define MAX_APP_NAME_LENGTH 32 #define MAX_ID_LENGTH 32 #define MAX_APP_COUNT 100 #define MAX_APP_DESCRIPTION_LENGTH 100 #define MAX_APP_VERSION_LENGTH 5 // define the list of categories extern char *categories[]; typedef struct { char *app_name; char *app_id; char *app_build_id; char *app_version; char *app_description; } FlipStoreAppInfo; extern FlipStoreAppInfo *flip_catalog; extern uint32_t app_selected_index; extern bool flip_store_sent_request; extern bool flip_store_success; extern bool flip_store_saved_data; extern bool flip_store_saved_success; extern uint32_t flip_store_category_index; enum ObjectState { OBJECT_EXPECT_KEY, OBJECT_EXPECT_COLON, OBJECT_EXPECT_VALUE, OBJECT_EXPECT_COMMA_OR_END }; FlipStoreAppInfo *flip_catalog_alloc(); void flip_catalog_free(); // Utility function to parse JSON incrementally from a file bool flip_store_process_app_list(); bool flip_store_get_fap_file(char *build_id, uint8_t target, uint16_t api_major, uint16_t api_minor); // function to handle the entire installation process "asynchronously" bool flip_store_install_app(Canvas *canvas, char *category); // process the app list and return view int32_t flip_store_handle_app_list(FlipStoreApp *app, int32_t success_view, char *category, Submenu **submenu); #endif // FLIP_STORE_APPS_H