Просмотр исходного кода

[FL-2243] Restart BT advertising after forgetting devices #982

Co-authored-by: あく <alleteam@gmail.com>
gornekich 4 лет назад
Родитель
Сommit
3f6deecdae

+ 2 - 1
applications/bt/bt_service/bt_keys_storage.c

@@ -43,10 +43,11 @@ bool bt_save_key_storage(Bt* bt) {
 bool bt_delete_key_storage(Bt* bt) {
     furi_assert(bt);
     bool delete_succeed = false;
+    bool bt_is_active = furi_hal_bt_is_active();
 
     furi_hal_bt_stop_advertising();
     delete_succeed = furi_hal_bt_clear_white_list();
-    if(bt->bt_settings.enabled) {
+    if(bt_is_active) {
         furi_hal_bt_start_advertising();
     }
 

+ 1 - 1
firmware/targets/f6/furi_hal/furi_hal_bt.c

@@ -246,7 +246,7 @@ bool furi_hal_bt_change_app(FuriHalBtProfile profile, GapEventCallback event_cb,
     return ret;
 }
 
-static bool furi_hal_bt_is_active() {
+bool furi_hal_bt_is_active() {
     return gap_get_state() > GapStateIdle;
 }
 

+ 1 - 1
firmware/targets/f7/furi_hal/furi_hal_bt.c

@@ -246,7 +246,7 @@ bool furi_hal_bt_change_app(FuriHalBtProfile profile, GapEventCallback event_cb,
     return ret;
 }
 
-static bool furi_hal_bt_is_active() {
+bool furi_hal_bt_is_active() {
     return gap_get_state() > GapStateIdle;
 }
 

+ 6 - 0
firmware/targets/furi_hal_include/furi_hal_bt.h

@@ -84,6 +84,12 @@ bool furi_hal_bt_change_app(FuriHalBtProfile profile, GapEventCallback event_cb,
  */
 void furi_hal_bt_update_battery_level(uint8_t battery_level);
 
+/** Checks if BLE state is active
+ *
+ * @return          true if device is connected or advertising, false otherwise
+ */
+bool furi_hal_bt_is_active();
+
 /** Start advertising
  */
 void furi_hal_bt_start_advertising();