flipp_pomodoro_scene_info.c 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include <furi.h>
  2. #include <gui/view_dispatcher.h>
  3. #include <gui/scene_manager.h>
  4. #include "flipp_pomodoro_scene.h"
  5. #include "../flipp_pomodoro_app.h"
  6. #include "../views/flipp_pomodoro_info_view.h"
  7. enum {
  8. SceneEventConusmed = true,
  9. SceneEventNotConusmed = false
  10. };
  11. void flipp_pomodoro_scene_info_on_back_to_timer(void* ctx) {
  12. furi_assert(ctx);
  13. FlippPomodoroApp* app = ctx;
  14. view_dispatcher_send_custom_event(
  15. app->view_dispatcher, FlippPomodoroAppCustomEventResumeTimer);
  16. }
  17. void flipp_pomodoro_scene_info_on_enter(void* ctx) {
  18. furi_assert(ctx);
  19. FlippPomodoroApp* app = ctx;
  20. view_dispatcher_switch_to_view(app->view_dispatcher, FlippPomodoroAppViewInfo);
  21. flipp_pomodoro_info_view_set_pomodoros_completed(
  22. flipp_pomodoro_info_view_get_view(app->info_view),
  23. flipp_pomodoro_statistics__get_focus_stages_completed(app->statistics));
  24. flipp_pomodoro_info_view_set_mode(
  25. flipp_pomodoro_info_view_get_view(app->info_view), FlippPomodoroInfoViewModeStats);
  26. flipp_pomodoro_info_view_set_resume_timer_cb(
  27. app->info_view, flipp_pomodoro_scene_info_on_back_to_timer, app);
  28. }
  29. void flipp_pomodoro_scene_info_handle_custom_event(
  30. FlippPomodoroApp* app,
  31. FlippPomodoroAppCustomEvent custom_event) {
  32. if(custom_event == FlippPomodoroAppCustomEventResumeTimer) {
  33. scene_manager_next_scene(app->scene_manager, FlippPomodoroSceneTimer);
  34. }
  35. }
  36. bool flipp_pomodoro_scene_info_on_event(void* ctx, SceneManagerEvent event) {
  37. furi_assert(ctx);
  38. FlippPomodoroApp* app = ctx;
  39. switch(event.type) {
  40. case SceneManagerEventTypeBack:
  41. view_dispatcher_stop(app->view_dispatcher);
  42. return SceneEventConusmed;
  43. case SceneManagerEventTypeCustom:
  44. flipp_pomodoro_scene_info_handle_custom_event(app, event.event);
  45. return SceneEventConusmed;
  46. default:
  47. break;
  48. };
  49. return SceneEventNotConusmed;
  50. }
  51. void flipp_pomodoro_scene_info_on_exit(void* ctx) {
  52. UNUSED(ctx);
  53. }