findmy_scene_main.c 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "../findmy_i.h"
  2. void findmy_scene_main_callback(FindMyMainEvent event, void *context)
  3. {
  4. furi_assert(context);
  5. FindMy *app = context;
  6. view_dispatcher_send_custom_event(app->view_dispatcher, event);
  7. }
  8. void findmy_scene_main_on_enter(void *context)
  9. {
  10. FindMy *app = context;
  11. findmy_main_set_callback(app->findmy_main, findmy_scene_main_callback, app);
  12. view_dispatcher_switch_to_view(app->view_dispatcher, FindMyViewMain);
  13. }
  14. bool findmy_scene_main_on_event(void *context, SceneManagerEvent event)
  15. {
  16. FindMy *app = context;
  17. bool consumed = false;
  18. if (event.type == SceneManagerEventTypeCustom)
  19. {
  20. consumed = true;
  21. switch (event.event)
  22. {
  23. case FindMyMainEventToggle:
  24. findmy_toggle_beacon(app);
  25. break;
  26. case FindMyMainEventBackground:
  27. app->state.beacon_active = true;
  28. findmy_state_save(&app->state);
  29. if (!furi_hal_bt_extra_beacon_is_active())
  30. {
  31. furi_check(furi_hal_bt_extra_beacon_start());
  32. }
  33. view_dispatcher_stop(app->view_dispatcher);
  34. break;
  35. case FindMyMainEventConfig:
  36. scene_manager_next_scene(app->scene_manager, FindMySceneConfig);
  37. break;
  38. case FindMyMainEventIntervalUp:
  39. findmy_change_broadcast_interval(app, app->state.broadcast_interval + 1);
  40. break;
  41. case FindMyMainEventIntervalDown:
  42. findmy_change_broadcast_interval(app, app->state.broadcast_interval - 1);
  43. break;
  44. case FindMyMainEventQuit:
  45. app->state.beacon_active = false;
  46. findmy_state_save(&app->state);
  47. if (furi_hal_bt_extra_beacon_is_active())
  48. {
  49. furi_check(furi_hal_bt_extra_beacon_stop());
  50. }
  51. break;
  52. default:
  53. consumed = false;
  54. break;
  55. }
  56. }
  57. return consumed;
  58. }
  59. void findmy_scene_main_on_exit(void *context)
  60. {
  61. FindMy *app = context;
  62. UNUSED(app);
  63. }