spi_mem_scene_success.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include "../spi_mem_app_i.h"
  2. static void spi_mem_scene_success_popup_callback(void* context) {
  3. SPIMemApp* app = context;
  4. view_dispatcher_send_custom_event(app->view_dispatcher, SPIMemCustomEventPopupBack);
  5. }
  6. void spi_mem_scene_success_on_enter(void* context) {
  7. SPIMemApp* app = context;
  8. popup_set_icon(app->popup, 36, 5, &I_DolphinDone_80x58);
  9. popup_set_header(app->popup, "Success!", 5, 7, AlignLeft, AlignTop);
  10. popup_set_callback(app->popup, spi_mem_scene_success_popup_callback);
  11. popup_set_context(app->popup, app);
  12. popup_set_timeout(app->popup, 1500);
  13. popup_enable_timeout(app->popup);
  14. view_dispatcher_switch_to_view(app->view_dispatcher, SPIMemViewPopup);
  15. }
  16. static void spi_mem_scene_success_set_previous_scene(SPIMemApp* app) {
  17. uint32_t scene = SPIMemSceneSelectFile;
  18. if(app->mode == SPIMemModeErase) scene = SPIMemSceneStart;
  19. scene_manager_search_and_switch_to_another_scene(app->scene_manager, scene);
  20. }
  21. bool spi_mem_scene_success_on_event(void* context, SceneManagerEvent event) {
  22. SPIMemApp* app = context;
  23. bool success = false;
  24. if(event.type == SceneManagerEventTypeCustom) {
  25. success = true;
  26. if(event.event == SPIMemCustomEventPopupBack) {
  27. spi_mem_scene_success_set_previous_scene(app);
  28. }
  29. }
  30. return success;
  31. }
  32. void spi_mem_scene_success_on_exit(void* context) {
  33. SPIMemApp* app = context;
  34. popup_reset(app->popup);
  35. }