浏览代码

Don't do compatibility check in the main thread

Peter Cai 6 月之前
父节点
当前提交
4c221f74ff
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      app-unpriv/src/main/java/im/angry/openeuicc/ui/QuickCompatibilityFragment.kt

+ 5 - 1
app-unpriv/src/main/java/im/angry/openeuicc/ui/QuickCompatibilityFragment.kt

@@ -18,8 +18,10 @@ import im.angry.openeuicc.util.EUICC_DEFAULT_ISDR_AID
 import im.angry.openeuicc.util.UnprivilegedEuiccContextMarker
 import im.angry.openeuicc.util.connectSEService
 import im.angry.openeuicc.util.decodeHex
+import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.runBlocking
+import kotlinx.coroutines.withContext
 
 open class QuickCompatibilityFragment : Fragment(), UnprivilegedEuiccContextMarker {
     companion object {
@@ -60,7 +62,9 @@ open class QuickCompatibilityFragment : Fragment(), UnprivilegedEuiccContextMark
     override fun onStart() {
         super.onStart()
         lifecycleScope.launch {
-            onCompatibilityUpdate(getCompatibilityCheckResult())
+            onCompatibilityUpdate(withContext(Dispatchers.IO) {
+                getCompatibilityCheckResult()
+            })
         }
     }