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

Commit df615a9c authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix wrong address type of DUAL mode device" am: 4e1450ec am: bf894a01 am: 71be0eba

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

Change-Id: Iebb2f3dc54734a8202f41f63a8da11d64623d564
parents 1a3a8d19 71be0eba
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -485,16 +485,21 @@ void BTM_ReadDevInfo(const RawAddress& remote_bda, tBT_DEVICE_TYPE* p_dev_type,
      p_dev_rec->device_type = p_inq_info->results.device_type;
      p_dev_rec->ble.ble_addr_type = p_inq_info->results.ble_addr_type;
    }
    if (p_dev_rec->bd_addr == remote_bda && p_dev_rec->device_type != 0) {

    if (p_dev_rec->bd_addr == remote_bda &&
        p_dev_rec->ble.pseudo_addr == remote_bda) {
      *p_dev_type = p_dev_rec->device_type;
      *p_addr_type = p_dev_rec->ble.ble_addr_type;
    } else if (p_dev_rec->ble.pseudo_addr == remote_bda) {
      *p_dev_type = BT_DEVICE_TYPE_BLE;
      *p_addr_type = p_dev_rec->ble.ble_addr_type;
    } else /* matching static adddress only */
    {
      LOG(ERROR) << __func__ << " device_type not set; assuming BR/EDR";
    } else /* matching static adddress only */ {
      if (p_dev_rec->device_type != BT_DEVICE_TYPE_UNKNOWN) {
        *p_dev_type = p_dev_rec->device_type;
      } else {
        LOG_WARN("device_type not set; assuming BR/EDR");
        *p_dev_type = BT_DEVICE_TYPE_BREDR;
      }
      *p_addr_type = BLE_ADDR_PUBLIC;
    }
  }