new: extract Records feature module

This commit is contained in:
2026-07-08 14:44:55 +02:00
parent 0151d92b6a
commit 6a10c0c510
33 changed files with 138 additions and 81 deletions
@@ -3,13 +3,13 @@ package bzh.ajaury.chombev.player.data
import bzh.ajaury.chombev.core.coroutines.domain.DispatcherProvider
import bzh.ajaury.chombev.core.logging.domain.Logger
import bzh.ajaury.chombev.core.model.Phrase
import bzh.ajaury.chombev.core.model.Record
import bzh.ajaury.chombev.player.domain.AudioPlayer
import bzh.ajaury.chombev.player.domain.PlaybackRepository
import bzh.ajaury.chombev.player.model.PlaybackState
import bzh.ajaury.chombev.player.model.PlaybackTiming
import bzh.ajaury.chombev.player.model.PlayerState
import bzh.ajaury.chombev.preferences.domain.PreferencesRepository
import bzh.ajaury.chombev.records.model.Record
import bzh.ajaury.chombev.resources.domain.ResourceReader
import bzh.ajaury.chombev.subtitle.domain.GetCurrentSubtitleIndexUseCase
import bzh.ajaury.chombev.subtitle.domain.SubtitleRepository
@@ -1,7 +1,7 @@
package bzh.ajaury.chombev.player.domain
import bzh.ajaury.chombev.core.model.Record
import bzh.ajaury.chombev.player.model.PlayerState
import bzh.ajaury.chombev.records.model.Record
import kotlinx.coroutines.flow.Flow
import kotlin.time.Duration
+1 -1
View File
@@ -5,7 +5,7 @@ plugins {
kotlin {
androidLibrary {
namespace = "bzh.ajaury.chombev.records"
namespace = "bzh.ajaury.chombev.records.data"
}
sourceSets {
@@ -2,10 +2,10 @@ package bzh.ajaury.chombev.records.data
import bzh.ajaury.chombev.core.coroutines.domain.DispatcherProvider
import bzh.ajaury.chombev.core.logging.domain.Logger
import bzh.ajaury.chombev.core.model.Record
import bzh.ajaury.chombev.records.data.local.model.RecordDataModel
import bzh.ajaury.chombev.records.data.mappers.RecordMapper
import bzh.ajaury.chombev.records.domain.RecordRepository
import bzh.ajaury.chombev.records.model.Record
import bzh.ajaury.chombev.resources.domain.ResourceReader
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
@@ -5,7 +5,7 @@ import kotlinx.serialization.Serializable
/**
* A single record entry as stored in the un-versioned `files/records.json` data file.
*
* This mirrors the JSON schema exactly; it is mapped to the domain [bzh.ajaury.chombev.records.model.Record]
* This mirrors the JSON schema exactly; it is mapped to the domain [bzh.ajaury.chombev.core.model.Record]
* by [bzh.ajaury.chombev.records.data.mappers.RecordMapper].
*/
@Serializable
@@ -1,8 +1,8 @@
package bzh.ajaury.chombev.records.data.mappers
import bzh.ajaury.chombev.core.model.Phrase
import bzh.ajaury.chombev.core.model.Record
import bzh.ajaury.chombev.records.data.local.model.RecordDataModel
import bzh.ajaury.chombev.records.model.Record
/**
* Maps the serialized [RecordDataModel]s from the data file to domain [Record]s, assigning a
@@ -1,6 +1,6 @@
package bzh.ajaury.chombev.records.domain
import bzh.ajaury.chombev.records.model.Record
import bzh.ajaury.chombev.core.model.Record
import kotlinx.coroutines.flow.Flow
interface RecordRepository {
@@ -1,13 +0,0 @@
package bzh.ajaury.chombev.records.model
import bzh.ajaury.chombev.core.model.Phrase
data class Record(
val id: Int,
val index: Int,
val emoji: String,
val title: Phrase,
val audioResourcePath: String,
val subtitleResourcePath: String,
val translationSubtitleResourcePath: String? = null,
)