diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml
new file mode 100644
index 0000000..4a53bee
--- /dev/null
+++ b/.idea/AndroidProjectSystem.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index 8b909e6..329860c 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -13,9 +13,6 @@
-
-
-
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 0b0534c..22d9498 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,6 +4,7 @@
-
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 8978d23..0ad17cb 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,3 +1,4 @@
+
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 0000000..16660f1
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/dreamteam/timelapse/ProjectActivity.kt b/app/src/main/java/com/dreamteam/timelapse/ProjectActivity.kt
index 943fc6d..fe81356 100644
--- a/app/src/main/java/com/dreamteam/timelapse/ProjectActivity.kt
+++ b/app/src/main/java/com/dreamteam/timelapse/ProjectActivity.kt
@@ -8,13 +8,14 @@ import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
-import androidx.recyclerview.widget.StaggeredGridLayoutManager
import com.dreamteam.timelapse.data.ApiService
import com.dreamteam.timelapse.data.Measurement
import com.dreamteam.timelapse.data.Project
import com.dreamteam.timelapse.data.ProjectRepository
import com.dreamteam.timelapse.data.VideoRepository
import com.dreamteam.timelapse.databinding.ProjectBinding
+import com.github.mikephil.charting.components.Legend
+import com.github.mikephil.charting.components.XAxis
import com.github.mikephil.charting.data.Entry
import com.github.mikephil.charting.data.LineData
import com.github.mikephil.charting.data.LineDataSet
@@ -124,55 +125,78 @@ class ProjectActivity : AppCompatActivity() {
}
}
- fun initGraph(lm : List){
+ fun initGraph(lm: List) {
val temperatureHumidityChart = this.binding.temperatureHumidityChart
- val temperatures = lm.sortedBy { p -> p.order_id }
- .map { m -> Pair(m.temperature, m.timestamp) }
- val humidities = lm.sortedBy { p -> p.order_id }
- .map { m -> Pair(m.humidity, m.timestamp) }
+ // Sort measurements by order_id and map to pairs of value and timestamp
+ val temperatures = lm.sortedBy { it.order_id }
+ .map { m -> Pair(m.temperature, m.order_id) }
+ val humidities = lm.sortedBy { it.order_id }
+ .map { m -> Pair(m.humidity, m.order_id) }
- // Ajouter des points de données (exemples)
- val temperatureEntries = temperatures.map { pair ->
- Entry((pair.second.time).toFloat(), pair.first) // (timestamp, température)
+ // Create entries for temperature and humidity using timestamps
+ val temperatureEntries = temperatures.mapIndexed { index, pair ->
+ Entry(index.toFloat(), pair.first) // Use index for order, but display timestamp
}
- val humidityEntries = humidities.map { pair ->
- Entry((pair.second.time).toFloat(), pair.first) // (timestamp, humidité)
+ val humidityEntries = humidities.mapIndexed { index, pair ->
+ Entry(index.toFloat(), pair.first) // Use index for order, but display timestamp
}
- // Créer des LineDataSet pour chaque série de données
- val temperatureDataSet = LineDataSet(temperatureEntries, "Température")
- val humidityDataSet = LineDataSet(humidityEntries, "Hygrométrie")
- Log.i("ProjectActivity", temperatureEntries.toString())
- val minX = temperatureEntries.minOf { it.x } // La valeur minimale de x
- val maxX = temperatureEntries.maxOf { it.x } // La valeur maximale de x
+ // Create LineDataSet for each data series
+ val temperatureDataSet = LineDataSet(temperatureEntries, "Température").apply {
+ color = Color.RED // Keep color red
+ valueTextColor = Color.BLACK
+ valueTextSize = 12f
+ }
+
+ val humidityDataSet = LineDataSet(humidityEntries, "Hygrométrie").apply {
+ color = Color.BLUE // Keep color blue
+ valueTextColor = Color.BLACK
+ valueTextSize = 12f
+ }
+
+ // Set up the x-axis to display timestamps
val xAxis = temperatureHumidityChart.xAxis
xAxis.valueFormatter = object : ValueFormatter() {
override fun getFormattedValue(value: Float): String {
- val date = Date(value.toLong())
- val sdf = SimpleDateFormat("hh:mm", Locale.getDefault())
+ // Map the index back to the corresponding timestamp
+ val timestamp = lm.sortedBy { it.order_id }[value.toInt()].timestamp
+ val date = Date(timestamp.time)
+ val sdf = SimpleDateFormat("dd/MM/yyyy:HH:mm:ss", Locale.getDefault())
return sdf.format(date)
}
}
+
+ // Set the minimum and maximum x-axis values based on indices
+ val minX = 0f
+ val maxX = (lm.size - 1).toFloat()
xAxis.axisMinimum = minX
xAxis.axisMaximum = maxX
- // Ajouter les datasets au graphique
+ xAxis.granularity = 1f // Ensure each index is plotted
+ xAxis.labelRotationAngle = -90f
+ xAxis.position = XAxis.XAxisPosition.BOTTOM
+
+ // Add datasets to the chart
val dataSets: MutableList = ArrayList()
dataSets.add(temperatureDataSet)
dataSets.add(humidityDataSet)
- // val lineData = LineData(temperatureDataSet, humidityDataSet)
- //Log.e("Graph", lineData.getDataSetByIndex(0).entryCount.toString())
+
temperatureHumidityChart.data = LineData(dataSets)
+ val description = temperatureHumidityChart.description
+ description.text = " "
+ // Customize the legend
+ val legend: Legend = temperatureHumidityChart.legend
+ legend.textColor = Color.BLACK
+ legend.textSize = 12f
- // Personnaliser le graphique (par exemple, couleur, légende, etc.)
- temperatureDataSet.color = Color.RED
- humidityDataSet.color = Color.BLUE
-
- temperatureHumidityChart.invalidate() // Rafraîchir le graphique
+ // Refresh the chart
+ temperatureHumidityChart.invalidate()
}
+
+
fun initProjectInfo(){
val nameview = findViewById(R.id.project_name)
val descriptionview = findViewById(R.id.project_description)