Remove from filter accept list upon cancel connect

connection::manager no longer arbitrates filter
accept list manipulation

Bug: 237600252
Test: gd/cert/run, testplans/1181383
Tag: #refactor
BYPASS_LONG_LINES_REASON: Bluetooth likes 120 lines
Ignore-AOSP-First: Cherry-pick

Merged-In: I2d0d2d64c621d565d1ed985da4b061563029def1
Change-Id: I2d0d2d64c621d565d1ed985da4b061563029def1
(cherry picked from commit 32a931edd0c3e41c14f91e2e4c1679da00bddbd1)
Merged-In: I2d0d2d64c621d565d1ed985da4b061563029def1
diff --git a/system/stack/gatt/gatt_main.cc b/system/stack/gatt/gatt_main.cc
index f2d0637..df6a056 100644
--- a/system/stack/gatt/gatt_main.cc
+++ b/system/stack/gatt/gatt_main.cc
@@ -249,10 +249,15 @@
 bool gatt_disconnect(tGATT_TCB* p_tcb) {
   VLOG(1) << __func__;
 
-  if (!p_tcb) return false;
+  if (!p_tcb) {
+    LOG_WARN("Unable to disconnect an unknown device");
+    return false;
+  }
 
   tGATT_CH_STATE ch_state = gatt_get_ch_state(p_tcb);
   if (ch_state == GATT_CH_CLOSING) {
+    LOG_DEBUG("Device already in closing state peer:%s",
+              PRIVATE_ADDRESS(p_tcb->peer_bda));
     VLOG(1) << __func__ << " already in closing state";
     return true;
   }
@@ -262,8 +267,16 @@
       L2CA_RemoveFixedChnl(L2CAP_ATT_CID, p_tcb->peer_bda);
       gatt_set_ch_state(p_tcb, GATT_CH_CLOSING);
     } else {
-      connection_manager::direct_connect_remove(CONN_MGR_ID_L2CAP,
-                                                p_tcb->peer_bda);
+      if (!connection_manager::direct_connect_remove(CONN_MGR_ID_L2CAP,
+                                                     p_tcb->peer_bda)) {
+        BTM_AcceptlistRemove(p_tcb->peer_bda);
+        LOG_INFO(
+            "GATT connection manager has no record but removed filter "
+            "acceptlist "
+            "gatt_if:%hhu peer:%s",
+            static_cast<uint8_t>(CONN_MGR_ID_L2CAP),
+            PRIVATE_ADDRESS(p_tcb->peer_bda));
+      }
       gatt_cleanup_upon_disc(p_tcb->peer_bda, GATT_CONN_TERMINATE_LOCAL_HOST,
                              p_tcb->transport);
     }