From 8d589d91462734f0f04bb4046f7b5682ace985cd Mon Sep 17 00:00:00 2001 From: Shana CASCARRA Date: Wed, 20 Mar 2024 12:02:44 +0100 Subject: [PATCH] Adaptation avec le modele --- .../example/veraxapplication/MainActivity.kt | 203 +----------------- .../veraxapplication/ui/article/Article.kt | 8 +- 2 files changed, 14 insertions(+), 197 deletions(-) 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 f7bf62d..d348bc1 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 @@ -2,13 +2,12 @@ package com.example.veraxapplication import android.os.Build import android.os.Bundle +import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent -<<<<<<< HEAD +import com.example.veraxapplication.ui.theme.Salmon + import androidx.compose.ui.graphics.Color -======= -import androidx.annotation.RequiresApi -import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement @@ -20,7 +19,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Scaffold -import androidx.compose.ui.graphics.Color import androidx.compose.material3.Text import androidx.compose.ui.res.colorResource @@ -60,6 +58,7 @@ import com.example.veraxapplication.articles.StubArticles import com.example.veraxapplication.data.Article import com.example.veraxapplication.data.Paragraph import com.example.veraxapplication.ui.topBar.* + // doc navBar: https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary#TopAppBar(kotlin.Function0,androidx.compose.ui.Modifier,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.layout.WindowInsets,androidx.compose.material3.TopAppBarColors,androidx.compose.material3.TopAppBarScrollBehavior) // 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 @@ -71,10 +70,10 @@ class MainActivity : ComponentActivity() { // un truc vite fait pour avoir un visi // var article = listOf("Thinkerview", "thinkerview.jgp", "Thinkerview est une chaîne youtube d'interview-débat") -// var articles = listOf( Article("Thinkerview", "This is a descrition", Author = "IAmAGreatAuthor", Image = "https://www.gstatic.com/webp/gallery/1.jpg", LectureTime = "12", Content = listOf(Paragraph("This is a paragraph"), Paragraph("This is another paragraph"), Paragraph("This is a third paragraph")))) + var articles = listOf( Article("Thinkerview", "This is a descrition", Author = "IAmAGreatAuthor", Image = "https://www.gstatic.com/webp/gallery/1.jpg", LectureTime = "12", Content = listOf(Paragraph("This is a paragraph"), Paragraph("This is another paragraph"), Paragraph("This is a third paragraph"))), Article("Thinkerview", "This is a descrition", Author = "IAmAGreatAuthor", Image = "https://www.gstatic.com/webp/gallery/1.jpg", LectureTime = "12", Content = listOf(Paragraph("This is a paragraph"), Paragraph("This is another paragraph"), Paragraph("This is a third paragraph")))) var dataManager: IArticlesDataManager = StubArticles() - var articles = dataManager.getDerniersArticles(4) + //var articles = dataManager.getDerniersArticles(4) var theme = listOf("Economique", "Culture", "Politique", "Faits divers") @@ -84,196 +83,14 @@ class MainActivity : ComponentActivity() { super.onCreate(savedInstanceState) setContent { - // TopBarVerax(theme = theme, articles = articles) + TopBarVerax(theme = theme, articles = articles) // allez sur la doc de Scaffold sur Android Dev et si vous comprenez comment on doit faire bien ouej // articles?.forEach({ a -> println(a)}) - articles?.forEach({ a -> + /*articles?.forEach({ a -> Log.println(Log.ASSERT, "debug articles", a.toString()) - }) - } - } - - - // Il faudrait mettre ca dans un fichier appart mais je connais plus les conventions ... - @OptIn(ExperimentalMaterial3Api::class) - @Composable - fun TopBarVerax(theme: List, article: List
) { - var leMenu by remember { - mutableStateOf(false) - } - Row() { - Scaffold( - topBar = { - CenterAlignedTopAppBar( - title = { - Text( - text = "Verax", - style = TextStyle(fontSize = 35.sp), - color = colorResource(R.color.red), - textAlign = TextAlign.Center, - /*backcolor = topAppBarColors( - containerColor = MaterialTheme.colorScheme.primaryContainer),*/ //version recommandée par le prof - modifier = Modifier.fillMaxWidth() - ) - }, - navigationIcon = { - IconButton(onClick = { /* action() */ }) { - Icon( - imageVector = Icons.Filled.ArrowBack, - contentDescription = "Retour", - Modifier.size(30.dp) - ) - } - }, - actions = { - IconButton(onClick = { leMenu = !leMenu }) { - Icon( - imageVector = Icons.Filled.Menu, - contentDescription = "Menu", - Modifier.size(35.dp) - ) - } - DropdownMenu( - expanded = leMenu, onDismissRequest = { leMenu = false }, - modifier = Modifier - .background(Color.hsl(0.08F, 1F, 0.96F)) - ) { - theme.sorted().forEach { - DropdownMenuItem( - text = { - Text( - it, - style = TextStyle(fontSize = 25.sp), - modifier = Modifier - .padding(10.dp) - ) - }, - onClick = { /* faut un moyen d'appeler une methode diff pour chaque, ca doit etre faisable facilement */ } - ) - } - } - } - - ) - }, - bottomBar = { - // Faudrait pouvoir faire un flex sur les boutons parce que là ils sont juste côte à côte - BottomAppBar(containerColor = Color.Black, contentColor = Color.White) { - IconButton(onClick = { /*TODO*/ }) { - Icon( - imageVector = Icons.Filled.Home, - contentDescription = "Home", - Modifier.size(35.dp) - ) - } - IconButton(onClick = { /*TODO*/ }) { - Icon( - imageVector = Icons.Filled.Person, - contentDescription = "Account", - Modifier.size(35.dp) - ) - } - } - } - ) { innerPadding -> - Column( - modifier = Modifier - .padding(innerPadding), - verticalArrangement = Arrangement.spacedBy(16.dp), - ) { - AffichageUnArticle(article = article) - - } - } - } - } - - - @Composable - fun AffichageUnArticle(article: List
) { - Column() { - for (e in article) { - DisplayTitle(title = e.Title) - DisplayHeader( - author = e.Author, - description = e.Description, - lectureTime = e.LectureTime - ) - DisplayImage(image = e.Image) - DisplayContentArticle(content = e.Content) - } + })*/ } } - - @Composable - fun DisplayImage(image: String) { - Log.d("DisplayImage", "Chargement de l'image à partir de l'URL : $image") - - val painter = rememberImagePainter( - data = image, - builder = { - scale(Scale.FILL) - } - ) - - Log.d("DisplayImage", "Painter créé avec succès") - - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center - ) { - androidx.compose.foundation.Image( - painter = painter, - contentDescription = null, - modifier = Modifier.fillMaxSize(), - ) - } - } - - - @Composable - fun DisplayHeader(author: String, description: String, lectureTime: String) { - Box( - modifier = Modifier - .fillMaxWidth() - .border(width = 1.dp, color = Color.Black, shape = RoundedCornerShape(10.dp)) - .clip(RoundedCornerShape(10.dp)) - .background(Salmon) - .padding(10.dp) - ) { - Column() { - Text(text = author) - Text(text = description) - Text(text = "Lecture Time: " + lectureTime + " minutes") - } - } - } - - @Composable - fun DisplayTitle(title: String) { - Column( - modifier = Modifier.fillMaxWidth(), - horizontalAlignment = Alignment.CenterHorizontally - ) { - Text(text = title, fontFamily = FontFamily.Serif, fontSize = 30.sp) - } - } - - @Composable - fun DisplayContentArticle(content: List) { - Column { - for (e in content) { - Text( - text = e.Content, - fontSize = 15.sp, - fontFamily = FontFamily.Serif, - textAlign = TextAlign.Justify, - modifier = Modifier.padding(10.dp) - ) - } - } - } -} - +} \ No newline at end of file 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 5d67d43..852b767 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 @@ -33,16 +33,16 @@ import com.example.veraxapplication.ui.theme.Salmon @Composable fun AffichageLesArticles(articles : List
){ - //Row(modifier = Modifier.verticalScroll(rememberScrollState())){ + Column(modifier = Modifier.verticalScroll(rememberScrollState())){ for(article in articles){ AffichageUnArticle(e = article) } - //} - + } } + @Composable fun AffichageUnArticle(e : Article){ - Column( modifier = Modifier.verticalScroll(rememberScrollState())) { + Column() { /*DisplayTitle(title = e.Title) DisplayHeader(author = e.Author, description = e.Description, lectureTime = e.LectureTime) DisplayImage(image = e.Image)