소스 검색

refactor(更新)
- 蓝牙连接优化

周文健 3 달 전
부모
커밋
6354e8245d

+ 5 - 1
app/src/main/java/com/grkj/iscs/features/main/activity/MainActivity.kt

@@ -39,6 +39,7 @@ import dagger.hilt.android.AndroidEntryPoint
 class MainActivity() : BaseActivity<ActivityMainBinding>() {
     private val viewModel: MainViewModel by viewModels()
     private var cardNo: String = ""
+    private var isFirstEnter: Boolean = true
     private val tabConfigs = listOf(
         TabConfig(
             View.generateViewId(),
@@ -177,7 +178,10 @@ class MainActivity() : BaseActivity<ActivityMainBinding>() {
 
     override fun initData() {
         super.initData()
-        viewModel.checkMyTodoForHandleKey().observe(this){}
+        if (isFirstEnter){
+            isFirstEnter = false
+            viewModel.checkMyTodoForHandleKey().observe(this){}
+        }
         viewModel.bleIndicate()
         viewModel.registerStatusListener()
     }

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/viewmodel/MainViewModel.kt

@@ -78,6 +78,7 @@ class MainViewModel @Inject constructor(
     fun checkMyTodoForHandleKey(mac: String? = null): LiveData<Boolean> {
         return liveData(Dispatchers.IO) {
             val result = DataBusiness.checkMyTodoForHandleKey()
+            logger.info("检查是否需要连接:${result}")
             emit(result)
         }
     }

+ 3 - 1
ui-base/src/main/java/com/grkj/ui_base/business/BleBusinessManager.kt

@@ -144,7 +144,9 @@ object BleBusinessManager {
                             bleBean.bleDevice.mac, false, 1
                         )
                         PopTip.build().tip(R.string.take_out_key)
-                        connectExistsKey(listOf(bleBean.bleDevice.mac))
+                        ThreadUtils.runOnIO {
+                            DataBusiness.checkMyTodoForHandleKey(bleBean.bleDevice.mac)
+                        }
                     }
                 } else {
                     logger.error("切换工作模式失败 : ${bleBean.bleDevice.mac}")

+ 4 - 3
ui-base/src/main/java/com/grkj/ui_base/business/DataBusiness.kt

@@ -1,7 +1,5 @@
 package com.grkj.ui_base.business
 
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.liveData
 import com.clj.fastble.BleManager
 import com.grkj.data.data.MainDomainData
 import com.grkj.data.di.LogicManager
@@ -13,7 +11,6 @@ import com.grkj.data.model.res.KeyPageRes
 import com.grkj.data.model.res.LockPageRes
 import com.grkj.ui_base.business.BleBusinessManager.connectExistsKey
 import com.grkj.ui_base.utils.ble.BleConnectionManager
-import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.suspendCancellableCoroutine
 import kotlin.coroutines.resume
 
@@ -79,10 +76,14 @@ object DataBusiness {
             if (maxPowerMac != mac) {
                 connectExistsKey(listOf(mac ?: ""))
                 BleConnectionManager.launchDisconnectJob(mac ?: "")
+            } else {
+                connectExistsKey()
             }
         } else {
             mac?.let {
                 BleConnectionManager.launchDisconnectJob(it)
+            } ?: let {
+                BleConnectionManager.launchDisconnectAllJob()
             }
         }
         return true