Do not run database queries on UI Thread in MainActivity (fixes #223)

This commit is contained in:
Shinokuni 2024-11-08 16:28:40 +01:00
parent c88c175596
commit d306bff63e
2 changed files with 4 additions and 3 deletions

View File

@ -37,6 +37,7 @@ import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
import org.koin.androidx.compose.KoinAndroidContext
import org.koin.core.annotation.KoinExperimentalAPI
import org.koin.core.component.KoinComponent
@ -115,12 +116,12 @@ class MainActivity : ComponentActivity(), KoinComponent {
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
lifecycleScope.launch(Dispatchers.IO) {
lifecycleScope.launch {
handleIntent(intent)
}
}
private suspend fun handleIntent(intent: Intent) {
private suspend fun handleIntent(intent: Intent) = withContext(Dispatchers.IO) {
when {
intent.hasExtra(SyncWorker.ACCOUNT_ID_KEY) -> {
val accountId = intent.getIntExtra(SyncWorker.ACCOUNT_ID_KEY, -1)

View File

@ -17,7 +17,7 @@ import kotlinx.coroutines.flow.Flow
abstract class ItemDao : BaseDao<Item> {
@Query("Select * From Item Where id = :itemId")
abstract fun select(itemId: Int): Item
abstract suspend fun select(itemId: Int): Item
@RawQuery(observedEntities = [Item::class, Feed::class, Folder::class, ItemState::class])
abstract fun selectAll(query: SupportSQLiteQuery): PagingSource<Int, ItemWithFeed>