feat: Use ressources to store strings

This commit is contained in:
Lucàs
2025-01-14 17:10:50 +01:00
parent 61ea180717
commit a0c2d34973
4 changed files with 28 additions and 22 deletions
@@ -286,8 +286,9 @@ fun FinishScreen(gameManager: GameManager, context: Context, navController: NavH
.fillMaxWidth() .fillMaxWidth()
.padding(16.dp), .padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(16.dp)
){ ){
Text("Partie terminée !", fontSize = 24.sp) Text( context.resources.getString(R.string.party_end), fontSize = 24.sp)
Text("Score : ${gameManager.score}", fontSize = 20.sp) Text("Score : ${gameManager.score}", fontSize = 20.sp)
TrackCardItemList(gameManager.playlist.tracks) TrackCardItemList(gameManager.playlist.tracks)
@@ -16,6 +16,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
@@ -26,6 +27,8 @@ import fr.univpau.queezer.ui.theme.Purple40
@Composable @Composable
fun HomeScreen(navController: NavHostController) { fun HomeScreen(navController: NavHostController) {
val context = LocalContext.current;
Column( Column(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
@@ -42,7 +45,7 @@ fun HomeScreen(navController: NavHostController) {
) )
Text( Text(
text = "Queezer", text = context.resources.getString(R.string.app_name),
fontSize = 32.sp, fontSize = 32.sp,
fontWeight = FontWeight.Bold, fontWeight = FontWeight.Bold,
color = Purple40 color = Purple40
@@ -59,7 +62,7 @@ fun HomeScreen(navController: NavHostController) {
.padding(vertical = 8.dp) .padding(vertical = 8.dp)
) { ) {
Text( Text(
"Partie rapide", context.resources.getString(R.string.quick_play),
fontSize = 18.sp fontSize = 18.sp
) )
} }
@@ -73,7 +76,7 @@ fun HomeScreen(navController: NavHostController) {
.fillMaxWidth() .fillMaxWidth()
.padding(vertical = 8.dp) .padding(vertical = 8.dp)
) { ) {
Text("Partie personnalisée", fontSize = 18.sp) Text(context.resources.getString(R.string.custom_play), fontSize = 18.sp)
} }
Button( Button(
@@ -83,7 +86,7 @@ fun HomeScreen(navController: NavHostController) {
.fillMaxWidth() .fillMaxWidth()
.padding(vertical = 8.dp) .padding(vertical = 8.dp)
) { ) {
Text("Paramètres", fontSize = 18.sp) Text( context.resources.getString(R.string.settings), fontSize = 18.sp)
} }
Button( Button(
@@ -92,7 +95,7 @@ fun HomeScreen(navController: NavHostController) {
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
) { ) {
Text("Scores", fontSize = 18.sp) Text(context.resources.getString(R.string.score), fontSize = 18.sp)
} }
} }
} }
@@ -1,6 +1,5 @@
package fr.univpau.queezer.view.screens package fr.univpau.queezer.view.screens
import android.util.Log
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.ExperimentalLayoutApi
@@ -12,8 +11,6 @@ import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.Check
import androidx.compose.material.icons.filled.KeyboardArrowDown
import androidx.compose.material.icons.filled.KeyboardArrowUp
import androidx.compose.material3.CenterAlignedTopAppBar import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.FilterChip import androidx.compose.material3.FilterChip
@@ -48,7 +45,6 @@ import fr.univpau.queezer.data.filterGames
import fr.univpau.queezer.view.components.GameCardItemList import fr.univpau.queezer.view.components.GameCardItemList
import fr.univpau.queezer.viewmodel.GameViewModel import fr.univpau.queezer.viewmodel.GameViewModel
import java.util.Locale import java.util.Locale
import java.util.concurrent.Flow
@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class) @OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class)
@Composable @Composable
@@ -98,11 +94,11 @@ fun ScoreScreen(navController: NavHostController, gameViewModel: GameViewModel)
) { ) {
Column(horizontalAlignment = Alignment.CenterHorizontally) { Column(horizontalAlignment = Alignment.CenterHorizontally) {
Text(text = "$nbGames", fontSize = 24.sp, fontWeight = androidx.compose.ui.text.font.FontWeight.Bold) Text(text = "$nbGames", fontSize = 24.sp, fontWeight = androidx.compose.ui.text.font.FontWeight.Bold)
Text(text = "Parties jouées", fontSize = 14.sp) Text(text = context.resources.getString(R.string.games_played), fontSize = 14.sp)
} }
Column(horizontalAlignment = Alignment.CenterHorizontally) { Column(horizontalAlignment = Alignment.CenterHorizontally) {
Text(text = "${String.format(Locale.getDefault(), "%.02f", averageSuccessRate)}%", fontSize = 24.sp, fontWeight = androidx.compose.ui.text.font.FontWeight.Bold) Text(text = "${String.format(Locale.getDefault(), "%.02f", averageSuccessRate)}%", fontSize = 24.sp, fontWeight = androidx.compose.ui.text.font.FontWeight.Bold)
Text(text = "De réussite", fontSize = 14.sp) Text(text = context.resources.getString(R.string.average_success_rate), fontSize = 14.sp)
} }
} }
@@ -117,7 +113,7 @@ fun ScoreScreen(navController: NavHostController, gameViewModel: GameViewModel)
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(4.dp), verticalArrangement = Arrangement.spacedBy(4.dp),
) { ) {
Text("Mode de jeu", fontSize = 16.sp) Text(context.resources.getString(R.string.game_mode_label), fontSize = 16.sp)
FlowRow( FlowRow(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.spacedBy(8.dp), horizontalArrangement = Arrangement.spacedBy(8.dp),
@@ -155,13 +151,13 @@ fun ScoreScreen(navController: NavHostController, gameViewModel: GameViewModel)
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(4.dp), verticalArrangement = Arrangement.spacedBy(4.dp),
) { ) {
Text("Filtrer par", fontSize = 16.sp) Text(context.resources.getString(R.string.filter_by), fontSize = 16.sp)
Row( Row(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.spacedBy(8.dp), horizontalArrangement = Arrangement.spacedBy(8.dp),
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
Text("Date") Text(context.resources.getString(R.string.date), fontSize = 14.sp)
Switch( Switch(
checked = filter.orderByNbTitle, checked = filter.orderByNbTitle,
@@ -170,7 +166,7 @@ fun ScoreScreen(navController: NavHostController, gameViewModel: GameViewModel)
} }
) )
Text("Nombre de titres") Text(context.resources.getString(R.string.title_count), fontSize = 14.sp)
} }
} }
} }
@@ -180,7 +176,7 @@ fun ScoreScreen(navController: NavHostController, gameViewModel: GameViewModel)
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally horizontalAlignment = Alignment.CenterHorizontally
) { ) {
Text(text = "Aucune partie trouvée... (。•́︿•̀。)", fontSize = 16.sp, color = MaterialTheme.colorScheme.onSurface) Text(text = context.resources.getString(R.string.games_not_found), fontSize = 16.sp, color = MaterialTheme.colorScheme.onSurface)
} }
} else { } else {
GameCardItemList(filteredGames) GameCardItemList(filteredGames)
+11 -5
View File
@@ -3,8 +3,8 @@
<string name="quick_play">Partie rapide</string> <string name="quick_play">Partie rapide</string>
<string name="custom_play">Partie personnalisée</string> <string name="custom_play">Partie personnalisée</string>
<string name="settings">Paramètre</string> <string name="settings">Paramètres</string>
<string name="score">Score</string> <string name="score">Scores</string>
<!-- Settings --> <!-- Settings -->
<string name="playlist_url_label">URL de la playlist</string> <string name="playlist_url_label">URL de la playlist</string>
@@ -29,12 +29,18 @@
<string name="give_up">Abandonner</string> <string name="give_up">Abandonner</string>
<string name="submit">Valider</string> <string name="submit">Valider</string>
<string name="games_played">Nombre de parties jouées</string> <string name="games_played">Partie jouées</string>
<string name="average_success_rate">Taux de réussite moyen</string> <string name="average_success_rate">De réussite</string>
<string name="filters">Filtrer par</string> <string name="filter_by">Filtrer par</string>
<string name="date">Date</string> <string name="date">Date</string>
<string name="title_count">Nombre de titres</string>
<string name="error_playlist_not_found">La playlist n\'as pas été trouvée</string> <string name="error_playlist_not_found">La playlist n\'as pas été trouvée</string>
<string name="error_tracks_count_too_high">Le nombre de titres et trop grand</string> <string name="error_tracks_count_too_high">Le nombre de titres et trop grand</string>
<string name="playlist_too_short">La playlist est trop petite pour le nombre de titres demandés</string> <string name="playlist_too_short">La playlist est trop petite pour le nombre de titres demandés</string>
<string name="games_not_found">Aucune partie trouvée... (。•́︿•̀。)</string>
<string name="party_end">Partie terminée !</string>
</resources> </resources>