mirror of https://github.com/readrops/Readrops.git
Do not run database queries on UI Thread in MainActivity (fixes #223)
This commit is contained in:
parent
c88c175596
commit
d306bff63e
|
@ -37,6 +37,7 @@ import kotlinx.coroutines.flow.first
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
import org.koin.androidx.compose.KoinAndroidContext
|
import org.koin.androidx.compose.KoinAndroidContext
|
||||||
import org.koin.core.annotation.KoinExperimentalAPI
|
import org.koin.core.annotation.KoinExperimentalAPI
|
||||||
import org.koin.core.component.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
|
@ -115,12 +116,12 @@ class MainActivity : ComponentActivity(), KoinComponent {
|
||||||
override fun onNewIntent(intent: Intent) {
|
override fun onNewIntent(intent: Intent) {
|
||||||
super.onNewIntent(intent)
|
super.onNewIntent(intent)
|
||||||
|
|
||||||
lifecycleScope.launch(Dispatchers.IO) {
|
lifecycleScope.launch {
|
||||||
handleIntent(intent)
|
handleIntent(intent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun handleIntent(intent: Intent) {
|
private suspend fun handleIntent(intent: Intent) = withContext(Dispatchers.IO) {
|
||||||
when {
|
when {
|
||||||
intent.hasExtra(SyncWorker.ACCOUNT_ID_KEY) -> {
|
intent.hasExtra(SyncWorker.ACCOUNT_ID_KEY) -> {
|
||||||
val accountId = intent.getIntExtra(SyncWorker.ACCOUNT_ID_KEY, -1)
|
val accountId = intent.getIntExtra(SyncWorker.ACCOUNT_ID_KEY, -1)
|
||||||
|
|
|
@ -17,7 +17,7 @@ import kotlinx.coroutines.flow.Flow
|
||||||
abstract class ItemDao : BaseDao<Item> {
|
abstract class ItemDao : BaseDao<Item> {
|
||||||
|
|
||||||
@Query("Select * From Item Where id = :itemId")
|
@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])
|
@RawQuery(observedEntities = [Item::class, Feed::class, Folder::class, ItemState::class])
|
||||||
abstract fun selectAll(query: SupportSQLiteQuery): PagingSource<Int, ItemWithFeed>
|
abstract fun selectAll(query: SupportSQLiteQuery): PagingSource<Int, ItemWithFeed>
|
||||||
|
|
Loading…
Reference in New Issue