diff --git a/Android/VeraxApplication/app/build.gradle.kts b/Android/VeraxApplication/app/build.gradle.kts
index abf70c9..114550b 100644
--- a/Android/VeraxApplication/app/build.gradle.kts
+++ b/Android/VeraxApplication/app/build.gradle.kts
@@ -66,6 +66,7 @@ dependencies {
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation("androidx.compose.ui:ui-test-manifest")
+ implementation("io.coil-kt:coil-compose:1.4.0")
}
\ No newline at end of file
diff --git a/Android/VeraxApplication/app/src/main/AndroidManifest.xml b/Android/VeraxApplication/app/src/main/AndroidManifest.xml
index 316f500..cb87384 100644
--- a/Android/VeraxApplication/app/src/main/AndroidManifest.xml
+++ b/Android/VeraxApplication/app/src/main/AndroidManifest.xml
@@ -24,5 +24,6 @@
+
\ No newline at end of file
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 4a44758..e227e0b 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
@@ -1,36 +1,31 @@
package com.example.veraxapplication
-import android.graphics.Paint.Align
import android.os.Bundle
-import android.text.Layout
-import android.view.Menu
+import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
+import androidx.compose.foundation.Image
import androidx.compose.foundation.background
+import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.ExperimentalMaterial3Api
-import androidx.compose.material3.MenuDefaults
import androidx.compose.material3.Scaffold
import androidx.compose.ui.graphics.Color
import androidx.compose.material3.Text
-import androidx.compose.material3.TopAppBar
import androidx.compose.ui.res.colorResource
-import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
-import androidx.compose.foundation.layout.width
-import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
-import androidx.compose.material.icons.filled.Favorite
import androidx.compose.material.icons.filled.Home
import androidx.compose.material.icons.filled.Menu
import androidx.compose.material.icons.filled.Person
@@ -40,34 +35,40 @@ import androidx.compose.material3.DropdownMenu
import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
-import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.NavigationBarDefaults.containerColor
-import androidx.compose.material3.Scaffold
-import androidx.compose.material3.ScaffoldDefaults
-import androidx.compose.material3.TopAppBarDefaults.topAppBarColors
-import androidx.compose.material3.darkColorScheme
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
+import androidx.compose.ui.draw.clip
import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
-
+import coil.compose.rememberImagePainter
+import coil.size.Scale
+import com.example.veraxapplication.data.Article
+import com.example.veraxapplication.data.Paragraph
+import com.example.veraxapplication.ui.theme.Salmon
// 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
+
+
+
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 theme = listOf("Economique","Culture","Politique","Faits divers")
+ var color = Color(0xFF00FF00)
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
- TopBarVerax(theme = theme, article = article)
+ TopBarVerax(theme = theme, article = articles)
// allez sur la doc de Scaffold sur Android Dev et si vous comprenez comment on doit faire bien ouej
}
@@ -77,13 +78,11 @@ class MainActivity : ComponentActivity() {
// Il faudrait mettre ca dans un fichier appart mais je connais plus les conventions ...
@OptIn(ExperimentalMaterial3Api::class)
@Composable
-fun TopBarVerax(theme : List, article : List) {
+fun TopBarVerax(theme : List, article : List) {
var leMenu by remember {
mutableStateOf(false)
}
- Row(
- Modifier.background(Color.Cyan)
- ) {
+ Row() {
Scaffold(
topBar = {
CenterAlignedTopAppBar(
@@ -172,10 +171,72 @@ fun TopBarVerax(theme : List, article : List) {
@Composable
-fun AffichageUnArticle(article : List){
- Column {
+fun AffichageUnArticle(article : List){
+ Column() {
for(e in article){
- Text(text = e)
+ 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))
}
}
}
diff --git a/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/data/Article.kt b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/data/Article.kt
new file mode 100644
index 0000000..ddbbbe1
--- /dev/null
+++ b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/data/Article.kt
@@ -0,0 +1,10 @@
+package com.example.veraxapplication.data
+
+data class Article(
+ var Title : String,
+ var Description : String,
+ var Image : String,
+ var Author : String,
+ var Content : List,
+ var LectureTime : String
+)
diff --git a/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/data/Paragraph.kt b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/data/Paragraph.kt
new file mode 100644
index 0000000..8f4a51c
--- /dev/null
+++ b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/data/Paragraph.kt
@@ -0,0 +1,5 @@
+package com.example.veraxapplication.data
+
+data class Paragraph(
+ var Content : String,
+)
diff --git a/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/theme/Color.kt b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/theme/Color.kt
index 416d5de..a2952b8 100644
--- a/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/theme/Color.kt
+++ b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/theme/Color.kt
@@ -8,4 +8,5 @@ val Pink80 = Color(0xFFEFB8C8)
val Purple40 = Color(0xFF6650a4)
val PurpleGrey40 = Color(0xFF625b71)
-val Pink40 = Color(0xFF7D5260)
\ No newline at end of file
+val Pink40 = Color(0xFF7D5260)
+val Salmon = Color(0xFFE9967A)
\ No newline at end of file