From 842202974fe0d9c128fb5da76e9f22b6fda47940 Mon Sep 17 00:00:00 2001 From: Chocolaterie <110991127+Chocolaterie@users.noreply.github.com> Date: Wed, 22 Jan 2025 10:00:57 +0100 Subject: [PATCH] Correction tp 2 --- app/build.gradle.kts | 2 + app/src/main/AndroidManifest.xml | 21 +++-- .../com/example/tpfilrouge/article/Article.kt | 4 + .../tpfilrouge/article/ListArticleActivity.kt | 93 +++++++++++++++++++ .../tpfilrouge/{ => auth}/LoginActivity.kt | 21 +---- .../{ => auth}/ResetPasswordActivity.kt | 12 +-- .../tpfilrouge/{ => auth}/SignUpActivity.kt | 12 +-- app/src/main/res/values/strings.xml | 2 + 8 files changed, 121 insertions(+), 46 deletions(-) create mode 100644 app/src/main/java/com/example/tpfilrouge/article/Article.kt create mode 100644 app/src/main/java/com/example/tpfilrouge/article/ListArticleActivity.kt rename app/src/main/java/com/example/tpfilrouge/{ => auth}/LoginActivity.kt (76%) rename app/src/main/java/com/example/tpfilrouge/{ => auth}/ResetPasswordActivity.kt (77%) rename app/src/main/java/com/example/tpfilrouge/{ => auth}/SignUpActivity.kt (79%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 96cabe2..550bf80 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -56,4 +56,6 @@ dependencies { androidTestImplementation(libs.androidx.ui.test.junit4) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) + + implementation("io.coil-kt:coil-compose:2.7.0") } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9682db4..7191be4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,9 @@ + xmlns:tools="http://schemas.android.com/tools" > + + + + tools:targetApi="31" > + + android:theme="@style/Theme.TpFilRouge" > + diff --git a/app/src/main/java/com/example/tpfilrouge/article/Article.kt b/app/src/main/java/com/example/tpfilrouge/article/Article.kt new file mode 100644 index 0000000..3a51c6e --- /dev/null +++ b/app/src/main/java/com/example/tpfilrouge/article/Article.kt @@ -0,0 +1,4 @@ +package com.example.tpfilrouge.article + +data class Article(var title : String, var desc : String, var imgPath : String) { +} \ No newline at end of file diff --git a/app/src/main/java/com/example/tpfilrouge/article/ListArticleActivity.kt b/app/src/main/java/com/example/tpfilrouge/article/ListArticleActivity.kt new file mode 100644 index 0000000..587940c --- /dev/null +++ b/app/src/main/java/com/example/tpfilrouge/article/ListArticleActivity.kt @@ -0,0 +1,93 @@ +package com.example.tpfilrouge.article + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.ElevatedCard +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import coil.compose.AsyncImage +import com.example.tpfilrouge.R +import com.example.tpfilrouge.ui.theme.EniPage + +class ListArticleActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContent { + ListArticleActivityPage() + } + } +} + +@Composable +fun ListArticleActivityPage() { + var articles = listOf( + Article("Teletubies", "Meilleur série du monde", "https://avatar.iran.liara.run/public"), + Article("Velocipastor", "Meilleur film du monde, gros budget", "https://avatar.iran.liara.run/public"), + Article("Photo mouton béret paille ?", "Pourquoi", "https://avatar.iran.liara.run/public") + ); + + EniPage { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier.padding(40.dp) + ) { + Text(text = stringResource(R.string.title_list_article_page), + modifier = Modifier.fillMaxWidth(), + textAlign = TextAlign.Center, + style = TextStyle(color = Color.White, fontSize = 28.sp)) + LazyColumn { + items(articles) { article -> + ElevatedCard( + elevation = CardDefaults.cardElevation(defaultElevation = 6.dp), + modifier = Modifier.fillMaxWidth().padding(vertical = 14.dp) + ) { + Row(modifier = Modifier.padding(10.dp)) { + AsyncImage( + model = article.imgPath, + contentDescription = "", + modifier = Modifier.width(82.dp).padding(horizontal = 5.dp), + placeholder = painterResource(R.drawable.reset_password_ic), + ) + Column(modifier = Modifier.padding(start = 5.dp)) { + Text(article.title, + style = TextStyle(fontWeight = FontWeight.Bold, fontSize = 15.sp)) + Text(article.desc) + } + } + } + } + } + } + } +} + +@Preview( + showBackground = true, +) +@Composable +fun ListArticleActivityPreview() { + ListArticleActivityPage() +} \ No newline at end of file diff --git a/app/src/main/java/com/example/tpfilrouge/LoginActivity.kt b/app/src/main/java/com/example/tpfilrouge/auth/LoginActivity.kt similarity index 76% rename from app/src/main/java/com/example/tpfilrouge/LoginActivity.kt rename to app/src/main/java/com/example/tpfilrouge/auth/LoginActivity.kt index 8cc8b9c..2b5ec17 100644 --- a/app/src/main/java/com/example/tpfilrouge/LoginActivity.kt +++ b/app/src/main/java/com/example/tpfilrouge/auth/LoginActivity.kt @@ -1,35 +1,19 @@ -package com.example.tpfilrouge +package com.example.tpfilrouge.auth import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge -import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.Image -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.BoxScope import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Button -import androidx.compose.material3.ButtonDefaults -import androidx.compose.material3.ElevatedButton -import androidx.compose.material3.ElevatedCard -import androidx.compose.material3.Scaffold import androidx.compose.material3.Text -import androidx.compose.material3.TextField import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.motionEventSpy -import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -37,10 +21,7 @@ import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import com.example.tpfilrouge.ui.theme.TpFilRougeTheme import com.example.tpfilrouge.R -import com.example.tpfilrouge.ui.theme.EniBackgroundPage import com.example.tpfilrouge.ui.theme.EniButton import com.example.tpfilrouge.ui.theme.EniPage import com.example.tpfilrouge.ui.theme.EniTextField diff --git a/app/src/main/java/com/example/tpfilrouge/ResetPasswordActivity.kt b/app/src/main/java/com/example/tpfilrouge/auth/ResetPasswordActivity.kt similarity index 77% rename from app/src/main/java/com/example/tpfilrouge/ResetPasswordActivity.kt rename to app/src/main/java/com/example/tpfilrouge/auth/ResetPasswordActivity.kt index fea3c7b..dc8292d 100644 --- a/app/src/main/java/com/example/tpfilrouge/ResetPasswordActivity.kt +++ b/app/src/main/java/com/example/tpfilrouge/auth/ResetPasswordActivity.kt @@ -1,30 +1,22 @@ -package com.example.tpfilrouge +package com.example.tpfilrouge.auth import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material3.ElevatedButton -import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp +import com.example.tpfilrouge.R import com.example.tpfilrouge.ui.theme.EniButton import com.example.tpfilrouge.ui.theme.EniPage import com.example.tpfilrouge.ui.theme.EniTextField -import com.example.tpfilrouge.ui.theme.TpFilRougeTheme class ResetPasswordActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/com/example/tpfilrouge/SignUpActivity.kt b/app/src/main/java/com/example/tpfilrouge/auth/SignUpActivity.kt similarity index 79% rename from app/src/main/java/com/example/tpfilrouge/SignUpActivity.kt rename to app/src/main/java/com/example/tpfilrouge/auth/SignUpActivity.kt index 648d124..dacc62c 100644 --- a/app/src/main/java/com/example/tpfilrouge/SignUpActivity.kt +++ b/app/src/main/java/com/example/tpfilrouge/auth/SignUpActivity.kt @@ -1,30 +1,22 @@ -package com.example.tpfilrouge +package com.example.tpfilrouge.auth import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material3.ElevatedButton -import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp +import com.example.tpfilrouge.R import com.example.tpfilrouge.ui.theme.EniButton import com.example.tpfilrouge.ui.theme.EniPage import com.example.tpfilrouge.ui.theme.EniTextField -import com.example.tpfilrouge.ui.theme.TpFilRougeTheme class SignUpActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 936f049..c9b3618 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -9,4 +9,6 @@ I forget password Don\'t have any account ? Register Now + ListArticleActivity + Liste des articles \ No newline at end of file