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

Commit 4791ca10 authored by Abhishek Pandit-Subedi's avatar Abhishek Pandit-Subedi Committed by Automerger Merge Worker
Browse files

Reland: EIR uuids should be added to device_found_cb am: 3154232a am: 1351819f am: ecf20624

Original change: https://android-review.googlesource.com/c/platform/system/bt/+/1842589

Change-Id: I2ae786dc6058b5b6392a6062858d9219e2e0e794
parents db124384 ecf20624
Loading
Loading
Loading
Loading
+22 −9
Original line number Original line Diff line number Diff line
@@ -1155,7 +1155,8 @@ static void btif_dm_search_devices_evt(tBTA_DM_SEARCH_EVT event,
      /* inquiry result */
      /* inquiry result */
      bt_bdname_t bdname;
      bt_bdname_t bdname;
      uint8_t remote_name_len;
      uint8_t remote_name_len;
      tBTA_SERVICE_MASK services = 0;
      uint8_t num_uuids = 0, max_num_uuid = 32;
      uint8_t uuid_list[32 * Uuid::kNumBytes16];


      p_search_data->inq_res.remt_name_not_required =
      p_search_data->inq_res.remt_name_not_required =
          check_eir_remote_name(p_search_data, NULL, NULL);
          check_eir_remote_name(p_search_data, NULL, NULL);
@@ -1169,18 +1170,15 @@ static void btif_dm_search_devices_evt(tBTA_DM_SEARCH_EVT event,
      if (!check_eir_remote_name(p_search_data, bdname.name, &remote_name_len))
      if (!check_eir_remote_name(p_search_data, bdname.name, &remote_name_len))
        check_cached_remote_name(p_search_data, bdname.name, &remote_name_len);
        check_cached_remote_name(p_search_data, bdname.name, &remote_name_len);


      /* Check EIR for remote name and services */
      /* Check EIR for services */
      if (p_search_data->inq_res.p_eir) {
      if (p_search_data->inq_res.p_eir) {
        BTA_GetEirService(p_search_data->inq_res.p_eir,
        BTM_GetEirUuidList(p_search_data->inq_res.p_eir,
                          p_search_data->inq_res.eir_len, &services);
                           p_search_data->inq_res.eir_len, Uuid::kNumBytes16,
        BTIF_TRACE_DEBUG("%s()EIR BTA services = %08X", __func__,
                           &num_uuids, uuid_list, max_num_uuid);
                         (uint32_t)services);
        /* TODO:  Get the service list and check to see which uuids we got and
         * send it back to the client. */
      }
      }


      {
      {
        bt_property_t properties[6];
        bt_property_t properties[7];
        bt_device_type_t dev_type;
        bt_device_type_t dev_type;
        uint32_t num_properties = 0;
        uint32_t num_properties = 0;
        bt_status_t status;
        bt_status_t status;
@@ -1244,6 +1242,21 @@ static void btif_dm_search_devices_evt(tBTA_DM_SEARCH_EVT event,
                                   &(p_search_data->inq_res.include_rsi));
                                   &(p_search_data->inq_res.include_rsi));
        num_properties++;
        num_properties++;


        /* EIR queried services */
        std::vector<Uuid> uuid128_list;
        if (num_uuids > 0) {
          uint16_t* p_uuid16 = (uint16_t*)uuid_list;
          for (int i = 0; i < num_uuids; ++i) {
            Uuid uuid = Uuid::From16Bit(p_uuid16[i]);
            uuid128_list.push_back(uuid);
          }

          BTIF_STORAGE_FILL_PROPERTY(
              &properties[num_properties], BT_PROPERTY_UUIDS,
              num_uuids * Uuid::kNumBytes128, uuid128_list.data());
          num_properties++;
        }

        status =
        status =
            btif_storage_add_remote_device(&bdaddr, num_properties, properties);
            btif_storage_add_remote_device(&bdaddr, num_properties, properties);
        ASSERTC(status == BT_STATUS_SUCCESS,
        ASSERTC(status == BT_STATUS_SUCCESS,