[FL-1720] BLE GUI refactoring (#678)
* dialog_ex: add clean method, fix documentation * application: add bt debug and settings application * bt: add debug application * bt: add settings application * bt: rework bt service * bt debug: fix carrier debug app * assets: add debug animation to main menu * bt debug: fix bt packet test * bt service: rework bt service * bt: cleanup * Assets: fix spelling * Ble: wait for core 2 startup complete before initializing radio stack. * Accessor: remove dead code, switch port PA6 to PA4, because interrupt line 6 is used by down button. * FuriHal: assert interrupt line on add_int_callback. * Bt: update icon on core2 startup complete. Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
56
applications/bt/bt_settings_app/scenes/bt_settings_scene_start.c
Executable file
56
applications/bt/bt_settings_app/scenes/bt_settings_scene_start.c
Executable file
@@ -0,0 +1,56 @@
|
||||
#include "../bt_settings_app.h"
|
||||
#include "furi-hal-bt.h"
|
||||
|
||||
enum BtSettingsAppStartSubmenuIndex {
|
||||
BtSettingsAppStartSubmenuIndexEnable,
|
||||
};
|
||||
|
||||
static void bt_settings_scene_start_submenu_callback(void* context, uint32_t index) {
|
||||
BtSettingsApp* app = context;
|
||||
view_dispatcher_send_custom_event(app->view_dispatcher, index);
|
||||
}
|
||||
|
||||
void bt_settings_scene_start_on_enter(void* context) {
|
||||
BtSettingsApp* app = context;
|
||||
Submenu* submenu = app->submenu;
|
||||
|
||||
const char* submenu_label = app->settings.enabled ? "Disable" : "Enable";
|
||||
submenu_add_item(
|
||||
submenu,
|
||||
submenu_label,
|
||||
BtSettingsAppStartSubmenuIndexEnable,
|
||||
bt_settings_scene_start_submenu_callback,
|
||||
app);
|
||||
|
||||
view_dispatcher_switch_to_view(app->view_dispatcher, BtSettingsAppViewSubmenu);
|
||||
}
|
||||
|
||||
bool bt_settings_scene_start_on_event(void* context, SceneManagerEvent event) {
|
||||
BtSettingsApp* app = context;
|
||||
bool consumed = false;
|
||||
|
||||
if(event.type == SceneManagerEventTypeCustom) {
|
||||
if(event.event == BtSettingsAppStartSubmenuIndexEnable) {
|
||||
if(!app->settings.enabled) {
|
||||
app->settings.enabled = true;
|
||||
furi_hal_bt_start_app();
|
||||
submenu_clean(app->submenu);
|
||||
submenu_add_item(
|
||||
app->submenu,
|
||||
"Disable",
|
||||
BtSettingsAppStartSubmenuIndexEnable,
|
||||
bt_settings_scene_start_submenu_callback,
|
||||
app);
|
||||
} else {
|
||||
scene_manager_next_scene(app->scene_manager, BtSettingsAppSceneDisableDialog);
|
||||
}
|
||||
consumed = true;
|
||||
}
|
||||
}
|
||||
return consumed;
|
||||
}
|
||||
|
||||
void bt_settings_scene_start_on_exit(void* context) {
|
||||
BtSettingsApp* app = context;
|
||||
submenu_clean(app->submenu);
|
||||
}
|
Reference in New Issue
Block a user