return tagConnectNew;\r
}\r
\r
+// 设置是否已点击设备请求连接\r
void BluetoothModel::SetTagScanDeviceClicked(bool tag)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothModel::SetTagScanDeviceClicked:%d", tag);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BtGapDiscoveryResultCallback end");\r
}\r
\r
+//蓝牙取消配对ui处理\r
+static void UnpairDevice(const bd_addr_t *bdAddr)\r
+{\r
+ if(ThunderBirdMainView::GetInstance()) {\r
+ int currentView = ThunderBirdMainView::GetInstance()->GetCurrentView();\r
+ ThunderBirdMainView::GetInstance()->ChangeView(currentView, \r
+ THUNDERBIRD_BLUEVIEW, \r
+ ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DISCONNECT_SUCCESS_NEW);\r
+ }\r
+ return;\r
+}\r
+\r
void BtGapPairStatusChangedCallback(const bd_addr_t *bdAddr, int status)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "配对状态变化 addr: ****%02x%02x%02x%02x status: %d\n",\r
bdAddr->addr[3], bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0], status); /* addr下标 0 1 2 3 */\r
if(status == GAP_PAIR_NONE){\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "取消配对");\r
+ GraphicService::GetInstance()->PostGraphicEvent(std::bind(UnpairDevice, bdAddr));\r
} else if(status == GAP_PAIR_PAIRING){\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "正在配对");\r
} else if(status == GAP_PAIR_PAIRED){\r
// 回调:ACL连接失败\r
static void ACLConnectionFail(const bd_addr_t &bdAddr)\r
{\r
+ // 如果当前正处于“切换到新耳机”的流程中(用户点了另一台设备准备自动重连),\r
+ // 就不要弹出“连接已断开”页面,直接走后续新设备连接流程,避免多余页面跳转。\r
+ BluetoothModel* btModel = BluetoothModel::GetInstance();\r
+ if (btModel != nullptr && (btModel->IsTagConnectNew() || btModel->IsTagScanDeviceClicked())) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+ "ACLConnectionFail: in switch-device flow, skip DISCONNECT_SUCCESS page");\r
+ // 清掉“需要自动连接新设备”的标记,由后续连接结果负责更新界面\r
+ btModel->SetTagConnectNew(false);\r
+ return;\r
+ }\r
+\r
BluetoothCaseInfo caseInfo;\r
(void)memcpy_s(caseInfo.addr, BD_ADDR_LEN, bdAddr.addr, BD_ADDR_LEN);\r
unsigned char nameLen = BD_NAME_LEN;\r
ThunderBirdBlueView::GetInstance()->OnConnectFailed();
ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_BLUEVIEW, ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DEVICE_LIST);
break;
+ case ThunderBirdBlueView::THUNDERBIRD_BULEVIEW_DISCONNECT_SUCCESS_NEW:
+ //解绑成功,返回主界面,提示用户解绑成功
+ ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
+ break;
}
}
else if(keyType == KEY_TYPE_VENDOR_DOWN)
ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
break;
}
+ ln_bt_scan_stop();
ln_bt_report_earphone_connection_status();
}
}