Files
Momentum-Firmware/applications/system/findmy/scenes/findmy_scene_main.c
2024-03-08 21:35:59 +00:00

63 lines
2.0 KiB
C

#include "../findmy_i.h"
void findmy_scene_main_callback(FindMyMainEvent event, void* context) {
furi_assert(context);
FindMy* app = context;
view_dispatcher_send_custom_event(app->view_dispatcher, event);
}
void findmy_scene_main_on_enter(void* context) {
FindMy* app = context;
findmy_main_set_callback(app->findmy_main, findmy_scene_main_callback, app);
view_dispatcher_switch_to_view(app->view_dispatcher, FindMyViewMain);
}
bool findmy_scene_main_on_event(void* context, SceneManagerEvent event) {
FindMy* app = context;
bool consumed = false;
if(event.type == SceneManagerEventTypeCustom) {
consumed = true;
switch(event.event) {
case FindMyMainEventToggle:
findmy_toggle_beacon(app);
break;
case FindMyMainEventBackground:
app->state.beacon_active = true;
findmy_state_save(&app->state);
if(!furi_hal_bt_extra_beacon_is_active()) {
furi_check(furi_hal_bt_extra_beacon_start());
}
view_dispatcher_stop(app->view_dispatcher);
break;
case FindMyMainEventConfig:
scene_manager_next_scene(app->scene_manager, FindMySceneConfig);
break;
case FindMyMainEventIntervalUp:
findmy_change_broadcast_interval(app, app->state.broadcast_interval + 1);
break;
case FindMyMainEventIntervalDown:
findmy_change_broadcast_interval(app, app->state.broadcast_interval - 1);
break;
case FindMyMainEventQuit:
app->state.beacon_active = false;
findmy_state_save(&app->state);
if(furi_hal_bt_extra_beacon_is_active()) {
furi_check(furi_hal_bt_extra_beacon_stop());
}
break;
default:
consumed = false;
break;
}
}
return consumed;
}
void findmy_scene_main_on_exit(void* context) {
FindMy* app = context;
UNUSED(app);
}