From 0a9bc290ea1f891d5059689f35a3c8a355fa0cee Mon Sep 17 00:00:00 2001
From: Chienyuan Huang <chienyuanhuang@google.com>
Date: Fri, 1 Mar 2024 08:45:15 +0000
Subject: [PATCH] api: GetConnectionState OR state of resolved address

Bug: 295010253
Bug: 325333712
Bug: 325333718
Test: atest net_test_btif_stack
Flag: api_get_connection_state_sync_on_main
Change-Id: I002783e030c41be60c17cbb38b217f59010a62c7
---
 system/btif/src/btif_dm.cc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/system/btif/src/btif_dm.cc b/system/btif/src/btif_dm.cc
index 324c77c379a..af393d7a009 100644
--- a/system/btif/src/btif_dm.cc
+++ b/system/btif/src/btif_dm.cc
@@ -957,11 +957,12 @@ uint16_t btif_dm_get_connection_state_sync(const RawAddress& bd_addr) {
              base::BindOnce(
                  [](const RawAddress bd_addr, std::promise<uint16_t> promise) {
                    // Experiment to try with maybe resolved address
-                   btif_dm_get_resolved_connection_state({
+                   uint16_t state = btif_dm_get_resolved_connection_state({
                        .type = BLE_ADDR_RANDOM,
                        .bda = bd_addr,
                    });
-                   promise.set_value(btif_dm_get_connection_state(bd_addr));
+                   state |= btif_dm_get_connection_state(bd_addr);
+                   promise.set_value(state);
                  },
                  bd_addr, std::move(promise))));
   return future.get();
-- 
GitLab