|
@@ -351,9 +351,16 @@ object BusinessManager {
|
|
|
* 注册连接监听
|
|
* 注册连接监听
|
|
|
*/
|
|
*/
|
|
|
private fun registerConnectListener(mac: String, callBack: ((Boolean, BleBean?) -> Unit)? = null) {
|
|
private fun registerConnectListener(mac: String, callBack: ((Boolean, BleBean?) -> Unit)? = null) {
|
|
|
- connectListeners.add(ConnectListener(mac, callBack))
|
|
|
|
|
- if (connectListeners.size == 1) {
|
|
|
|
|
- connectKey()
|
|
|
|
|
|
|
+ if (connectListeners.any { it.mac == mac }) {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ if (deviceList.none { it.bleDevice.mac == mac }) {
|
|
|
|
|
+ connectListeners.add(ConnectListener(mac, callBack))
|
|
|
|
|
+ if (connectListeners.size == 1) {
|
|
|
|
|
+ connectKey()
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callBack?.invoke(true, deviceList.find { it.bleDevice.mac == mac })
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -598,16 +605,20 @@ object BusinessManager {
|
|
|
activity: AppCompatActivity,
|
|
activity: AppCompatActivity,
|
|
|
loadingCallBack: ((Boolean, String?, Boolean?) -> Unit)?,
|
|
loadingCallBack: ((Boolean, String?, Boolean?) -> Unit)?,
|
|
|
) {
|
|
) {
|
|
|
- // TODO 蓝牙准备操作
|
|
|
|
|
- val bleBean = getBleDeviceByMac(mac)
|
|
|
|
|
- if (bleBean == null) {
|
|
|
|
|
-// ToastUtils.tip(R.string.simple_key_is_not_connected)
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- // 单bleBean json赋值
|
|
|
|
|
- bleBean.ticketSend = generateTicketSendJson(ticketDetail)
|
|
|
|
|
- bleBean.ticketSend?.let { itJson ->
|
|
|
|
|
- sendTicket(itJson, bleBean.bleDevice, loadingCallBack)
|
|
|
|
|
|
|
+ registerConnectListener(mac) { isDone, bleBean ->
|
|
|
|
|
+ if (!isDone) {
|
|
|
|
|
+ sendTicketBusiness(mac, ticketDetail, activity, loadingCallBack)
|
|
|
|
|
+ return@registerConnectListener
|
|
|
|
|
+ }
|
|
|
|
|
+ if (bleBean == null) {
|
|
|
|
|
+// ToastUtils.tip(R.string.simple_key_is_not_connected)
|
|
|
|
|
+ return@registerConnectListener
|
|
|
|
|
+ }
|
|
|
|
|
+ // 单bleBean json赋值
|
|
|
|
|
+ bleBean.ticketSend = generateTicketSendJson(ticketDetail)
|
|
|
|
|
+ bleBean.ticketSend?.let { itJson ->
|
|
|
|
|
+ sendTicket(itJson, bleBean.bleDevice, loadingCallBack)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|