#include "../ble_beacon_app.h"
#include "core/string.h"
#include "gui/canvas.h"
#include "gui/modules/dialog_ex.h"
#include "gui/view_dispatcher.h"
#include <example_xtra_beacon_icons.h>
static void
ble_beacon_app_scene_run_beacon_confirm_dialog_callback(DialogExResult result, void* context) {
BleBeaconApp* ble_beacon = context;
view_dispatcher_send_custom_event(ble_beacon->view_dispatcher, result);
}
void ble_beacon_app_scene_run_beacon_on_enter(void* context) {
BleBeaconApp* ble_beacon = context;
DialogEx* dialog_ex = ble_beacon->dialog_ex;
dialog_ex_set_header(dialog_ex, "BLE Beacon Demo", 64, 9, AlignCenter, AlignCenter);
FuriString* status = ble_beacon->status_string;
furi_string_reset(status);
furi_string_cat_str(status, "Status: ");
if(ble_beacon->is_beacon_active) {
furi_string_cat_str(status, "Running\n");
} else {
furi_string_cat_str(status, "Stopped\n");
}
// Output MAC in reverse order
for(int i = sizeof(ble_beacon->beacon_config.address) - 1; i >= 0; i--) {
furi_string_cat_printf(status, "%02X", ble_beacon->beacon_config.address[i]);
if(i > 0) {
furi_string_cat_str(status, ":");
}
}
furi_string_cat_printf(status, "\nData length: %d", ble_beacon->beacon_data_len);
dialog_ex_set_text(dialog_ex, furi_string_get_cstr(status), 82, 32, AlignCenter, AlignCenter);
dialog_ex_set_icon(dialog_ex, 0, 20, &I_lighthouse_35x44);
dialog_ex_set_right_button_text(dialog_ex, "Configure");
dialog_ex_set_result_callback(
dialog_ex, ble_beacon_app_scene_run_beacon_confirm_dialog_callback);
dialog_ex_set_context(dialog_ex, ble_beacon);
view_dispatcher_switch_to_view(ble_beacon->view_dispatcher, BleBeaconAppViewDialog);
}
bool ble_beacon_app_scene_run_beacon_on_event(void* context, SceneManagerEvent event) {
BleBeaconApp* ble_beacon = context;
SceneManager* scene_manager = ble_beacon->scene_manager;
if(event.type == SceneManagerEventTypeCustom) {
if(event.event == DialogExResultRight) {
scene_manager_next_scene(scene_manager, BleBeaconAppSceneMenu);
return true;
}
}
return false;
}
void ble_beacon_app_scene_run_beacon_on_exit(void* context) {
BleBeaconApp* ble_beacon = context;
UNUSED(ble_beacon);
}
↑ V008 Unable to start the analysis on this file.