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

Commit d8b2622e authored by Xin Li's avatar Xin Li
Browse files

DO NOT MERGE - Merge PPRL.190205.001 into master

Bug: 124234733
Change-Id: I260dc329f1d83ef8a9cab7e9caee32ba47277477
parents d5dc6749 4ea392da
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -246,6 +246,17 @@ class HearingAidImpl : public HearingAid {
    BTA_GATTC_Open(gatt_if, address, true, GATT_TRANSPORT_LE, false);
  }

  void AddToWhiteList(const RawAddress& address) override {
    VLOG(2) << __func__ << " address: " << address;
    hearingDevices.Add(HearingDevice(address, true));
    BTA_GATTC_Open(gatt_if, address, false, GATT_TRANSPORT_LE, false);
  }

  void RemoveFromWhiteList(const RawAddress& address) override {
    VLOG(2) << __func__ << " address: " << address;
    BTA_GATTC_CancelOpen(gatt_if, address, false);
  }

  void AddFromStorage(const HearingDevice& dev_info, uint16_t is_white_listed) {
    DVLOG(2) << __func__ << " " << dev_info.address
             << ", hiSyncId=" << loghex(dev_info.hi_sync_id)
@@ -1252,6 +1263,10 @@ class HearingAidImpl : public HearingAid {
    LOG(INFO) << "GAP_EVT_CONN_CLOSED: " << hearingDevice->address
              << ", playback_started=" << hearingDevice->playback_started;

    LOG(INFO) << "GAP_EVT_CONN_CLOSED: " << hearingDevice->address
              << ", playback_started=" << hearingDevice->playback_started;
    hearingDevice->playback_started = false;

    if (hearingDevice->connecting_actively) {
      // cancel pending direct connect
      BTA_GATTC_CancelOpen(gatt_if, address, true);
@@ -1267,6 +1282,8 @@ class HearingAidImpl : public HearingAid {

    DoDisconnectCleanUp(hearingDevice);

    DoDisconnectCleanUp(hearingDevice);

    hearingDevices.Remove(address);

    if (connected)
+1 −4
Original line number Diff line number Diff line
@@ -1404,14 +1404,13 @@ static void bta_hl_sdp_query_results(UNUSED_ATTR tBTA_HL_CB* p_cb,
  tBTA_HL_MCL_CB* p_mcb = BTA_HL_GET_MCL_CB_PTR(app_idx, mcl_idx);
  tBTA_HL_SDP* p_sdp = NULL;
  uint16_t event;
  bool release_sdp_buf = false;

  event = p_data->hdr.event;

  if (event == BTA_HL_SDP_QUERY_OK_EVT) {
    // this is freed in btif_hl_proc_sdp_query_cfm
    p_sdp = (tBTA_HL_SDP*)osi_malloc(sizeof(tBTA_HL_SDP));
    memcpy(p_sdp, &p_mcb->sdp, sizeof(tBTA_HL_SDP));
    release_sdp_buf = true;
  } else {
    status = BTA_HL_STATUS_SDP_FAIL;
  }
@@ -1430,8 +1429,6 @@ static void bta_hl_sdp_query_results(UNUSED_ATTR tBTA_HL_CB* p_cb,
                             p_mcb->bd_addr, p_sdp, status);
  p_acb->p_cback(BTA_HL_SDP_QUERY_CFM_EVT, (tBTA_HL*)&evt_data);

  if (release_sdp_buf) osi_free_and_reset((void**)&p_sdp);

  if (p_data->cch_sdp.release_mcl_cb) {
    memset(p_mcb, 0, sizeof(tBTA_HL_MCL_CB));
  } else {
+2 −0
Original line number Diff line number Diff line
@@ -176,6 +176,8 @@ class HearingAid {

  virtual void Connect(const RawAddress& address) = 0;
  virtual void Disconnect(const RawAddress& address) = 0;
  virtual void AddToWhiteList(const RawAddress& address) = 0;
  virtual void RemoveFromWhiteList(const RawAddress& address) = 0;
  virtual void SetVolume(int8_t volume) = 0;
};

+3 −0
Original line number Diff line number Diff line
@@ -227,6 +227,9 @@ void btif_storage_load_bonded_hearing_aids();
/** Deletes the bonded hearing aid device info from NVRAM */
void btif_storage_remove_hearing_aid(const RawAddress& address);

/** Add the hearing aid device to white list */
void btif_storage_add_hearing_aid_to_white_list(const RawAddress& address);

/** Remove the hearing aid device from white list */
void btif_storage_remove_hearing_aid_white_list(const RawAddress& address);

+16 −0
Original line number Diff line number Diff line
@@ -96,6 +96,22 @@ class HearingAidInterfaceImpl
        FROM_HERE, Bind(&btif_storage_remove_hearing_aid_white_list, address));
  }

  void AddToWhiteList(const RawAddress& address) override {
    DVLOG(2) << __func__ << " address: " << address;
    do_in_main_thread(FROM_HERE, Bind(&HearingAid::AddToWhiteList,
                                     Unretained(HearingAid::Get()), address));
    do_in_jni_thread(
        FROM_HERE, Bind(&btif_storage_add_hearing_aid_to_white_list, address));
  }

  void RemoveFromWhiteList(const RawAddress& address) override {
    DVLOG(2) << __func__ << " address: " << address;
    do_in_main_thread(FROM_HERE, Bind(&HearingAid::RemoveFromWhiteList,
                                     Unretained(HearingAid::Get()), address));
    do_in_jni_thread(
        FROM_HERE, Bind(&btif_storage_remove_hearing_aid_white_list, address));
  }

  void SetVolume(int8_t volume) override {
    DVLOG(2) << __func__ << " volume: " << +volume;
    do_in_main_thread(FROM_HERE, Bind(&HearingAid::SetVolume,
Loading