diff --git a/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/MainActivity.kt b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/MainActivity.kt index 48efbc0..e6eaedd 100644 --- a/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/MainActivity.kt +++ b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/MainActivity.kt @@ -18,17 +18,12 @@ import com.example.veraxapplication.ui.topBar.TopBarVerax // doc compose, pleins de trucs: https://developer.android.com/jetpack/compose/text?hl=fr //doc couleur background pas finie: https://developer.android.com/jetpack/compose/components/scaffold - - class MainActivity : ComponentActivity() { - class MainActivity : ComponentActivity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContent { - VeraxContent() - } + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + VeraxContent() } } } @@ -50,7 +45,6 @@ fun VeraxContent() { var theme = listOf("Economique", "Culture", "Politique", "Faits divers") - Text(text = "Coucou") TopBarVerax(articles = articlesApi, theme = theme) // VeraxNavHost() diff --git a/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/article/Article.kt b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/article/Article.kt index 1108213..8e090b3 100644 --- a/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/article/Article.kt +++ b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/article/Article.kt @@ -1,6 +1,7 @@ package com.example.veraxapplication.ui.article import VideoPlayer +import android.util.Log import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.Image import androidx.compose.foundation.background @@ -32,7 +33,6 @@ import com.example.veraxapplication.modele.articles.contenus.ContenuMedia import com.example.veraxapplication.modele.articles.contenus.ContenuParagraphe import com.example.veraxapplication.ui.theme.Salmon - @Composable fun AffichageLesArticles(articles : List
, goToArticle: (Article) -> Unit){ Column(modifier = Modifier.verticalScroll(rememberScrollState())){ @@ -50,12 +50,6 @@ fun AffichageUnArticleInfo(e : Article, goToArticle: (Article) -> Unit){ .padding(7.dp) .border(width = 1.dp, color = Color.Black, shape = RoundedCornerShape(10.dp)) .padding(5.dp)) { - /*DisplayTitle(title = e.Title) - DisplayHeader(author = e.Author, description = e.Description, lectureTime = e.LectureTime) - DisplayImage(image = e.Image) - DisplayContentArticle(content = e.Content)*/ - - Text(text = e.titre, fontFamily = FontFamily.Serif, fontSize = 30.sp) @@ -71,6 +65,7 @@ fun AffichageUnArticleInfo(e : Article, goToArticle: (Article) -> Unit){ Text(text = "Temps de lecture : "+e.temps+" minutes", fontSize = 17.sp) } } + Log.d("ImageLoad", e.toString()) Image( painter = rememberImagePainter( data = e.imagePrincipale @@ -83,7 +78,8 @@ fun AffichageUnArticleInfo(e : Article, goToArticle: (Article) -> Unit){ .padding(5.dp, 35.dp) ) - Button(onClick = { goToArticle(e) }, + + Button(onClick = { goToArticle(e)}, colors = ButtonDefaults.buttonColors( containerColor = Salmon, contentColor = Color.Black @@ -98,12 +94,16 @@ fun AffichageUnArticleInfo(e : Article, goToArticle: (Article) -> Unit){ } } + + @Composable -fun AfficherArticle(e : Article){ - Column(modifier = Modifier - .verticalScroll(rememberScrollState()) - .padding(7.dp) - .padding(5.dp)) { +fun AfficherArticle(e : Article) { + Column( + modifier = Modifier + .verticalScroll(rememberScrollState()) + .padding(7.dp) + .padding(5.dp) + ) { Text(text = e.titre, fontFamily = FontFamily.Serif, fontSize = 30.sp) @@ -115,8 +115,8 @@ fun AfficherArticle(e : Article){ .background(Salmon) ) { Column(modifier = Modifier.padding(15.dp)) { - Text(text = "Auteur : "+e.auteur, fontSize = 17.sp) - Text(text = "Description : "+e.description, fontSize = 17.sp) + Text(text = "Auteur : " + e.auteur, fontSize = 17.sp) + Text(text = "Description : " + e.description, fontSize = 17.sp) Text(text = "Temps de lecture : " + e.temps + " minutes", fontSize = 17.sp) } } @@ -133,18 +133,19 @@ fun AfficherArticle(e : Article){ ) - Column (modifier = Modifier.align(Alignment.Start)){ - for (text in e.contenus){ - when(text){ + + Column(modifier = Modifier) { + for (text in e.contenus) { + when (text) { is ContenuMedia -> { Text(text = text.titre, fontSize = 20.sp, fontWeight = FontWeight.Bold) - when(text.typeContenu){ + when (text.typeContenu) { "image" -> { Image( painter = rememberImagePainter( data = text.lien ), - contentScale = ContentScale.FillHeight , + contentScale = ContentScale.FillHeight, contentDescription = null, modifier = Modifier .size(350.dp) @@ -152,8 +153,13 @@ fun AfficherArticle(e : Article){ .padding(5.dp, 35.dp) ) } + "video" -> { - Text(text = "Ici une video ..."+ text.toString(), fontSize = 15.sp, textAlign = TextAlign.Start) + Text( + text = "Ici une video ..." + text.toString(), + fontSize = 15.sp, + textAlign = TextAlign.Start + ) // le player video marche a moitié mais honnetenement je comprends pas le soucis VideoPlayer(videoUrl = text.lien) } @@ -161,7 +167,8 @@ fun AfficherArticle(e : Article){ } - is ContenuParagraphe ->{ + + is ContenuParagraphe -> { Text(text = text.titre, fontSize = 20.sp, fontWeight = FontWeight.Bold) Text(text = text.toString(), fontSize = 16.sp, textAlign = TextAlign.Start) } @@ -169,4 +176,37 @@ fun AfficherArticle(e : Article){ } } } +} + + +@Composable +fun DisplayHeader(author: String, description: String, lectureTime: String) { + Box( + modifier = Modifier + .padding(15.dp) + .border(width = 1.dp, color = Color.Black, shape = RoundedCornerShape(10.dp)) + .clip(RoundedCornerShape(10.dp)) + .background(Salmon) + ) { + Column(modifier = Modifier.padding(15.dp)) { + Text(text = "Auteur : "+ author, fontSize = 17.sp) + Text(text = "Description : "+ description, fontSize = 17.sp) + Text(text = "Temps de lecture : " + lectureTime + " minutes", fontSize = 17.sp) + } + } +} +@Composable +fun DisplayImage(imageURl : String){ + Log.d("ImageLoad", "URL de l'image reçue de l'API : $imageURl") + + Image( + painter = rememberImagePainter( + data = imageURl + ), + contentScale = ContentScale.Crop, + contentDescription = null, + modifier = Modifier + .size(350.dp) + .padding(5.dp, 35.dp) + ) } \ No newline at end of file diff --git a/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/topBar/TopBarVerax.kt b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/topBar/TopBarVerax.kt index 06022fa..288d6e1 100644 --- a/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/topBar/TopBarVerax.kt +++ b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/topBar/TopBarVerax.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size @@ -50,7 +51,7 @@ fun TopBarVerax(theme: List, articles: List
) { val navBackStackEntry by navController.currentBackStackEntryAsState() - Row() { + Row( modifier = Modifier.background(Color.Blue).fillMaxSize()) { Scaffold( topBar = { CenterAlignedTopAppBar(