added sfw_mode support for ble

This commit is contained in:
jbohack
2022-12-30 14:21:18 -05:00
parent 3500b5fc4f
commit a727eca56f
2 changed files with 20 additions and 2 deletions

View File

@@ -5,6 +5,7 @@
#include <notification/notification_messages.h>
#include <gui/elements.h>
#include <assets_icons.h>
#include "../../../settings/desktop_settings/desktop_settings_app.h"
#define TAG "BtSrv"
@@ -35,10 +36,18 @@ static void bt_pin_code_view_port_draw_callback(Canvas* canvas, void* context) {
furi_assert(context);
Bt* bt = context;
char pin_code_info[24];
canvas_draw_icon(canvas, 0, 0, &I_BLE_Pairing_128x64);
DesktopSettings* settings = malloc(sizeof(DesktopSettings));
DESKTOP_SETTINGS_LOAD(settings);
if (settings->sfw_mode) {
canvas_draw_icon(canvas, 0, 0, &I_BLE_Pairing_128x64_sfw);
}
else {
canvas_draw_icon(canvas, 0, 0, &I_BLE_Pairing_128x64);
}
snprintf(pin_code_info, sizeof(pin_code_info), "Pairing code\n%06lu", bt->pin_code);
elements_multiline_text_aligned(canvas, 64, 4, AlignCenter, AlignTop, pin_code_info);
elements_button_left(canvas, "Quit");
free(settings);
}
static void bt_pin_code_view_port_input_callback(InputEvent* event, void* context) {
@@ -75,9 +84,17 @@ static void bt_pin_code_hide(Bt* bt) {
static bool bt_pin_code_verify_event_handler(Bt* bt, uint32_t pin) {
furi_assert(bt);
DesktopSettings* settings = malloc(sizeof(DesktopSettings));
DESKTOP_SETTINGS_LOAD(settings);
notification_message(bt->notification, &sequence_display_backlight_on);
FuriString* pin_str;
dialog_message_set_icon(bt->dialog_message, &I_BLE_Pairing_128x64, 0, 0);
if (settings->sfw_mode) {
dialog_message_set_icon(bt->dialog_message, &I_BLE_Pairing_128x64_sfw, 0, 0);
}
else {
dialog_message_set_icon(bt->dialog_message, &I_BLE_Pairing_128x64, 0, 0);
}
pin_str = furi_string_alloc_printf("Verify code\n%06lu", pin);
dialog_message_set_text(
bt->dialog_message, furi_string_get_cstr(pin_str), 64, 4, AlignCenter, AlignTop);
@@ -85,6 +102,7 @@ static bool bt_pin_code_verify_event_handler(Bt* bt, uint32_t pin) {
DialogMessageButton button = dialog_message_show(bt->dialogs, bt->dialog_message);
furi_string_free(pin_str);
return button == DialogMessageButtonCenter;
free(settings);
}
static void bt_battery_level_changed_callback(const void* _event, void* context) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB