From 8fea81300423fd58d7221927e9e1cdd821e99737 Mon Sep 17 00:00:00 2001 From: "maxime.rocher" Date: Fri, 7 Mar 2025 10:44:44 +0100 Subject: [PATCH] fin page Accueil + ajout stub manquant --- .../data/local/DailyQuoteStub.kt | 15 ++++++ .../data/local/FavoriteStub.kt | 19 +++++++ .../what_the_fantasy/data/model/Favorite.kt | 6 +++ .../ui/components/QuoteLittle.kt | 8 ++- .../ui/screens/AccueilPage.kt | 49 ++++++++++++++++--- .../ui/screens/FavoritePage.kt | 4 +- 6 files changed, 88 insertions(+), 13 deletions(-) create mode 100644 What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/DailyQuoteStub.kt create mode 100644 What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/FavoriteStub.kt create mode 100644 What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/model/Favorite.kt diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/DailyQuoteStub.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/DailyQuoteStub.kt new file mode 100644 index 0000000..3ac2826 --- /dev/null +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/DailyQuoteStub.kt @@ -0,0 +1,15 @@ +package com.example.what_the_fantasy.data.local + +import com.example.what_the_fantasy.data.model.Quote + +object DailyQuoteStub { + val Dailyquote = Quote( + id = 1, + content = "All we have to decide is what to do with the time that is given us.", + likes = 466, + language = "en", + character = CharacterStub.gandalf.name, + source = "The Lord of the Rings: The Fellowship of the Ring", + imgUrl = CharacterStub.gandalf.imgUrl + ) +} \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/FavoriteStub.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/FavoriteStub.kt new file mode 100644 index 0000000..43f3673 --- /dev/null +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/FavoriteStub.kt @@ -0,0 +1,19 @@ +package com.example.what_the_fantasy.data.local + +import com.example.what_the_fantasy.data.model.Favorite + +object FavoriteStub { + val favorites: MutableList = mutableListOf( + Favorite(UserStub.users[0], QuoteStub.quote1), + Favorite(UserStub.users[1], QuoteStub.quote12), + Favorite(UserStub.users[2], QuoteStub.quote13), + Favorite(UserStub.users[3], QuoteStub.quote6), + Favorite(UserStub.users[4], QuoteStub.quote5), + Favorite(UserStub.users[5], QuoteStub.quote3), + Favorite(UserStub.users[6], QuoteStub.quote17), + Favorite(UserStub.users[7], QuoteStub.quote7), + Favorite(UserStub.users[8], QuoteStub.quote19), + Favorite(UserStub.users[9], QuoteStub.quote20), + Favorite(UserStub.users[10], QuoteStub.quote11) + ) +} \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/model/Favorite.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/model/Favorite.kt new file mode 100644 index 0000000..e3ce898 --- /dev/null +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/model/Favorite.kt @@ -0,0 +1,6 @@ +package com.example.what_the_fantasy.data.model + +class Favorite ( + val user: User, + val quote: Quote +) \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/components/QuoteLittle.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/components/QuoteLittle.kt index ffc331e..2c7324a 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/components/QuoteLittle.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/components/QuoteLittle.kt @@ -75,12 +75,16 @@ fun QuoteLittle(quote: Quote, modifier: Modifier = Modifier) { Text( text = "Film : ${quote.source}", color = Color.White, - fontSize = 12.sp + fontSize = 12.sp, + maxLines = 1, + overflow = TextOverflow.Ellipsis ) Text( text = "Personnage : ${quote.character}", color = Color.White, - fontSize = 12.sp + fontSize = 12.sp, + maxLines = 1, + overflow = TextOverflow.Ellipsis ) } } diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/AccueilPage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/AccueilPage.kt index 4f28696..8ce38b6 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/AccueilPage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/AccueilPage.kt @@ -5,11 +5,16 @@ import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material3.Button +import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Text import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.what_the_fantasy.data.local.DailyQuoteStub import com.example.what_the_fantasy.data.local.QuoteStub import com.example.what_the_fantasy.ui.components.NavBar import com.example.what_the_fantasy.ui.components.QuoteLittle @@ -22,8 +27,8 @@ fun AccueilPage( navQuiz: (Int) -> Unit, navProfil: (Int) -> Unit ) { - var itemCount by remember { mutableStateOf(15) } // On affiche 15 quotes au début - + var itemCount by remember { mutableStateOf(15) } + val dailyQuote = DailyQuoteStub.Dailyquote val quotes = QuoteStub.allQuotes.take(itemCount) NavBar( @@ -40,17 +45,45 @@ fun AccueilPage( .background(colorBackground) ) { LazyColumn(modifier = Modifier.weight(1f)) { + item{ + Column { + Text( + text = "▶ Citation du jour ◀", + color = Color.White, + fontSize = 24.sp, + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + textAlign = TextAlign.Center + ) + + QuoteLittle(dailyQuote) + } + Text( + text = "▶ Suggestions ◀", + color = Color.White, + fontSize = 24.sp, + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + textAlign = TextAlign.Center + ) + } items(quotes) { quote -> QuoteLittle(quote) } - - // Si on a encore des éléments à charger, on affiche le bouton if (itemCount < QuoteStub.allQuotes.size) { item { - Box(modifier = Modifier.fillMaxWidth(), contentAlignment = Alignment.Center) { - Button(onClick = { itemCount += 15 }) { - Text("Charger plus") - } + LaunchedEffect(itemCount) { + itemCount += 15 + } + Box( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + contentAlignment = Alignment.Center + ) { + CircularProgressIndicator() } } } diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/FavoritePage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/FavoritePage.kt index fc7f309..234884a 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/FavoritePage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/FavoritePage.kt @@ -34,9 +34,7 @@ fun FavoritePage( .background(colorBackground), contentAlignment = Alignment.Center ){ - Column { - Text("Favorite", color = Color.White, fontSize = 20.sp) - } + } } } \ No newline at end of file