Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31cea6c3 authored by Zach Johnson's avatar Zach Johnson
Browse files

Encapsulate bond_state_changed_cb

Bug: 159815595
Tag: #refactor
Test: compile & verify basic functions working
Change-Id: I25cae21ab7298231ab931a48739a946b23e4129f
parent 66ba3066
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -209,5 +209,7 @@ void invoke_pin_request_cb(RawAddress bd_addr, bt_bdname_t bd_name,
void invoke_ssp_request_cb(RawAddress bd_addr, bt_bdname_t bd_name,
                           uint32_t cod, bt_ssp_variant_t pairing_variant,
                           uint32_t pass_key);
void invoke_bond_state_changed_cb(bt_status_t status, RawAddress bd_addr,
                                  bt_bond_state_t state);

#endif /* BTIF_COMMON_H */
+12 −0
Original line number Diff line number Diff line
@@ -698,3 +698,15 @@ void invoke_ssp_request_cb(RawAddress bd_addr, bt_bdname_t bd_name,
                       },
                       bd_addr, bd_name, cod, pairing_variant, pass_key));
}

void invoke_bond_state_changed_cb(bt_status_t status, RawAddress bd_addr,
                                  bt_bond_state_t state) {
  do_in_jni_thread(
      FROM_HERE,
      base::BindOnce(
          [](bt_status_t status, RawAddress bd_addr, bt_bond_state_t state) {
            HAL_CBACK(bt_hal_cbacks, bond_state_changed_cb, status, &bd_addr,
                      state);
          },
          status, bd_addr, state));
}
+5 −6
Original line number Diff line number Diff line
@@ -298,7 +298,7 @@ static void btif_dm_send_bond_state_changed(RawAddress address, bt_bond_state_t
                   << address;
      }
    }
    HAL_CBACK(bt_hal_cbacks, bond_state_changed_cb, BT_STATUS_SUCCESS, &address, bond_state);
    invoke_bond_state_changed_cb(BT_STATUS_SUCCESS, address, bond_state);
  }, address, bond_state));
  btif_dm_get_remote_services_by_transport(&address, BTA_TRANSPORT_UNKNOWN);
}
@@ -311,7 +311,8 @@ void btif_dm_init(uid_set_t* set) {
        LOG(ERROR) << __func__ << ": UI Callback fired!";

        //TODO: java BondStateMachine requires change into bonding state. If we ever send this event separately, consider removing this line
        HAL_CBACK(bt_hal_cbacks, bond_state_changed_cb, BT_STATUS_SUCCESS, &address, BT_BOND_STATE_BONDING);
        invoke_bond_state_changed_cb(BT_STATUS_SUCCESS, address,
                                     BT_BOND_STATE_BONDING);

        if (pairing_variant == BT_SSP_VARIANT_PASSKEY_ENTRY) {
          // For passkey entry we must actually use pin request, due to BluetoothPairingController (in Settings)
@@ -540,8 +541,7 @@ static void bond_state_changed(bt_status_t status, const RawAddress& bd_addr,
  if ((pairing_cb.state == state) && (state == BT_BOND_STATE_BONDING)) {
    // Cross key pairing so send callback for static address
    if (!pairing_cb.static_bdaddr.IsEmpty()) {
      auto tmp = bd_addr;
      HAL_CBACK(bt_hal_cbacks, bond_state_changed_cb, status, &tmp, state);
      invoke_bond_state_changed_cb(status, bd_addr, state);
    }
    return;
  }
@@ -560,8 +560,7 @@ static void bond_state_changed(bt_status_t status, const RawAddress& bd_addr,
                 << bd_addr;
    }
  }
  auto tmp = bd_addr;
  HAL_CBACK(bt_hal_cbacks, bond_state_changed_cb, status, &tmp, state);
  invoke_bond_state_changed_cb(status, bd_addr, state);

  int dev_type;
  if (!btif_get_device_type(bd_addr, &dev_type)) {