Skip to content

Commit 36e3ca4

Browse files
Fix NewsScreen hanging sometimes on desktop (#73)
1 parent 500373f commit 36e3ca4

File tree

4 files changed

+37
-12
lines changed

4 files changed

+37
-12
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.mr3y.ludi.shared.di
2+
3+
import com.mr3y.ludi.shared.di.annotations.Singleton
4+
import kotlinx.coroutines.Dispatchers
5+
import me.tatarka.inject.annotations.Provides
6+
7+
actual interface DatabaseDispatcherComponent {
8+
9+
@Singleton
10+
@Provides
11+
fun provideIODatabaseDispatcher(): DatabaseDispatcher {
12+
return DatabaseDispatcher(Dispatchers.IO)
13+
}
14+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.mr3y.ludi.shared.di
2+
3+
import kotlinx.coroutines.CoroutineDispatcher
4+
5+
expect interface DatabaseDispatcherComponent
6+
7+
@JvmInline
8+
value class DatabaseDispatcher(val dispatcher: CoroutineDispatcher)

shared/src/commonMain/kotlin/com/mr3y/ludi/shared/di/SharedDatabaseComponent.kt

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,16 @@ import com.mr3y.ludi.shared.core.database.createDatabase
66
import com.mr3y.ludi.shared.core.database.dao.ArticleEntitiesDao
77
import com.mr3y.ludi.shared.core.database.dao.DefaultArticleEntitiesDao
88
import com.mr3y.ludi.shared.di.annotations.Singleton
9-
import kotlinx.coroutines.CoroutineDispatcher
10-
import kotlinx.coroutines.Dispatchers
119
import me.tatarka.inject.annotations.Provides
1210

13-
@JvmInline
14-
value class DatabaseDispatcher(val dispatcher: CoroutineDispatcher)
15-
16-
interface SharedDatabaseComponent {
11+
interface SharedDatabaseComponent : DatabaseDispatcherComponent {
1712

1813
@Singleton
1914
@Provides
2015
fun provideDatabaseInstance(platformSqlDriverFactory: DriverFactory): LudiDatabase {
2116
return createDatabase(platformSqlDriverFactory)
2217
}
2318

24-
@Singleton
25-
@Provides
26-
fun provideIODatabaseDispatcher(): DatabaseDispatcher {
27-
return DatabaseDispatcher(Dispatchers.IO)
28-
}
29-
3019
@Singleton
3120
@Provides
3221
fun provideArticleEntitiesDaoInstance(database: LudiDatabase, dispatcher: DatabaseDispatcher): ArticleEntitiesDao {
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.mr3y.ludi.shared.di
2+
3+
import com.mr3y.ludi.shared.di.annotations.Singleton
4+
import kotlinx.coroutines.Dispatchers
5+
import me.tatarka.inject.annotations.Provides
6+
7+
actual interface DatabaseDispatcherComponent {
8+
9+
@Singleton
10+
@Provides
11+
fun provideMainDispatcher(): DatabaseDispatcher {
12+
return DatabaseDispatcher(Dispatchers.Main)
13+
}
14+
}

0 commit comments

Comments
 (0)