Traduction page favori/Accueil + langue user pour la suggestion des citations dans l'accueil (vo-fr)

pull/45/head
Leni BEAULATON 1 month ago
parent 1bf7a8ca0a
commit 6ae5a08fc1

@ -125,7 +125,7 @@ object QuoteStub {
source = "Spider-Man", source = "Spider-Man",
imgUrl = CharacterStub.aragorn.imgUrl, imgUrl = CharacterStub.aragorn.imgUrl,
date = 2000, date = 2000,
type = SrcType.Movie, type = SrcType.Series,
) )
val quote12 = Quote( val quote12 = Quote(
id = 12, id = 12,

@ -16,8 +16,6 @@ object UserStub {
User(8, "Eowyn777", "eowyn@example.com", "2022-04-11", "https://img.freepik.com/vecteurs-libre/personnage-guerriere-femme-fantaisie_1045-192.jpg?size=338&ext=jpg", "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4", SrcLanguage.vo),//1234 User(8, "Eowyn777", "eowyn@example.com", "2022-04-11", "https://img.freepik.com/vecteurs-libre/personnage-guerriere-femme-fantaisie_1045-192.jpg?size=338&ext=jpg", "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4", SrcLanguage.vo),//1234
User(9, "Saruman888", "saruman@example.com", "2021-08-15", "https://img.freepik.com/vecteurs-libre/personnage-magicien-malefique-fantaisie_1045-193.jpg?size=338&ext=jpg", "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4", SrcLanguage.vo),//1234 User(9, "Saruman888", "saruman@example.com", "2021-08-15", "https://img.freepik.com/vecteurs-libre/personnage-magicien-malefique-fantaisie_1045-193.jpg?size=338&ext=jpg", "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4", SrcLanguage.vo),//1234
User(10, "Faramir222", "faramir@example.com", "2023-02-08", "https://img.freepik.com/vecteurs-libre/personnage-guerrier-homme-fantaisie_1045-194.jpg?size=338&ext=jpg", "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4", SrcLanguage.vo),//1234 User(10, "Faramir222", "faramir@example.com", "2023-02-08", "https://img.freepik.com/vecteurs-libre/personnage-guerrier-homme-fantaisie_1045-194.jpg?size=338&ext=jpg", "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4", SrcLanguage.vo),//1234
User(11, "dev", "testeur@example.com", "2023-02-08", "https://img.freepik.com/vecteurs-libre/personnage-guerrier-homme-fantaisie_1045-194.jpg?size=338&ext=jpg", "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4", SrcLanguage.fr)//1234 User(11, "dev", "testeur@example.com", "2023-02-08", "https://img.freepik.com/vecteurs-libre/personnage-guerrier-homme-fantaisie_1045-194.jpg?size=338&ext=jpg", "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4", SrcLanguage.vo)//1234
) )
} }

@ -49,11 +49,8 @@ class ServicesStub : IServices {
val userStub = services.getAllUsers() val userStub = services.getAllUsers()
val nbUser = userStub.size val nbUser = userStub.size
for (user in userStub) {
if (user.username == username) { if(isUsernameExist(username) && isEmailExist(email)){
return false
}
}
val user = User(nbUser+1,username, email, date,randomImage(userStub), passwordhash, SrcLanguage.vo) val user = User(nbUser+1,username, email, date,randomImage(userStub), passwordhash, SrcLanguage.vo)
users.add(user)//ajout au stub users.add(user)//ajout au stub
@ -61,6 +58,8 @@ class ServicesStub : IServices {
logsUser.logDebugDisplayUsers(users, "CreateUser") logsUser.logDebugDisplayUsers(users, "CreateUser")
return true return true
} }
return false
}
override fun getAllUsers(): List<User> = users override fun getAllUsers(): List<User> = users
@ -95,4 +94,24 @@ class ServicesStub : IServices {
fun randomImage(usersImage : List<User>) : String{ fun randomImage(usersImage : List<User>) : String{
return "https://img.freepik.com/vecteurs-libre/personnage-guerrier-homme-fantaisie_1045-194.jpg?size=338&ext=jpg" return "https://img.freepik.com/vecteurs-libre/personnage-guerrier-homme-fantaisie_1045-194.jpg?size=338&ext=jpg"
} }
fun isUsernameExist(username : String) : Boolean{
val userStub = getAllUsers()
for (user in userStub) {
if (user.username == username) {
return false
}
}
return true
}
fun isEmailExist(email : String) : Boolean{
val userStub = getAllUsers()
for (user in userStub) {
if (user.email == email) {
return false
}
}
return true
}
} }

