refactor: migrate resource handling to new data.resources module
This commit is contained in:
@@ -9,8 +9,7 @@ import fr.ajaury.gwenedeg.preferences.domain.PreferencesRepository
|
||||
import fr.ajaury.gwenedeg.records.data.InMemoryRecordRepository
|
||||
import fr.ajaury.gwenedeg.records.domain.RecordRepository
|
||||
import fr.ajaury.gwenedeg.records.ui.viewmodel.RecordsViewModel
|
||||
import fr.ajaury.gwenedeg.resourcereader.data.ComposeResourceReader
|
||||
import fr.ajaury.gwenedeg.resourcereader.data.domain.ResourceReader
|
||||
import fr.ajaury.gwenedeg.resources.di.resourcesModule
|
||||
import org.koin.core.module.dsl.bind
|
||||
import org.koin.core.module.dsl.factoryOf
|
||||
import org.koin.core.module.dsl.singleOf
|
||||
@@ -19,10 +18,10 @@ import org.koin.dsl.module
|
||||
|
||||
val sharedModule = module {
|
||||
includes(loggingModule)
|
||||
includes(resourcesModule)
|
||||
factoryOf(::InMemoryRecordRepository) { bind<RecordRepository>() }
|
||||
singleOf(::PlaybackRepositoryImpl) { bind<PlaybackRepository>() }
|
||||
singleOf(::PreferencesRepositoryImpl) { bind<PreferencesRepository>() }
|
||||
viewModelOf(::RecordsViewModel)
|
||||
viewModelOf(::PlayerViewModel)
|
||||
factoryOf(::ComposeResourceReader) { bind<ResourceReader>() }
|
||||
}
|
||||
|
||||
+2
-3
@@ -8,11 +8,10 @@ import fr.ajaury.gwenedeg.player.domain.PlaybackRepository
|
||||
import fr.ajaury.gwenedeg.player.model.PlaybackState
|
||||
import fr.ajaury.gwenedeg.player.model.PlaybackTiming
|
||||
import fr.ajaury.gwenedeg.player.model.PlayerState
|
||||
import fr.ajaury.gwenedeg.resourcereader.data.domain.ResourceReader
|
||||
import fr.ajaury.gwenedeg.resources.domain.ResourceReader
|
||||
import fr.ajaury.gwenedeg.subtitle.domain.GetCurrentSubtitleIndexUseCase
|
||||
import fr.ajaury.gwenedeg.subtitle.domain.SubtitleRepository
|
||||
import fr.ajaury.gwenedeg.subtitle.model.Subtitle
|
||||
import gwenedeg.shared.generated.resources.Res
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
@@ -96,7 +95,7 @@ internal class PlaybackRepositoryImpl(
|
||||
|
||||
private fun playAudio(filePath: String) {
|
||||
try {
|
||||
audioPlayer.load(uri = Res.getUri(filePath))
|
||||
audioPlayer.load(uri = resourceReader.uri(filePath))
|
||||
audioPlayer.play()
|
||||
} catch (exception: Exception) {
|
||||
logger.error(message = "Failed to play audio: $filePath", throwable = exception)
|
||||
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
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(
|
||||
private val dispatcherProvider: DispatcherProvider,
|
||||
) : ResourceReader {
|
||||
override suspend fun read(resourcePath: String): String =
|
||||
withContext(dispatcherProvider.io) {
|
||||
Res.readBytes(resourcePath).decodeToString()
|
||||
}
|
||||
}
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
package fr.ajaury.gwenedeg.resourcereader.data.domain
|
||||
|
||||
/**
|
||||
* Reads the raw text of a subtitle file. Implemented by the host app, which owns the resource
|
||||
* bundle, so this module stays free of any platform/resource dependency.
|
||||
*/
|
||||
interface ResourceReader {
|
||||
suspend fun read(resourcePath: String): String
|
||||
}
|
||||
Reference in New Issue
Block a user