workShana
Tony Fages 3 months ago
parent aa95ce53a2
commit 22de81e373

@ -3,13 +3,9 @@ package com.example.veraxapplication
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.ui.graphics.Color
import com.example.veraxapplication.articles.IArticlesDataManager
import com.example.veraxapplication.articles.StubArticles
import com.example.veraxapplication.modele.ApiClient
import com.example.veraxapplication.modele.articles.Article
import com.example.veraxapplication.navigation.VeraxNavHost
import com.example.veraxapplication.ui.article.AfficherArticle
import com.example.veraxapplication.ui.topBar.TopBarVerax
// 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)
@ -19,6 +15,7 @@ import com.example.veraxapplication.ui.topBar.TopBarVerax
class MainActivity : ComponentActivity() {
// un truc vite fait pour avoir un visi
@ -27,7 +24,7 @@ class MainActivity : ComponentActivity() {
var dataManager: IArticlesDataManager = StubArticles()
var articles = dataManager.getDerniersArticles(4)
val articlesApi = ApiClient.apiService.getArticles()
//val reqresClient = IArticleRepository.create<IArticleAPI>()
var theme = listOf("Economique", "Culture", "Politique", "Faits divers")
@ -38,8 +35,7 @@ class MainActivity : ComponentActivity() {
//TopBarVerax(theme = theme, articles = articlesApi)
// TopBarVerax(theme = theme, articles = articles)
TopBarVerax(theme = theme, articles = articles)
VeraxNavHost()
}

@ -1,22 +0,0 @@
package com.example.veraxapplication.modele
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
object RetrofitClient {
private const val BASE_URL = "http://181.214.189.133:9092/"
val retrofit: Retrofit by lazy {
Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
}
}
object ApiClient {
val apiService: ApiService by lazy {
RetrofitClient.retrofit.create(ApiService::class.java)
}
}

@ -1,12 +1,11 @@
package com.example.veraxapplication.modele
import com.example.veraxapplication.modele.articles.Article
import com.example.veraxapplication.modele.user.User
import retrofit2.Call
import retrofit2.http.GET
interface UserApiService {
@GET("users/")
fun getUsers(): Call<List<User>>
suspend fun getUsers(): Call<List<User>>
}

@ -0,0 +1,50 @@
package com.example.veraxapplication.modele.api
import com.example.veraxapplication.modele.articles.Article
import com.google.gson.annotations.SerializedName
data class ArticleDTO (
@SerializedName("id")
val id: Int,
@SerializedName("titre")
val titre: String,
@SerializedName("description")
val description: String,
@SerializedName("imagePrincipale")
val imagePrincipale: String,
@SerializedName("date")
val date: String,
@SerializedName("auteur")
val auteur: String,
@SerializedName("contenu")
val contenu: List<ContenuDTO>,
@SerializedName("temps")
val temps: String,
@SerializedName("note")
val note: String,
) {
fun toModel(): Article {
return Article(
id,
titre,
description,
auteur,
date,
imagePrincipale,
temps,
note,
)
}
}
data class ContenuDTO (
@SerializedName("id")
val id: Int,
@SerializedName("typeContenu")
val typeContenu: String,
@SerializedName("titre")
val titre: String,
@SerializedName("texte")
val texte: String,
)

@ -0,0 +1,5 @@
package com.example.veraxapplication.modele.api
class ArticleRepository {
}

@ -1,11 +1,10 @@
package com.example.veraxapplication.modele
package com.example.veraxapplication.modele.api
import com.example.veraxapplication.modele.articles.Article
import retrofit2.Call
import retrofit2.http.GET
interface ApiService {
interface IArticleAPI {
@GET("articles/")
fun getArticles(): Call<List<Article>>
}

@ -1,5 +1,6 @@
package com.example.veraxapplication.modele.articles
import com.example.veraxapplication.modele.api.ArticleDTO
import com.example.veraxapplication.modele.articles.contenus.Contenu
class Article(
@ -9,9 +10,9 @@ class Article(
val temps: String,
val date: String,
val auteur: String,
val note: String,
val imagePrincipale: String
) {
val note = 1.0
private val lContenus: MutableList<Contenu> = java.util.ArrayList()
init {
@ -30,4 +31,6 @@ class Article(
override fun toString(): String {
return "Article(id=$id, titre='$titre', description='$description', temps='$temps', date='$date', auteur='$auteur', imagePrincipale='$imagePrincipale', note=$note, contenus=${lContenus.size} contenus)"
}
}

@ -1,13 +1,9 @@
package com.example.veraxapplication.articles
import android.os.Build
import androidx.annotation.RequiresApi
import com.example.veraxapplication.modele.articles.Article
import com.example.veraxapplication.modele.articles.contenus.Contenu
import com.example.veraxapplication.modele.articles.contenus.ContenuMedia
import com.example.veraxapplication.modele.articles.contenus.ContenuParagraphe
import java.time.LocalDate
import kotlin.math.min
class StubArticles() : IArticlesDataManager {
@ -30,6 +26,7 @@ class StubArticles() : IArticlesDataManager {
"3",
"date a revoir",
"Siwa",
"12",
"https://cdn.discordapp.com/attachments/1150826798549049554/1219554341388816437/stub1.webp?ex=660bb97d&is=65f9447d&hm=3e1e8d3372ae897fa4e2aa1ec730d976d74b35fce96cb8d78d6f9239e2836564&"
)
article1.remplirArticle(contenuMap["article1"])
@ -43,6 +40,7 @@ class StubArticles() : IArticlesDataManager {
"7",
"date a revoir",
"Siwa",
"12",
"https://cdn.discordapp.com/attachments/1150826798549049554/1219555874339815454/stub2.webp?ex=660bbaea&is=65f945ea&hm=80aef945e8410b18395c716fdd19265608f7b1263731192d5c69f807fce9e944&"
)
article2.remplirArticle(contenuMap["article5"])
@ -56,6 +54,8 @@ class StubArticles() : IArticlesDataManager {
"5",
"date a revoir",
"Siwa",
"12",
"https://cdn.discordapp.com/attachments/1150826798549049554/1219547864196317225/stub1.webp?ex=660bb374&is=65f93e74&hm=a9e5dd48faa3ae68c358309af8949c46dfd4dea9c4d6e3d845d707784e5341cf&"
)
article3.remplirArticle(contenuMap["article4"])
@ -69,6 +69,7 @@ class StubArticles() : IArticlesDataManager {
"9",
"date a revoir",
"Luthen",
"12",
"https://cdn.discordapp.com/attachments/1150826798549049554/1219560686254817290/stub1.webp?ex=660bbf65&is=65f94a65&hm=021bd8c90c89347f31373468cc7a03ae15f1d3f9988a5b4325149c6df938d7bb&"
)
article4.remplirArticle(contenuMap["article6"])

Loading…
Cancel
Save