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

Commit 3977fa6a authored by Łukasz Rymanowski's avatar Łukasz Rymanowski Committed by Gerrit Code Review
Browse files

Merge changes If37b0519,Ia9a24377,Ic90f0cec,Ic33306aa,I00f30dcc, ...

* changes:
  leaudio: Start using Targeted announcements
  connection_manager: Integrate targeted annoucement filtering
  leaudio/scanner: Add cap/bap filtering
  btm: Enhance with targeted announcements
  connection_manager: Add initial support for target announcements
  gatt: Prepare GATTC_OPEN API for more than direct and background
parents bf27825e 7d3bc101
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1482,11 +1482,12 @@ public class ScanManager {
        private void initFilterIndexStack() {
            int maxFiltersSupported =
                    AdapterService.getAdapterService().getNumOfOffloadedScanFilterSupported();
            // Start from index 3 as:
            // Start from index 4 as:
            // index 0 is reserved for ALL_PASS filter in Settings app.
            // index 1 is reserved for ALL_PASS filter for regular scan apps.
            // index 2 is reserved for ALL_PASS filter for batch scan apps.
            for (int i = 3; i < maxFiltersSupported; ++i) {
            // index 3 is reserved for BAP/CAP Announcements
            for (int i = 4; i < maxFiltersSupported; ++i) {
                mFilterIndexStack.add(i);
            }
        }
+2 −2
Original line number Diff line number Diff line
@@ -237,7 +237,7 @@ class CsisClientImpl : public CsisClient {
      device->connecting_actively = true;
    }

    BTA_GATTC_Open(gatt_if_, address, true, false);
    BTA_GATTC_Open(gatt_if_, address, BTM_BLE_DIRECT_CONNECTION, false);
  }

  void Disconnect(const RawAddress& addr) override {
@@ -655,7 +655,7 @@ class CsisClientImpl : public CsisClient {
    }

    if (autoconnect) {
      BTA_GATTC_Open(gatt_if_, addr, false, false);
      BTA_GATTC_Open(gatt_if_, addr, BTM_BLE_BKG_CONNECT_ALLOW_LIST, false);
    }
  }

+4 −2
Original line number Diff line number Diff line
@@ -426,7 +426,8 @@ class CsisClientTest : public ::testing::Test {
        .WillByDefault(
            DoAll(SetArgPointee<1>(BTM_SEC_FLAG_ENCRYPTED), Return(true)));

    EXPECT_CALL(gatt_interface, Open(gatt_if, address, true, _));
    EXPECT_CALL(gatt_interface,
                Open(gatt_if, address, BTM_BLE_DIRECT_CONNECTION, _));
    CsisClient::Get()->Connect(address);
    Mock::VerifyAndClearExpectations(&gatt_interface);
    Mock::VerifyAndClearExpectations(&btm_interface);
@@ -449,7 +450,8 @@ class CsisClientTest : public ::testing::Test {
                OnConnectionState(address, ConnectionState::CONNECTED))
        .Times(1);
    EXPECT_CALL(*callbacks, OnDeviceAvailable(address, _, _, _, _)).Times(1);
    EXPECT_CALL(gatt_interface, Open(gatt_if, address, false, _))
    EXPECT_CALL(gatt_interface,
                Open(gatt_if, address, BTM_BLE_BKG_CONNECT_ALLOW_LIST, _))
        .WillOnce(Invoke([this, conn_id](tGATT_IF client_if,
                                         const RawAddress& remote_bda,
                                         bool is_direct, bool opportunistic) {
+4 −2
Original line number Diff line number Diff line
@@ -4113,9 +4113,11 @@ void btm_dm_start_gatt_discovery(const RawAddress& bd_addr) {
    BTA_GATTC_ServiceSearchRequest(bta_dm_search_cb.conn_id, nullptr);
  } else {
    if (BTM_IsAclConnectionUp(bd_addr, BT_TRANSPORT_LE)) {
      BTA_GATTC_Open(bta_dm_search_cb.client_if, bd_addr, true, true);
      BTA_GATTC_Open(bta_dm_search_cb.client_if, bd_addr,
                     BTM_BLE_DIRECT_CONNECTION, true);
    } else {
      BTA_GATTC_Open(bta_dm_search_cb.client_if, bd_addr, true, false);
      BTA_GATTC_Open(bta_dm_search_cb.client_if, bd_addr,
                     BTM_BLE_DIRECT_CONNECTION, false);
    }
  }
}
+6 −5
Original line number Diff line number Diff line
@@ -280,7 +280,7 @@ void bta_gattc_process_api_open(const tBTA_GATTC_DATA* p_msg) {
    return;
  }

  if (!p_msg->api_conn.is_direct) {
  if (p_msg->api_conn.connection_type != BTM_BLE_DIRECT_CONNECTION) {
    bta_gattc_init_bk_conn(&p_msg->api_conn, p_clreg);
    return;
  }
@@ -383,8 +383,9 @@ void bta_gattc_open(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  tBTA_GATTC_DATA gattc_data;

  /* open/hold a connection */
  if (!GATT_Connect(p_clcb->p_rcb->client_if, p_data->api_conn.remote_bda, true,
                    p_data->api_conn.transport, p_data->api_conn.opportunistic,
  if (!GATT_Connect(p_clcb->p_rcb->client_if, p_data->api_conn.remote_bda,
                    BTM_BLE_DIRECT_CONNECTION, p_data->api_conn.transport,
                    p_data->api_conn.opportunistic,
                    p_data->api_conn.initiating_phys)) {
    LOG(ERROR) << "Connection open failure";
    bta_gattc_sm_execute(p_clcb, BTA_GATTC_INT_OPEN_FAIL_EVT, p_data);
@@ -423,8 +424,8 @@ static void bta_gattc_init_bk_conn(const tBTA_GATTC_API_OPEN* p_data,
  }

  /* always call open to hold a connection */
  if (!GATT_Connect(p_data->client_if, p_data->remote_bda, false,
                    p_data->transport, false)) {
  if (!GATT_Connect(p_data->client_if, p_data->remote_bda,
                    p_data->connection_type, p_data->transport, false)) {
    LOG_ERROR("Unable to connect to remote bd_addr=%s",
              ADDRESS_TO_LOGGABLE_CSTR(p_data->remote_bda));
    bta_gattc_send_open_cback(p_clreg, GATT_ERROR, p_data->remote_bda,
Loading