Browse Source

Don't do compatibility check in the main thread

Peter Cai 6 months ago
parent
commit
4c221f74ff

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