refactor: rename project to "Chom Bev"

This commit is contained in:
2026-07-03 15:26:30 +02:00
parent f90552ed62
commit 8d3da32454
22 changed files with 96 additions and 54 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:name=".GwenedegApp"
android:name=".ChomBevApp"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
@@ -2,4 +2,4 @@ package fr.ajaury.gwenedeg
import android.app.Application
class GwenedegApp : Application()
class ChomBevApp : Application()
+1 -1
View File
@@ -1,3 +1,3 @@
<resources>
<string name="app_name">Gwenedeg</string>
<string name="app_name">Chom Bev</string>
</resources>
@@ -3,7 +3,7 @@ package fr.ajaury.gwenedeg.core.logging.data
import fr.ajaury.gwenedeg.core.logging.domain.Logger
internal class KermitLogger : Logger {
private val tag: String = "Gwenedeg"
private val tag: String = "Chom Bev"
override fun debug(
message: String,
@@ -7,7 +7,7 @@ fun main() {
application {
Window(
onCloseRequest = ::exitApplication,
title = "Gwenedeg",
title = "Chom Bev",
) {
App()
}
+1 -1
View File
@@ -1,6 +1,6 @@
TEAM_ID=
PRODUCT_NAME=Gwenedeg
PRODUCT_NAME=Chom Bev
PRODUCT_BUNDLE_IDENTIFIER=fr.ajaury.gwenedeg.Gwenedeg$(TEAM_ID)
CURRENT_PROJECT_VERSION=1
+1 -1
View File
@@ -1,4 +1,4 @@
rootProject.name = "Gwenedeg"
rootProject.name = "ChomBev"
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
pluginManagement {
@@ -15,7 +15,7 @@ import fr.ajaury.gwenedeg.player.di.audioPlayerModule
import fr.ajaury.gwenedeg.player.ui.PlayerScreen
import fr.ajaury.gwenedeg.records.ui.RecordsScreen
import fr.ajaury.gwenedeg.subtitle.di.subtitleModule
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
import org.koin.compose.KoinApplication
import org.koin.dsl.koinConfiguration
import org.koin.dsl.module
@@ -44,7 +44,7 @@ fun App() {
mutableStateListOf(Route.Records)
}
GwenedegTheme {
ChomBevTheme {
NavDisplay(
backStack = backStack,
onBack = { backStack.removeLastOrNull() },
@@ -18,7 +18,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import fr.ajaury.gwenedeg.preferences.model.PlaybackPreferences
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
import kotlin.math.roundToInt
/**
@@ -94,7 +94,7 @@ internal fun formatPlaybackSpeed(speed: Float): String {
@Preview
@Composable
private fun PlaybackSpeedContentPreview() {
GwenedegTheme {
ChomBevTheme {
PlaybackSpeedContent(speed = 0.7f)
}
}
@@ -19,7 +19,7 @@ import fr.ajaury.gwenedeg.player.ui.components.PlaybackProgress
import fr.ajaury.gwenedeg.player.ui.components.PreviousButton
import fr.ajaury.gwenedeg.player.ui.components.SpeedPreferenceButton
import fr.ajaury.gwenedeg.preferences.model.PlaybackPreferences
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
@@ -94,7 +94,7 @@ fun PlayerControl(
@Preview
@Composable
private fun PlayerControlPreview() {
GwenedegTheme {
ChomBevTheme {
PlayerControl(
playbackState = PlaybackState.PLAYING,
playbackTiming = PlaybackTiming(position = 1.2.seconds, duration = 5.seconds),
@@ -109,7 +109,7 @@ private fun PlayerControlPreview() {
@Preview
@Composable
private fun PlayerControlFirstSentencePreview() {
GwenedegTheme {
ChomBevTheme {
PlayerControl(
playbackState = PlaybackState.PLAYING,
playbackTiming = PlaybackTiming(position = 1.2.seconds, duration = 5.seconds),
@@ -124,7 +124,7 @@ private fun PlayerControlFirstSentencePreview() {
@Preview
@Composable
private fun PlayerControlActiveSpeedPreview() {
GwenedegTheme {
ChomBevTheme {
PlayerControl(
playbackState = PlaybackState.PLAYING,
playbackTiming = PlaybackTiming(position = 1.2.seconds, duration = 5.seconds),
@@ -139,7 +139,7 @@ private fun PlayerControlActiveSpeedPreview() {
@Preview
@Composable
private fun PlayerControlLastSentencePreview() {
GwenedegTheme {
ChomBevTheme {
PlayerControl(
playbackState = PlaybackState.PLAYING,
playbackTiming = PlaybackTiming(position = 1.2.seconds, duration = 5.seconds),
@@ -36,7 +36,7 @@ import fr.ajaury.gwenedeg.player.ui.viewmodel.PlayerUiState
import fr.ajaury.gwenedeg.player.ui.viewmodel.PlayerViewModel
import fr.ajaury.gwenedeg.preferences.ui.SubtitlePreferencesBottomSheet
import fr.ajaury.gwenedeg.subtitle.model.SubtitleLine
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
import org.koin.compose.viewmodel.koinViewModel
import org.koin.core.parameter.parametersOf
import kotlin.time.Duration
@@ -222,7 +222,7 @@ private val previewSubtitleLines =
@Preview
@Composable
private fun PlayerScreenPlayingPreview() {
GwenedegTheme {
ChomBevTheme {
PlayerScreen(
uiState = PlayerUiState(
recordEmoji = "🙏",
@@ -247,7 +247,7 @@ private fun PlayerScreenPlayingPreview() {
@Preview
@Composable
private fun PlayerScreenPausedPreview() {
GwenedegTheme {
ChomBevTheme {
PlayerScreen(
uiState = PlayerUiState(
recordEmoji = "🙏",
@@ -272,7 +272,7 @@ private fun PlayerScreenPausedPreview() {
@Preview
@Composable
private fun PlayerScreenEndedPreview() {
GwenedegTheme {
ChomBevTheme {
PlayerScreen(
uiState = PlayerUiState(
recordEmoji = "🙏",
@@ -8,7 +8,6 @@ import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListState
@@ -36,7 +35,7 @@ import androidx.compose.ui.unit.sp
import fr.ajaury.gwenedeg.core.model.Phrase
import fr.ajaury.gwenedeg.preferences.model.SubtitlePreferences
import fr.ajaury.gwenedeg.subtitle.model.SubtitleLine
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
import kotlin.math.abs
import kotlin.time.Duration.Companion.milliseconds
@@ -230,7 +229,7 @@ private val previewSubtitleLines =
@Preview
@Composable
private fun SubtitleListPreview() {
GwenedegTheme {
ChomBevTheme {
SubtitleList(
lines = previewSubtitleLines,
currentIndex = 1,
@@ -9,7 +9,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
@Composable
fun NextButton(
@@ -31,7 +31,7 @@ fun NextButton(
@Preview
@Composable
private fun NextButtonCanGoToNextSentencePreview() {
GwenedegTheme {
ChomBevTheme {
NextButton(
canGoToNextSentence = true,
)
@@ -41,7 +41,7 @@ private fun NextButtonCanGoToNextSentencePreview() {
@Preview
@Composable
private fun NextButtonCanNotGoToNextSentencePreview() {
GwenedegTheme {
ChomBevTheme {
NextButton(
canGoToNextSentence = false,
)
@@ -14,7 +14,7 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import fr.ajaury.gwenedeg.player.model.PlaybackState
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
@Composable
fun PlayButton(
@@ -50,7 +50,7 @@ private fun PlaybackState.toActionContentDescription(): String =
@Preview
@Composable
private fun PlayButtonPlayingPreview() {
GwenedegTheme {
ChomBevTheme {
PlayButton(
playbackState = PlaybackState.PLAYING,
)
@@ -60,7 +60,7 @@ private fun PlayButtonPlayingPreview() {
@Preview
@Composable
private fun PlayButtonPausedPreview() {
GwenedegTheme {
ChomBevTheme {
PlayButton(
playbackState = PlaybackState.PAUSED,
)
@@ -70,7 +70,7 @@ private fun PlayButtonPausedPreview() {
@Preview
@Composable
private fun PlayButtonEndedPreview() {
GwenedegTheme {
ChomBevTheme {
PlayButton(
playbackState = PlaybackState.ENDED,
)
@@ -80,7 +80,7 @@ private fun PlayButtonEndedPreview() {
@Preview
@Composable
private fun PlayButtonIdlePreview() {
GwenedegTheme {
ChomBevTheme {
PlayButton(
playbackState = PlaybackState.IDLE,
)
@@ -10,7 +10,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import fr.ajaury.gwenedeg.player.model.PlaybackTiming
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
import kotlin.time.Duration
import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds
@@ -41,7 +41,7 @@ fun PlaybackProgress(
@Preview
@Composable
private fun PlaybackProgressPreview() {
GwenedegTheme {
ChomBevTheme {
PlaybackProgress(
playbackTiming = PlaybackTiming(0.seconds, 0.seconds),
)
@@ -51,7 +51,7 @@ private fun PlaybackProgressPreview() {
@Preview
@Composable
private fun PlaybackProgressInProgressPreview() {
GwenedegTheme {
ChomBevTheme {
PlaybackProgress(
playbackTiming = PlaybackTiming(7.seconds, 10.seconds),
)
@@ -61,7 +61,7 @@ private fun PlaybackProgressInProgressPreview() {
@Preview
@Composable
private fun PlaybackProgressEndedPreview() {
GwenedegTheme {
ChomBevTheme {
PlaybackProgress(
playbackTiming = PlaybackTiming(10.seconds, 10.seconds),
)
@@ -9,7 +9,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
@Composable
fun PreviousButton(
@@ -31,7 +31,7 @@ fun PreviousButton(
@Preview
@Composable
private fun PreviousButtonCanGoToPreviousSentencePreview() {
GwenedegTheme {
ChomBevTheme {
PreviousButton(
canGoToPreviousSentence = true,
)
@@ -41,7 +41,7 @@ private fun PreviousButtonCanGoToPreviousSentencePreview() {
@Preview
@Composable
private fun PreviousButtonCanNotGoToPreviousSentencePreview() {
GwenedegTheme {
ChomBevTheme {
PreviousButton(
canGoToPreviousSentence = false,
)
@@ -12,7 +12,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import fr.ajaury.gwenedeg.player.ui.formatPlaybackSpeed
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
@Composable
fun SpeedPreferenceButton(
@@ -42,7 +42,7 @@ fun SpeedPreferenceButton(
@Preview
@Composable
private fun SpeedPreferenceButtonDefaultPreview() {
GwenedegTheme {
ChomBevTheme {
SpeedPreferenceButton(
isSpeedActive = false,
playbackSpeed = 1f,
@@ -53,7 +53,7 @@ private fun SpeedPreferenceButtonDefaultPreview() {
@Preview
@Composable
private fun SpeedPreferenceButtonPreview() {
GwenedegTheme {
ChomBevTheme {
SpeedPreferenceButton(
isSpeedActive = true,
playbackSpeed = 0.7f,
@@ -19,8 +19,7 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.semantics.Role
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import fr.ajaury.gwenedeg.preferences.model.SubtitlePreferences
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
@Composable
@@ -68,7 +67,7 @@ fun PreferenceToggle(
@Preview
@Composable
private fun PreferenceTogglePreview() {
GwenedegTheme {
ChomBevTheme {
PreferenceToggle(
title = "Subtitle",
subtitle = "Subtitle",
@@ -81,7 +80,7 @@ private fun PreferenceTogglePreview() {
@Preview
@Composable
private fun PreferenceToggleWithIconPreview() {
GwenedegTheme {
ChomBevTheme {
PreferenceToggle(
title = "Subtitle",
subtitle = "Subtitle",
@@ -15,7 +15,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import fr.ajaury.gwenedeg.preferences.model.SubtitlePreferences
import fr.ajaury.gwenedeg.theme.GwenedegTheme
import fr.ajaury.gwenedeg.theme.ChomBevTheme
/**
* Bottom sheet letting the user toggle the display of the Breton transcription (BZH) and the
@@ -77,7 +77,7 @@ private fun SubtitlePreferencesContent(
@Preview
@Composable
private fun SubtitlePreferencesContentPreview() {
GwenedegTheme {
ChomBevTheme {
SubtitlePreferencesContent(
subtitlePreferences = SubtitlePreferences(
showTranscription = true,
@@ -4,18 +4,27 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import fr.ajaury.gwenedeg.core.model.Phrase
import fr.ajaury.gwenedeg.records.model.Record
import fr.ajaury.gwenedeg.records.ui.viewmodel.RecordsViewModel
import fr.ajaury.gwenedeg.theme.ChomBevTheme
import org.koin.compose.viewmodel.koinViewModel
/** Display name of the application, shown as the title of the records screen. */
const val APP_NAME = "Chom bev"
@Composable
fun RecordsScreen(
viewModel: RecordsViewModel = koinViewModel(),
@@ -29,12 +38,19 @@ fun RecordsScreen(
)
}
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun RecordsScreen(
records: List<Record>,
onRecordClick: (Record) -> Unit,
) {
Scaffold { innerPadding ->
Scaffold(
topBar = {
TopAppBar(
title = { Text(text = APP_NAME) },
)
},
) { innerPadding ->
LazyColumn(
modifier =
Modifier
@@ -61,3 +77,31 @@ fun RecordsScreen(
}
}
}
@Preview
@Composable
private fun RecordsScreenPreview() {
ChomBevTheme {
RecordsScreen(
records = listOf(
Record(
id = 1,
index = 1,
emoji = "🙏",
title = Phrase(transcription = "An onestiz", translation = "La politesse"),
audioResourcePath = "files/Chom_bev_01.m4a",
subtitleResourcePath = "files/Chom_bev_01_st_bzh.lrc",
),
Record(
id = 2,
index = 2,
emoji = "👋",
title = Phrase(transcription = "En em brezantiñ", translation = "Se présenter"),
audioResourcePath = "files/Chom_bev_02.m4a",
subtitleResourcePath = "files/Chom_bev_02_st_bzh.lrc",
),
),
onRecordClick = {},
)
}
}
@@ -7,7 +7,7 @@ import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
val GwenedegLightColorScheme: ColorScheme = lightColorScheme(
val ChomBevLightColorScheme: ColorScheme = lightColorScheme(
primary = md_light_primary,
onPrimary = md_light_onPrimary,
primaryContainer = md_light_primaryContainer,
@@ -39,7 +39,7 @@ val GwenedegLightColorScheme: ColorScheme = lightColorScheme(
surfaceTint = md_light_primary,
)
val GwenedegDarkColorScheme: ColorScheme = darkColorScheme(
val ChomBevDarkColorScheme: ColorScheme = darkColorScheme(
primary = md_dark_primary,
onPrimary = md_dark_onPrimary,
primaryContainer = md_dark_primaryContainer,
@@ -72,10 +72,10 @@ val GwenedegDarkColorScheme: ColorScheme = darkColorScheme(
)
@Composable
fun GwenedegTheme(
fun ChomBevTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
lightColorScheme: ColorScheme = GwenedegLightColorScheme,
darkColorScheme: ColorScheme = GwenedegDarkColorScheme,
lightColorScheme: ColorScheme = ChomBevLightColorScheme,
darkColorScheme: ColorScheme = ChomBevDarkColorScheme,
content: @Composable () -> Unit,
) {
val colorScheme = if (darkTheme) darkColorScheme else lightColorScheme
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gwenedeg</title>
<title>Chom Bev</title>
<link type="text/css" rel="stylesheet" href="styles.css">
</head>
<body style="text-align: center; align-content: center">