Jelajahi Sumber

功能业务解耦,移出所有对prepareBle的独立调用,由connectKey统一接入,业务改由订阅实现

Frankensteinly 10 bulan lalu
induk
melakukan
e492002a1c
1 mengubah file dengan 9 tambahan dan 12 penghapusan
  1. 9 12
      app/src/main/java/com/grkj/iscs/BusinessManager.kt

+ 9 - 12
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -369,7 +369,7 @@ object BusinessManager {
     /**
      * 连接监听反注册
      */
-    fun unregisterConnectListener(mac: String, bleBean: BleBean?) {
+    fun unregisterConnectListener(mac: String, bleBean: BleBean? = null) {
         if (notConnectedList.contains(mac)) {
             notConnectedList.remove(mac)
             connectListeners.find { it.mac == mac }?.let {
@@ -426,7 +426,7 @@ object BusinessManager {
      * @param loadingCallBack 是否显示loading、loading文字、流程是否结束
      * @param prepareDoneCallBack 蓝牙连接是否成功、蓝牙连接对象
      */
-    fun prepareBle(
+    private fun prepareBle(
         mac: String,
         activity: AppCompatActivity,
         loadingCallBack: ((Boolean, String?, Boolean?) -> Unit)?,
@@ -514,11 +514,14 @@ object BusinessManager {
                     getBleDeviceByMac(device?.mac)?.let {
                         deviceList.remove(it)
                     }
+                    bleDevice.mac?.let { itMac ->
+                        unregisterConnectListener(itMac)
+                    }
                     // TODO 待定
                     if (!isActiveDisConnected) {
                         // TODO 断开和重连之间最好间隔一段时间,否则可能会出现长时间连接不上的情况
-                        Executor.delayOnMain(200) {
-                            prepareBle(bleDevice.mac, ActivityUtils.currentActivity() as BaseActivity<*>, loadingCallBack, prepareDoneCallBack)
+                        Executor.delayOnMain(300) {
+                            registerConnectListener(bleDevice.mac)
                         }
                     }
                 }
@@ -629,15 +632,9 @@ object BusinessManager {
      * 读取工作票完成情况
      */
     fun getTicketStatusBusiness(mac: String, activity: AppCompatActivity, loadingCallBack: ((Boolean, String?, Boolean?) -> Unit)?) {
-        prepareBle(mac, activity, loadingCallBack) { done, bleBean ->
-            if (done) {
+        registerConnectListener(mac) { isDone, bleBean ->
+            if (isDone) {
                 Executor.delayOnMain(500) {
-                    // TODO 蓝牙准备操作
-//                    val bleBean = getBleDeviceByMac(mac)
-//                    if (bleBean == null) {
-//                        ToastUtils.tip(R.string.simple_key_is_not_connected)
-//                        return@delayOnMain
-//                    }
                     getTicketStatus(bleBean!!.bleDevice, loadingCallBack)
                 }
             } else {