new: integrate a dispatcher provider and dispatch work

This commit is contained in:
2026-06-22 14:58:18 +02:00
parent 38d6107423
commit 8926b3237b
16 changed files with 151 additions and 9 deletions
+1
View File
@@ -60,6 +60,7 @@ kotlin {
commonMain.dependencies {
// Core modules
implementation(projects.core.audioplayer)
implementation(projects.core.coroutines)
implementation(projects.core.logging)
// Data modules
@@ -7,6 +7,7 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.navigation3.runtime.NavEntry
import androidx.navigation3.ui.NavDisplay
import androidx.savedstate.compose.serialization.serializers.SnapshotStateListSerializer
import fr.ajaury.gwenedeg.core.coroutines.di.coroutinesModule
import fr.ajaury.gwenedeg.core.logging.di.loggingModule
import fr.ajaury.gwenedeg.di.sharedModule
import fr.ajaury.gwenedeg.navigation.Route
@@ -26,6 +27,7 @@ fun App() {
modules(
sharedModule,
audioPlayerModule,
coroutinesModule,
loggingModule,
subtitleModule
)
@@ -1,8 +1,15 @@
package fr.ajaury.gwenedeg.resourcereader.data
import fr.ajaury.gwenedeg.core.coroutines.domain.DispatcherProvider
import fr.ajaury.gwenedeg.resourcereader.data.domain.ResourceReader
import gwenedeg.shared.generated.resources.Res
import kotlinx.coroutines.withContext
internal class ComposeResourceReader : ResourceReader {
override suspend fun read(resourcePath: String): String = Res.readBytes(resourcePath).decodeToString()
internal class ComposeResourceReader(
private val dispatcherProvider: DispatcherProvider,
) : ResourceReader {
override suspend fun read(resourcePath: String): String =
withContext(dispatcherProvider.io) {
Res.readBytes(resourcePath).decodeToString()
}
}