summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Brabham <optedoblivion@google.com>2019-06-08 04:58:52 +0000
committerMartin Brabham <optedoblivion@google.com>2019-09-30 15:31:51 +0000
commitcaff42bd3c5bc2f7120b94235c3c578a1b2b407d (patch)
tree1f26043dea7d8cde383a854e121e90751a5c8701
parentec4d990050a30edcf9a623176a7cf0fb9672cc89 (diff)
downloadandroid_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.cc23
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) {