refactor: migrate package structure from fr.ajaury.gwenedeg to bzh.ajaury.chombev

This commit is contained in:
2026-07-07 18:58:17 +02:00
parent 272cefa5fd
commit 6361fa6e74
119 changed files with 370 additions and 376 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ plugins {
kotlin {
androidLibrary {
namespace = "fr.ajaury.gwenedeg.playback"
namespace = "bzh.ajaury.chombev.playback"
}
sourceSets {
@@ -1,19 +1,19 @@
package fr.ajaury.gwenedeg.player.data
package bzh.ajaury.chombev.player.data
import fr.ajaury.gwenedeg.core.coroutines.domain.DispatcherProvider
import fr.ajaury.gwenedeg.core.logging.domain.Logger
import fr.ajaury.gwenedeg.core.model.Phrase
import fr.ajaury.gwenedeg.player.domain.AudioPlayer
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.preferences.domain.PreferencesRepository
import fr.ajaury.gwenedeg.records.model.Record
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 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.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
import bzh.ajaury.chombev.subtitle.model.Subtitle
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.Job
@@ -1,6 +1,6 @@
package fr.ajaury.gwenedeg.player.data
package bzh.ajaury.chombev.player.data
import fr.ajaury.gwenedeg.subtitle.model.Subtitle
import bzh.ajaury.chombev.subtitle.model.Subtitle
import kotlin.time.Duration
data class SubtitleProgress(
@@ -1,7 +1,7 @@
package fr.ajaury.gwenedeg.player.di
package bzh.ajaury.chombev.player.di
import fr.ajaury.gwenedeg.player.data.PlaybackRepositoryImpl
import fr.ajaury.gwenedeg.player.domain.PlaybackRepository
import bzh.ajaury.chombev.player.data.PlaybackRepositoryImpl
import bzh.ajaury.chombev.player.domain.PlaybackRepository
import org.koin.core.module.Module
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.singleOf
@@ -1,7 +1,7 @@
package fr.ajaury.gwenedeg.player.domain
package bzh.ajaury.chombev.player.domain
import fr.ajaury.gwenedeg.player.model.PlayerState
import fr.ajaury.gwenedeg.records.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,4 +1,4 @@
package fr.ajaury.gwenedeg.player.model
package bzh.ajaury.chombev.player.model
import kotlin.time.Duration
import kotlin.time.Duration.Companion.milliseconds
@@ -1,7 +1,7 @@
package fr.ajaury.gwenedeg.player.model
package bzh.ajaury.chombev.player.model
import fr.ajaury.gwenedeg.core.model.Phrase
import fr.ajaury.gwenedeg.subtitle.model.SubtitleLine
import bzh.ajaury.chombev.core.model.Phrase
import bzh.ajaury.chombev.subtitle.model.SubtitleLine
data class PlayerState(
val recordTitle: Phrase = Phrase(transcription = ""),
+1 -1
View File
@@ -8,7 +8,7 @@ kotlin {
applyDefaultHierarchyTemplate()
androidLibrary {
namespace = "fr.ajaury.gwenedeg.preferences"
namespace = "bzh.ajaury.chombev.preferences"
}
sourceSets {
@@ -1,10 +1,10 @@
package fr.ajaury.gwenedeg.preferences.di
package bzh.ajaury.chombev.preferences.di
import android.content.Context
import fr.ajaury.gwenedeg.preferences.data.DATA_STORE_FILE_NAME
import fr.ajaury.gwenedeg.preferences.data.DataStorePreferencesRepository
import fr.ajaury.gwenedeg.preferences.data.createPreferencesDataStore
import fr.ajaury.gwenedeg.preferences.domain.PreferencesRepository
import bzh.ajaury.chombev.preferences.data.DATA_STORE_FILE_NAME
import bzh.ajaury.chombev.preferences.data.DataStorePreferencesRepository
import bzh.ajaury.chombev.preferences.data.createPreferencesDataStore
import bzh.ajaury.chombev.preferences.domain.PreferencesRepository
import org.koin.core.module.Module
import org.koin.dsl.module
@@ -1,8 +1,8 @@
package fr.ajaury.gwenedeg.preferences.data
package bzh.ajaury.chombev.preferences.data
import fr.ajaury.gwenedeg.preferences.domain.PreferencesRepository
import fr.ajaury.gwenedeg.preferences.model.PlaybackPreferences
import fr.ajaury.gwenedeg.preferences.model.SubtitlePreferences
import bzh.ajaury.chombev.preferences.domain.PreferencesRepository
import bzh.ajaury.chombev.preferences.model.PlaybackPreferences
import bzh.ajaury.chombev.preferences.model.SubtitlePreferences
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
@@ -1,9 +1,9 @@
package fr.ajaury.gwenedeg.preferences.di
package bzh.ajaury.chombev.preferences.di
import org.koin.core.module.Module
/**
* Binds [fr.ajaury.gwenedeg.preferences.domain.PreferencesRepository]. Persisted with DataStore on
* Binds [bzh.ajaury.chombev.preferences.domain.PreferencesRepository]. Persisted with DataStore on
* every target that ships it (Android, iOS, Desktop); web falls back to an in-memory implementation.
*/
expect val preferencesModule: Module
@@ -1,7 +1,7 @@
package fr.ajaury.gwenedeg.preferences.domain
package bzh.ajaury.chombev.preferences.domain
import fr.ajaury.gwenedeg.preferences.model.PlaybackPreferences
import fr.ajaury.gwenedeg.preferences.model.SubtitlePreferences
import bzh.ajaury.chombev.preferences.model.PlaybackPreferences
import bzh.ajaury.chombev.preferences.model.SubtitlePreferences
import kotlinx.coroutines.flow.Flow
import kotlin.time.Duration
@@ -1,4 +1,4 @@
package fr.ajaury.gwenedeg.preferences.model
package bzh.ajaury.chombev.preferences.model
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
@@ -1,7 +1,6 @@
package fr.ajaury.gwenedeg.preferences.model
import fr.ajaury.gwenedeg.preferences.model.SubtitlePreferences.Companion.TEXT_SCALE_STEPS
package bzh.ajaury.chombev.preferences.model
import bzh.ajaury.chombev.preferences.model.SubtitlePreferences.Companion.TEXT_SCALE_STEPS
/**
* User preferences controlling the subtitle display on the player.
@@ -1,4 +1,4 @@
package fr.ajaury.gwenedeg.preferences.data
package bzh.ajaury.chombev.preferences.data
import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.MutablePreferences
@@ -7,9 +7,9 @@ import androidx.datastore.preferences.core.booleanPreferencesKey
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.floatPreferencesKey
import androidx.datastore.preferences.core.intPreferencesKey
import fr.ajaury.gwenedeg.preferences.domain.PreferencesRepository
import fr.ajaury.gwenedeg.preferences.model.PlaybackPreferences
import fr.ajaury.gwenedeg.preferences.model.SubtitlePreferences
import bzh.ajaury.chombev.preferences.domain.PreferencesRepository
import bzh.ajaury.chombev.preferences.model.PlaybackPreferences
import bzh.ajaury.chombev.preferences.model.SubtitlePreferences
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.map
@@ -1,4 +1,4 @@
package fr.ajaury.gwenedeg.preferences.data
package bzh.ajaury.chombev.preferences.data
import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
@@ -1,11 +1,11 @@
@file:OptIn(ExperimentalForeignApi::class)
package fr.ajaury.gwenedeg.preferences.di
package bzh.ajaury.chombev.preferences.di
import fr.ajaury.gwenedeg.preferences.data.DATA_STORE_FILE_NAME
import fr.ajaury.gwenedeg.preferences.data.DataStorePreferencesRepository
import fr.ajaury.gwenedeg.preferences.data.createPreferencesDataStore
import fr.ajaury.gwenedeg.preferences.domain.PreferencesRepository
import bzh.ajaury.chombev.preferences.data.DATA_STORE_FILE_NAME
import bzh.ajaury.chombev.preferences.data.DataStorePreferencesRepository
import bzh.ajaury.chombev.preferences.data.createPreferencesDataStore
import bzh.ajaury.chombev.preferences.domain.PreferencesRepository
import kotlinx.cinterop.ExperimentalForeignApi
import org.koin.core.module.Module
import org.koin.dsl.module
@@ -1,9 +1,9 @@
package fr.ajaury.gwenedeg.preferences.di
package bzh.ajaury.chombev.preferences.di
import fr.ajaury.gwenedeg.preferences.data.DATA_STORE_FILE_NAME
import fr.ajaury.gwenedeg.preferences.data.DataStorePreferencesRepository
import fr.ajaury.gwenedeg.preferences.data.createPreferencesDataStore
import fr.ajaury.gwenedeg.preferences.domain.PreferencesRepository
import bzh.ajaury.chombev.preferences.data.DATA_STORE_FILE_NAME
import bzh.ajaury.chombev.preferences.data.DataStorePreferencesRepository
import bzh.ajaury.chombev.preferences.data.createPreferencesDataStore
import bzh.ajaury.chombev.preferences.domain.PreferencesRepository
import org.koin.core.module.Module
import org.koin.dsl.module
import java.io.File
@@ -1,7 +1,7 @@
package fr.ajaury.gwenedeg.preferences.di
package bzh.ajaury.chombev.preferences.di
import fr.ajaury.gwenedeg.preferences.data.InMemoryPreferencesRepository
import fr.ajaury.gwenedeg.preferences.domain.PreferencesRepository
import bzh.ajaury.chombev.preferences.data.InMemoryPreferencesRepository
import bzh.ajaury.chombev.preferences.domain.PreferencesRepository
import org.koin.core.module.Module
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.singleOf
+1 -1
View File
@@ -4,7 +4,7 @@ plugins {
kotlin {
androidLibrary {
namespace = "fr.ajaury.gwenedeg.records"
namespace = "bzh.ajaury.chombev.records"
}
sourceSets {
@@ -1,8 +1,8 @@
package fr.ajaury.gwenedeg.records.data
package bzh.ajaury.chombev.records.data
import fr.ajaury.gwenedeg.core.model.Phrase
import fr.ajaury.gwenedeg.records.domain.RecordRepository
import fr.ajaury.gwenedeg.records.model.Record
import bzh.ajaury.chombev.core.model.Phrase
import bzh.ajaury.chombev.records.domain.RecordRepository
import bzh.ajaury.chombev.records.model.Record
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOf
@@ -1,7 +1,7 @@
package fr.ajaury.gwenedeg.records.di
package bzh.ajaury.chombev.records.di
import fr.ajaury.gwenedeg.records.data.InMemoryRecordRepository
import fr.ajaury.gwenedeg.records.domain.RecordRepository
import bzh.ajaury.chombev.records.data.InMemoryRecordRepository
import bzh.ajaury.chombev.records.domain.RecordRepository
import org.koin.core.module.Module
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.factoryOf
@@ -1,6 +1,6 @@
package fr.ajaury.gwenedeg.records.domain
package bzh.ajaury.chombev.records.domain
import fr.ajaury.gwenedeg.records.model.Record
import bzh.ajaury.chombev.records.model.Record
import kotlinx.coroutines.flow.Flow
interface RecordRepository {
@@ -1,6 +1,6 @@
package fr.ajaury.gwenedeg.records.model
package bzh.ajaury.chombev.records.model
import fr.ajaury.gwenedeg.core.model.Phrase
import bzh.ajaury.chombev.core.model.Phrase
data class Record(
val id: Int,
+2 -2
View File
@@ -5,7 +5,7 @@ plugins {
kotlin {
androidLibrary {
namespace = "fr.ajaury.gwenedeg.resources"
namespace = "bzh.ajaury.chombev.resources"
androidResources {
enable = true
}
@@ -26,5 +26,5 @@ kotlin {
compose.resources {
// Public so that other modules (e.g. shared UI) can reference drawables such as the app icon.
publicResClass = true
packageOfResClass = "fr.ajaury.gwenedeg.resources.generated.resources"
packageOfResClass = "bzh.ajaury.chombev.resources.generated.resources"
}
@@ -1,8 +1,8 @@
package fr.ajaury.gwenedeg.resources.data
package bzh.ajaury.chombev.resources.data
import fr.ajaury.gwenedeg.core.coroutines.domain.DispatcherProvider
import fr.ajaury.gwenedeg.resources.domain.ResourceReader
import fr.ajaury.gwenedeg.resources.generated.resources.Res
import bzh.ajaury.chombev.core.coroutines.domain.DispatcherProvider
import bzh.ajaury.chombev.resources.domain.ResourceReader
import bzh.ajaury.chombev.resources.generated.resources.Res
import kotlinx.coroutines.withContext
internal class ComposeResourceReader(
@@ -1,7 +1,7 @@
package fr.ajaury.gwenedeg.resources.di
package bzh.ajaury.chombev.resources.di
import fr.ajaury.gwenedeg.resources.data.ComposeResourceReader
import fr.ajaury.gwenedeg.resources.domain.ResourceReader
import bzh.ajaury.chombev.resources.data.ComposeResourceReader
import bzh.ajaury.chombev.resources.domain.ResourceReader
import org.koin.core.module.Module
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.factoryOf
@@ -1,4 +1,4 @@
package fr.ajaury.gwenedeg.resources.domain
package bzh.ajaury.chombev.resources.domain
/**
* Provides access to the app's bundled resources. Implemented by this module, which owns the
+1 -1
View File
@@ -4,7 +4,7 @@ plugins {
kotlin {
androidLibrary {
namespace = "fr.ajaury.gwenedeg.subtitle"
namespace = "bzh.ajaury.chombev.subtitle"
}
sourceSets {
@@ -1,4 +1,4 @@
package fr.ajaury.gwenedeg.subtitle.data
package bzh.ajaury.chombev.subtitle.data
import kotlin.time.Duration
import kotlin.time.Duration.Companion.milliseconds
@@ -1,12 +1,12 @@
package fr.ajaury.gwenedeg.subtitle.data
package bzh.ajaury.chombev.subtitle.data
import fr.ajaury.gwenedeg.core.coroutines.domain.DispatcherProvider
import fr.ajaury.gwenedeg.core.logging.domain.Logger
import fr.ajaury.gwenedeg.core.model.Phrase
import fr.ajaury.gwenedeg.subtitle.domain.SubtitleRepository
import fr.ajaury.gwenedeg.subtitle.model.CantGetSubtitleException
import fr.ajaury.gwenedeg.subtitle.model.Subtitle
import fr.ajaury.gwenedeg.subtitle.model.SubtitleLine
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.subtitle.domain.SubtitleRepository
import bzh.ajaury.chombev.subtitle.model.CantGetSubtitleException
import bzh.ajaury.chombev.subtitle.model.Subtitle
import bzh.ajaury.chombev.subtitle.model.SubtitleLine
import kotlinx.coroutines.withContext
internal class LrcSubtitleRepository(
@@ -1,4 +1,4 @@
package fr.ajaury.gwenedeg.subtitle.data
package bzh.ajaury.chombev.subtitle.data
import kotlin.time.Duration
@@ -1,9 +1,9 @@
package fr.ajaury.gwenedeg.subtitle.di
package bzh.ajaury.chombev.subtitle.di
import fr.ajaury.gwenedeg.subtitle.data.LrcParser
import fr.ajaury.gwenedeg.subtitle.data.LrcSubtitleRepository
import fr.ajaury.gwenedeg.subtitle.domain.GetCurrentSubtitleIndexUseCase
import fr.ajaury.gwenedeg.subtitle.domain.SubtitleRepository
import bzh.ajaury.chombev.subtitle.data.LrcParser
import bzh.ajaury.chombev.subtitle.data.LrcSubtitleRepository
import bzh.ajaury.chombev.subtitle.domain.GetCurrentSubtitleIndexUseCase
import bzh.ajaury.chombev.subtitle.domain.SubtitleRepository
import org.koin.core.module.Module
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.factoryOf
@@ -1,6 +1,6 @@
package fr.ajaury.gwenedeg.subtitle.domain
package bzh.ajaury.chombev.subtitle.domain
import fr.ajaury.gwenedeg.subtitle.model.Subtitle
import bzh.ajaury.chombev.subtitle.model.Subtitle
import kotlin.time.Duration
class GetCurrentSubtitleIndexUseCase {
@@ -1,6 +1,6 @@
package fr.ajaury.gwenedeg.subtitle.domain
package bzh.ajaury.chombev.subtitle.domain
import fr.ajaury.gwenedeg.subtitle.model.Subtitle
import bzh.ajaury.chombev.subtitle.model.Subtitle
interface SubtitleRepository {
/**
@@ -1,4 +1,4 @@
package fr.ajaury.gwenedeg.subtitle.model
package bzh.ajaury.chombev.subtitle.model
data class CantGetSubtitleException(
override val message: String,
@@ -1,4 +1,4 @@
package fr.ajaury.gwenedeg.subtitle.model
package bzh.ajaury.chombev.subtitle.model
data class Subtitle(
val lines: List<SubtitleLine>,
@@ -1,6 +1,6 @@
package fr.ajaury.gwenedeg.subtitle.model
package bzh.ajaury.chombev.subtitle.model
import fr.ajaury.gwenedeg.core.model.Phrase
import bzh.ajaury.chombev.core.model.Phrase
import kotlin.time.Duration
/**
@@ -1,9 +1,9 @@
package fr.ajaury.gwenedeg.subtitle
package bzh.ajaury.chombev.subtitle
import fr.ajaury.gwenedeg.core.model.Phrase
import fr.ajaury.gwenedeg.subtitle.domain.GetCurrentSubtitleIndexUseCase
import fr.ajaury.gwenedeg.subtitle.model.Subtitle
import fr.ajaury.gwenedeg.subtitle.model.SubtitleLine
import bzh.ajaury.chombev.core.model.Phrase
import bzh.ajaury.chombev.subtitle.domain.GetCurrentSubtitleIndexUseCase
import bzh.ajaury.chombev.subtitle.model.Subtitle
import bzh.ajaury.chombev.subtitle.model.SubtitleLine
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.time.Duration.Companion.milliseconds
@@ -1,6 +1,6 @@
package fr.ajaury.gwenedeg.subtitle
package bzh.ajaury.chombev.subtitle
import fr.ajaury.gwenedeg.subtitle.data.LrcParser
import bzh.ajaury.chombev.subtitle.data.LrcParser
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.time.Duration.Companion.milliseconds