flip_store_callback.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #ifndef FLIP_STORE_CALLBACK_H
  2. #define FLIP_STORE_CALLBACK_H
  3. #include <flip_store.h>
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include <stdlib.h>
  7. #include <ctype.h>
  8. #include <stdbool.h>
  9. #include <apps/flip_store_apps.h>
  10. #include <firmwares/flip_store_firmwares.h>
  11. #include <flip_storage/flip_store_storage.h>
  12. #define MAX_LINE_LENGTH 30
  13. extern bool flip_store_app_does_exist;
  14. extern uint32_t selected_firmware_index;
  15. // Function to draw the description on the canvas with word wrapping
  16. void draw_description(Canvas *canvas, const char *user_message, int x, int y);
  17. void flip_store_view_draw_callback_app_list(Canvas *canvas, void *model);
  18. bool flip_store_input_callback(InputEvent *event, void *context);
  19. void flip_store_text_updated_ssid(void *context);
  20. void flip_store_text_updated_pass(void *context);
  21. uint32_t callback_to_submenu(void *context);
  22. uint32_t callback_to_submenu_options(void *context);
  23. uint32_t callback_to_firmware_list(void *context);
  24. uint32_t callback_to_app_list(void *context);
  25. void settings_item_selected(void *context, uint32_t index);
  26. void dialog_delete_callback(DialogExResult result, void *context);
  27. void dialog_firmware_callback(DialogExResult result, void *context);
  28. uint32_t callback_exit_app(void *context);
  29. void callback_submenu_choices(void *context, uint32_t index);
  30. // Add edits by Derek Jamison
  31. typedef enum DataState DataState;
  32. enum DataState
  33. {
  34. DataStateInitial,
  35. DataStateRequested,
  36. DataStateReceived,
  37. DataStateParsed,
  38. DataStateParseError,
  39. DataStateError,
  40. };
  41. typedef enum FlipStoreCustomEvent FlipStoreCustomEvent;
  42. enum FlipStoreCustomEvent
  43. {
  44. FlipStoreCustomEventProcess,
  45. };
  46. typedef struct DataLoaderModel DataLoaderModel;
  47. typedef bool (*DataLoaderFetch)(DataLoaderModel *model);
  48. typedef char *(*DataLoaderParser)(DataLoaderModel *model);
  49. struct DataLoaderModel
  50. {
  51. char *title;
  52. char *data_text;
  53. DataState data_state;
  54. DataLoaderFetch fetcher;
  55. DataLoaderParser parser;
  56. void *parser_context;
  57. size_t request_index;
  58. size_t request_count;
  59. ViewNavigationCallback back_callback;
  60. FuriTimer *timer;
  61. };
  62. void flip_store_generic_switch_to_view(FlipStoreApp *app, char *title, DataLoaderFetch fetcher, DataLoaderParser parser, size_t request_count, ViewNavigationCallback back, uint32_t view_id);
  63. void flip_store_loader_draw_callback(Canvas *canvas, void *model);
  64. void flip_store_loader_init(View *view);
  65. void flip_store_loader_free_model(View *view);
  66. bool flip_store_custom_event_callback(void *context, uint32_t index);
  67. #endif // FLIP_STORE_CALLBACK_H