flip_trader_callback.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef FLIP_TRADER_CALLBACK_H
  2. #define FLIP_TRADER_CALLBACK_H
  3. #define MAX_TOKENS 32 // Adjust based on expected JSON size (25)
  4. #include <flip_trader.h>
  5. #include <flip_storage/flip_trader_storage.h>
  6. // hold the price of the asset
  7. extern char asset_price[64];
  8. extern bool sent_get_request;
  9. extern bool get_request_success;
  10. extern bool request_processed;
  11. void callback_submenu_choices(void *context, uint32_t index);
  12. void text_updated_ssid(void *context);
  13. void text_updated_password(void *context);
  14. uint32_t callback_to_submenu(void *context);
  15. uint32_t callback_to_wifi_settings(void *context);
  16. uint32_t callback_to_assets_submenu(void *context);
  17. void settings_item_selected(void *context, uint32_t index);
  18. // Add edits by Derek Jamison
  19. typedef enum AssetState AssetState;
  20. enum AssetState
  21. {
  22. AssetStateInitial,
  23. AssetStateRequested,
  24. AssetStateReceived,
  25. AssetStateParsed,
  26. AssetStateParseError,
  27. AssetStateError,
  28. };
  29. typedef enum FlipTraderCustomEvent FlipTraderCustomEvent;
  30. enum FlipTraderCustomEvent
  31. {
  32. FlipTraderCustomEventProcess,
  33. };
  34. typedef struct AssetLoaderModel AssetLoaderModel;
  35. typedef bool (*AssetLoaderFetch)(AssetLoaderModel *model);
  36. typedef char *(*AssetLoaderParser)(AssetLoaderModel *model);
  37. struct AssetLoaderModel
  38. {
  39. char *title;
  40. char *asset_text;
  41. AssetState asset_state;
  42. AssetLoaderFetch fetcher;
  43. AssetLoaderParser parser;
  44. void *parser_context;
  45. size_t request_index;
  46. size_t request_count;
  47. ViewNavigationCallback back_callback;
  48. FuriTimer *timer;
  49. };
  50. void flip_trader_generic_switch_to_view(FlipTraderApp *app, char *title, AssetLoaderFetch fetcher, AssetLoaderParser parser, size_t request_count, ViewNavigationCallback back, uint32_t view_id);
  51. void flip_trader_loader_draw_callback(Canvas *canvas, void *model);
  52. void flip_trader_loader_init(View *view);
  53. void flip_trader_loader_free_model(View *view);
  54. bool flip_trader_custom_event_callback(void *context, uint32_t index);
  55. #endif // FLIP_TRADER_CALLBACK_H