updater_i.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #pragma once
  2. #include "views/updater_main.h"
  3. #include "util/update_task.h"
  4. #include <furi.h>
  5. #include <gui/gui.h>
  6. #include <gui/view_stack.h>
  7. #include <gui/view_dispatcher.h>
  8. #include <gui/modules/popup.h>
  9. #include <gui/scene_manager.h>
  10. #include <gui/modules/widget.h>
  11. #include <storage/storage.h>
  12. #include <notification/notification_app.h>
  13. #include <update_util/update_operation.h>
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #define UPDATER_APP_TICK 500
  18. typedef enum {
  19. UpdaterViewMain,
  20. UpdaterViewWidget,
  21. } UpdaterViewEnum;
  22. typedef enum {
  23. UpdaterCustomEventUnknown,
  24. UpdaterCustomEventStartUpdate,
  25. UpdaterCustomEventRetryUpdate,
  26. UpdaterCustomEventCancelUpdate,
  27. UpdaterCustomEventSdUnmounted,
  28. } UpdaterCustomEvent;
  29. typedef struct UpdaterManifestProcessingState {
  30. UpdateManifest* manifest;
  31. string_t message;
  32. bool ready_to_be_applied;
  33. } UpdaterManifestProcessingState;
  34. typedef struct {
  35. // GUI
  36. Gui* gui;
  37. NotificationApp* notification;
  38. SceneManager* scene_manager;
  39. ViewDispatcher* view_dispatcher;
  40. Storage* storage;
  41. UpdaterMainView* main_view;
  42. UpdaterManifestProcessingState* pending_update;
  43. UpdatePrepareResult preparation_result;
  44. UpdateTask* update_task;
  45. Widget* widget;
  46. string_t startup_arg;
  47. int32_t idle_ticks;
  48. } Updater;
  49. Updater* updater_alloc(const char* arg);
  50. void updater_free(Updater* updater);
  51. #ifdef __cplusplus
  52. }
  53. #endif