diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index f936d55..b64cb85 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -71,9 +71,10 @@ dependencies {
implementation("com.squareup.retrofit2:retrofit:2.9.0") //internet, api etc...
implementation("com.squareup.retrofit2:converter-gson:2.9.0") // Si tu veux utiliser Gson pour la sérialisation
implementation("com.squareup.okhttp3:logging-interceptor:4.9.0") // Pour le logging
- implementation("com.github.bumptech.glide:glide:4.15.1") // Pour curl des images d'internet en gros
+ implementation("com.github.bumptech.glide:glide:4.15.1")
kapt("com.github.bumptech.glide:compiler:4.15.1")
implementation("com.github.PhilJay:MPAndroidChart:v3.1.0")
+ implementation("com.google.android.exoplayer:exoplayer:2.18.1")
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dbc90d1..9dcd198 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -21,10 +21,12 @@
android:theme="@style/Theme.Timelapse">
-
+
+
+
= emptyList() // Déclare une liste de projets vide
private var project: Project? = null
@@ -50,7 +53,8 @@ class ProjectActivity : AppCompatActivity() {
.addConverterFactory(GsonConverterFactory.create())
.build()
apiService = retrofit.create(ApiService::class.java) // Crée une instance d'ApiService
- projectRepository = ProjectRepository(apiService) // Tu initialises ton repository
+ projectRepository = ProjectRepository(apiService)
+ videoRepository = VideoRepository(apiService)
this.project = intent.getParcelableExtra("PROJECT") // -1 est la valeur par défaut si l'ID n'est pas trouvé
Log.d("project", "La project activity "+this.project?.id+" est créée")
@@ -67,6 +71,7 @@ class ProjectActivity : AppCompatActivity() {
fetchMeasuresAndRebuildGraph()
Log.d("ProjetsFrag", "Actualisation des projets")
}
+ fetchVideos()
@@ -80,7 +85,19 @@ class ProjectActivity : AppCompatActivity() {
// }
}
-
+ fun fetchVideos(){
+ this.project?.let{
+ videoRepository.fetchVideosOfProject(it.id, onSuccess = { videos ->
+ val adapter = VideoAdapter(false, videos, null) //ImageAdapter(imageUrls)
+ binding.videosList.layoutManager = GridLayoutManager(this.baseContext, 2, GridLayoutManager.HORIZONTAL, false)
+ binding.videosList.addItemDecoration(GridSpacingItemDecoration(16)) // 16px spacing
+ binding.videosList.adapter = adapter
+ }, onError = {errorMessage ->
+ Log.e("ProjectActivity", errorMessage)
+ fetchVideos()
+ })
+ }
+ }
fun fetchMeasuresAndRebuildGraph(){
this.project?.let{
projectRepository.fetchMeasurementsOfProject(it.id,
@@ -91,7 +108,7 @@ class ProjectActivity : AppCompatActivity() {
initGraph(this.measures)
val adapter = ImageAdapter(this.measures.map { m-> "https://timelapse.kerboul.me/api/images/${m.project_id}/${m.order_id}"}) //ImageAdapter(imageUrls)
- binding.imagesList.layoutManager = StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.HORIZONTAL)
+ binding.imagesList.layoutManager = GridLayoutManager(this.baseContext, 2, GridLayoutManager.HORIZONTAL, false)
binding.imagesList.addItemDecoration(GridSpacingItemDecoration(16)) // 16px spacing
binding.imagesList.adapter = adapter
diff --git a/app/src/main/java/com/dreamteam/timelapse/VideoAdapter.kt b/app/src/main/java/com/dreamteam/timelapse/VideoAdapter.kt
new file mode 100644
index 0000000..70913e7
--- /dev/null
+++ b/app/src/main/java/com/dreamteam/timelapse/VideoAdapter.kt
@@ -0,0 +1,86 @@
+package com.dreamteam.timelapse
+
+import android.annotation.SuppressLint
+import android.content.Intent
+import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.core.content.ContextCompat
+import androidx.core.graphics.drawable.DrawableCompat
+import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
+import com.dreamteam.timelapse.data.ApiService
+import com.dreamteam.timelapse.data.ProjectRepository
+import com.dreamteam.timelapse.data.Video
+import com.dreamteam.timelapse.data.VideoRepository
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+
+class VideoAdapter(
+ public val withProjectNames : Boolean,
+ private val videos: List