diff options
author | Martin Brabham <optedoblivion@google.com> | 2019-06-08 04:58:52 +0000 |
---|---|---|
committer | Martin Brabham <optedoblivion@google.com> | 2019-09-30 15:31:51 +0000 |
commit | caff42bd3c5bc2f7120b94235c3c578a1b2b407d (patch) | |
tree | 1f26043dea7d8cde383a854e121e90751a5c8701 | |
parent | ec4d990050a30edcf9a623176a7cf0fb9672cc89 (diff) | |
download | android_system_bt-caff42bd3c5bc2f7120b94235c3c578a1b2b407d.tar.gz android_system_bt-caff42bd3c5bc2f7120b94235c3c578a1b2b407d.tar.bz2 android_system_bt-caff42bd3c5bc2f7120b94235c3c578a1b2b407d.zip |
Revert "DO NOT MERGE: btif: require pairing dialog for JustWorks SSP"
This reverts commit 26ba26be830f04e6fd9c77b075bcae48677d4cce.
Reason for revert: breaks tv UX
Bug: 110433804
Change-Id: I2c644ed62619f34494be0a0c7c75078cec0ebdd3
-rw-r--r-- | btif/src/btif_dm.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/btif/src/btif_dm.cc b/btif/src/btif_dm.cc index 3561239dc..5b4d33685 100644 --- a/btif/src/btif_dm.cc +++ b/btif/src/btif_dm.cc @@ -918,6 +918,7 @@ static void btif_dm_pin_req_evt(tBTA_DM_PIN_REQ* p_pin_req) { static void btif_dm_ssp_cfm_req_evt(tBTA_DM_SP_CFM_REQ* p_ssp_cfm_req) { bt_bdname_t bd_name; uint32_t cod; + bool is_incoming = !(pairing_cb.state == BT_BOND_STATE_BONDING); int dev_type; BTIF_TRACE_DEBUG("%s", __func__); @@ -962,6 +963,28 @@ static void btif_dm_ssp_cfm_req_evt(tBTA_DM_SP_CFM_REQ* p_ssp_cfm_req) { pairing_cb.is_ssp = true; + /* If JustWorks auto-accept */ + if (p_ssp_cfm_req->just_works) { + /* Pairing consent for JustWorks needed if: + * 1. Incoming (non-temporary) pairing is detected AND + * 2. local IO capabilities are DisplayYesNo AND + * 3. remote IO capabiltiies are DisplayOnly or NoInputNoOutput; + */ + if (is_incoming && pairing_cb.bond_type != BOND_TYPE_TEMPORARY && + ((p_ssp_cfm_req->loc_io_caps == HCI_IO_CAP_DISPLAY_YESNO) && + (p_ssp_cfm_req->rmt_io_caps == HCI_IO_CAP_DISPLAY_ONLY || + p_ssp_cfm_req->rmt_io_caps == HCI_IO_CAP_NO_IO))) { + BTIF_TRACE_EVENT( + "%s: User consent needed for incoming pairing request. loc_io_caps: " + "%d, rmt_io_caps: %d", + __func__, p_ssp_cfm_req->loc_io_caps, p_ssp_cfm_req->rmt_io_caps); + } else { + BTIF_TRACE_EVENT("%s: Auto-accept JustWorks pairing", __func__); + btif_dm_ssp_reply(&bd_addr, BT_SSP_VARIANT_CONSENT, true, 0); + return; + } + } + cod = devclass2uint(p_ssp_cfm_req->dev_class); if (cod == 0) { |