@ -16,17 +16,20 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import coil.compose.rememberAsyncImagePainter import coil.compose.rememberAsyncImagePainter
import coil.compose.rememberImagePainter import com.example.what_the_fantasy.R
import com.example.what_the_fantasy.data.model.Quote import com.example.what_the_fantasy.data.model.Quote
import com.example.what_the_fantasy.ui.theme.colorBackground import com.example.what_the_fantasy.ui.theme.colorBackground
import com.example.what_the_fantasy.ui.theme.gradienBox import com.example.what_the_fantasy.ui.theme.gradienBox
@Composable @Composable
fun QuoteLittle(quote: Quote, modifier: Modifier = Modifier) { fun QuoteLittle(quote: Quote, modifier: Modifier = Modifier) {
val Character = stringResource(R.string.CharacterQuote)
Row( Row(
modifier = modifier modifier = modifier
.fillMaxWidth() .fillMaxWidth()
@ -73,14 +76,14 @@ fun QuoteLittle(quote: Quote, modifier: Modifier = Modifier) {
Spacer(modifier = Modifier.height(8.dp)) Spacer(modifier = Modifier.height(8.dp))
Text( Text(
text = "Film : ${quote.source}", text = "${quote.type} : ${quote.source}",
color = Color.White, color = Color.White,
fontSize = 12.sp, fontSize = 12.sp,
maxLines = 1, maxLines = 1,
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
) )
Text( Text(
text = "Personnage : ${quote.character}", text = "${Character}: ${quote.character}",
color = Color.White, color = Color.White,
fontSize = 12.sp, fontSize = 12.sp,
maxLines = 1, maxLines = 1,

@ -76,7 +76,8 @@ fun AppNavigator() {
index = accueil.userIndex, index = accueil.userIndex,
navFavorite = { navController.navigate(Favorite(accueil.userIndex)) }, navFavorite = { navController.navigate(Favorite(accueil.userIndex)) },
navQuiz = { navController.navigate(QuizMenu(accueil.userIndex)) }, navQuiz = { navController.navigate(QuizMenu(accueil.userIndex)) },
navProfil = { navController.navigate(Profil(accueil.userIndex)) } navProfil = { navController.navigate(Profil(accueil.userIndex)) },
services = services
) )
} }
composable<Favorite> { composable<Favorite> {

@ -11,11 +11,14 @@ import androidx.compose.runtime.*
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import com.example.what_the_fantasy.R
import com.example.what_the_fantasy.data.local.DailyQuoteStub import com.example.what_the_fantasy.data.local.DailyQuoteStub
import com.example.what_the_fantasy.data.local.QuoteStub import com.example.what_the_fantasy.data.local.QuoteStub
import com.example.what_the_fantasy.data.services.IServices
import com.example.what_the_fantasy.ui.components.NavBar import com.example.what_the_fantasy.ui.components.NavBar
import com.example.what_the_fantasy.ui.components.QuoteLittle import com.example.what_the_fantasy.ui.components.QuoteLittle
import com.example.what_the_fantasy.ui.theme.colorBackground import com.example.what_the_fantasy.ui.theme.colorBackground
@ -25,12 +28,16 @@ fun AccueilPage(
index: Int, index: Int,
navFavorite: (Int) -> Unit, navFavorite: (Int) -> Unit,
navQuiz: (Int) -> Unit, navQuiz: (Int) -> Unit,
navProfil: (Int) -> Unit navProfil: (Int) -> Unit,
services: IServices
) { ) {
var itemCount by remember { mutableStateOf(15) } var itemCount by remember { mutableStateOf(15) }
val dailyQuote = DailyQuoteStub.dailyQuote val dailyQuote = DailyQuoteStub.dailyQuote
val quotes = QuoteStub.allQuotes.take(itemCount) val quotes = QuoteStub.allQuotes.take(itemCount)
val user = services.getUserById(index) ?: return
val titleDalyQuote = stringResource(R.string.TitleHomeDailyQuote)
val titleSuggestion = stringResource(R.string.TitleHomeSuggestion)
NavBar( NavBar(
onAccueil = true, onAccueil = true,
index = index, index = index,
@ -48,7 +55,7 @@ fun AccueilPage(
item{ item{
Column { Column {
Text( Text(
text = "▶ Citation du jour ◀", text = titleDalyQuote,
color = Color.White, color = Color.White,
fontSize = 24.sp, fontSize = 24.sp,
modifier = Modifier modifier = Modifier
@ -60,7 +67,7 @@ fun AccueilPage(
QuoteLittle(dailyQuote) QuoteLittle(dailyQuote)
} }
Text( Text(
text = "▶ Suggestions ◀", text = titleSuggestion,
color = Color.White, color = Color.White,
fontSize = 24.sp, fontSize = 24.sp,
modifier = Modifier modifier = Modifier
@ -70,8 +77,10 @@ fun AccueilPage(
) )
} }
items(quotes) { quote -> items(quotes) { quote ->
if(quote.language == user.language){
QuoteLittle(quote) QuoteLittle(quote)
} }
}
if (itemCount < QuoteStub.allQuotes.size) { if (itemCount < QuoteStub.allQuotes.size) {
item { item {
LaunchedEffect(itemCount) { LaunchedEffect(itemCount) {

@ -9,9 +9,11 @@ import androidx.compose.runtime.*
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import com.example.what_the_fantasy.R
import com.example.what_the_fantasy.data.local.FavoriteStub import com.example.what_the_fantasy.data.local.FavoriteStub
import com.example.what_the_fantasy.data.services.IServices import com.example.what_the_fantasy.data.services.IServices
import com.example.what_the_fantasy.ui.components.NavBar import com.example.what_the_fantasy.ui.components.NavBar
@ -28,7 +30,7 @@ fun FavoritePage(
) { ) {
val user = services.getUserById(index) ?: return val user = services.getUserById(index) ?: return
val quotes = FavoriteStub.getFavoritesByUser(user.id) val quotes = FavoriteStub.getFavoritesByUser(user.id)
val TitlePage = stringResource(R.string.TitleFavorite)
NavBar(onFavorite = true, NavBar(onFavorite = true,
index = index, index = index,
navControllerFavorite = { }, navControllerFavorite = { },
@ -45,7 +47,7 @@ fun FavoritePage(
LazyColumn { LazyColumn {
item{ item{
Text( Text(
text = "▶ Favoris ◀", text = TitlePage,
color = Color.White, color = Color.White,
fontSize = 24.sp, fontSize = 24.sp,
modifier = Modifier modifier = Modifier

@ -30,7 +30,7 @@
<string name="ErrorEmailSignUp">Email invalide</string> <string name="ErrorEmailSignUp">Email invalide</string>
<string name="ErrorPasswordSignUp">Les mots de passe ne correspondent pas</string> <string name="ErrorPasswordSignUp">Les mots de passe ne correspondent pas</string>
<string name="ErrorUserEmptySignUp">Le nom d\'utilisateur ne peut pas être vide</string> <string name="ErrorUserEmptySignUp">Le nom d\'utilisateur ne peut pas être vide</string>
<string name="ErrorUserExistSignUp">Le nom d\'utilisateur n\'est pas disponible</string> <string name="ErrorUserExistSignUp">Le nom d\'utilisateur ou l\'email ne sont pas disponibles</string>
<string name="ErrorPasswordEmpty">Vous devez mettre un mot de passe</string> <string name="ErrorPasswordEmpty">Vous devez mettre un mot de passe</string>
//Page Profil //Page Profil
@ -51,5 +51,9 @@
//Page Favori //Page Favori
<string name="TitleFavorite">Favoris</string> <string name="TitleFavorite">▶ Favoris ◀</string>
//Page Accueil
<string name="TitleHomeDailyQuote">▶ Citation du jour ◀</string>
<string name="TitleHomeSuggestion">▶ Suggestions ◀</string>
</resources> </resources>

@ -29,7 +29,7 @@
<string name="ErrorEmailSignUp">Invalid email</string> <string name="ErrorEmailSignUp">Invalid email</string>
<string name="ErrorPasswordSignUp">Passwords do not match</string> <string name="ErrorPasswordSignUp">Passwords do not match</string>
<string name="ErrorUserEmptySignUp">Username cannot be empty</string> <string name="ErrorUserEmptySignUp">Username cannot be empty</string>
<string name="ErrorUserExistSignUp">Username is not available</string> <string name="ErrorUserExistSignUp">Username or email are not available</string>
<string name="ErrorPasswordEmpty">You must put a password</string> <string name="ErrorPasswordEmpty">You must put a password</string>
//Page Profil //Page Profil
@ -48,6 +48,10 @@
<string name="CharacterQuote">Character</string> <string name="CharacterQuote">Character</string>
//Page Favori //Page Favori
<string name="TitleFavorite">Favorites</string> <string name="TitleFavorite">▶ Favorites ◀</string>
//Page Accueil
<string name="TitleHomeDailyQuote">▶ Quote of the day ◀</string>
<string name="TitleHomeSuggestion">▶ Suggestions ◀</string>
</resources> </resources>
Loading…
Cancel
Save