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

Commit 5477e1ab authored by weichinweng's avatar weichinweng Committed by android-build-merger
Browse files

Call gatt_disconnect if the LE connection is not established and no APP use it.

am: 5fc950d1

Change-Id: Ic4547081033a5f37124094ec822e3e4e14403e9f
parents 6e81f67b 5fc950d1
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -331,14 +331,16 @@ void gatt_update_app_use_link_flag(tGATT_IF gatt_if, tGATT_TCB* p_tcb,
  // device, skip updating the device state.
  if (!gatt_update_app_hold_link_status(gatt_if, p_tcb, is_add)) return;

  if (!check_acl_link ||
      (BTM_GetHCIConnHandle(p_tcb->peer_bda, p_tcb->transport) ==
       GATT_INVALID_ACL_HANDLE)) {
  if (!check_acl_link) {
    return;
  }

  bool is_valid_handle =
      (BTM_GetHCIConnHandle(p_tcb->peer_bda, p_tcb->transport) !=
       GATT_INVALID_ACL_HANDLE);

  if (is_add) {
    if (p_tcb->att_lcid == L2CAP_ATT_CID) {
    if (p_tcb->att_lcid == L2CAP_ATT_CID && is_valid_handle) {
      VLOG(1) << "disable link idle timer";
      /* acl link is connected disable the idle timeout */
      GATT_SetIdleTimeout(p_tcb->peer_bda, GATT_LINK_NO_IDLE_TIMEOUT,
@@ -347,7 +349,7 @@ void gatt_update_app_use_link_flag(tGATT_IF gatt_if, tGATT_TCB* p_tcb,
  } else {
    if (p_tcb->app_hold_link.empty()) {
      // acl link is connected but no application needs to use the link
      if (p_tcb->att_lcid == L2CAP_ATT_CID) {
      if (p_tcb->att_lcid == L2CAP_ATT_CID && is_valid_handle) {
        /* for fixed channel, set the timeout value to
           GATT_LINK_IDLE_TIMEOUT_WHEN_NO_APP seconds */
        VLOG(1) << " start link idle timer = "