Skip to content

Commit 78bd68e

Browse files
committed
refactor(ui): create rime session async to avoid blocking users from entering
1 parent c25a6f1 commit 78bd68e

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

app/src/main/java/com/osfans/trime/ui/main/MainViewModel.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,25 @@ package com.osfans.trime.ui.main
66

77
import androidx.lifecycle.MutableLiveData
88
import androidx.lifecycle.ViewModel
9+
import androidx.lifecycle.viewModelScope
910
import com.osfans.trime.daemon.RimeDaemon
1011
import com.osfans.trime.daemon.RimeSession
12+
import kotlinx.coroutines.Dispatchers
13+
import kotlinx.coroutines.launch
1114

1215
class MainViewModel : ViewModel() {
1316
val toolbarTitle = MutableLiveData<String>()
1417

1518
val topOptionsMenu = MutableLiveData<Boolean>()
1619

17-
val rime: RimeSession = RimeDaemon.createSession(javaClass.name)
20+
private lateinit var _rime: RimeSession
21+
val rime: RimeSession get() = _rime
22+
23+
init {
24+
viewModelScope.launch(Dispatchers.Default) {
25+
_rime = RimeDaemon.createSession(javaClass.name)
26+
}
27+
}
1828

1929
val restartBackgroundSyncWork = MutableLiveData(false)
2030

0 commit comments

Comments
 (0)