Correction des graphiques d'affichage d'humidité et température
This commit is contained in:
6
.idea/AndroidProjectSystem.xml
generated
Normal file
6
.idea/AndroidProjectSystem.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AndroidProjectSystem">
|
||||
<option name="providerId" value="com.android.tools.idea.GradleProjectSystem" />
|
||||
</component>
|
||||
</project>
|
||||
3
.idea/deploymentTargetSelector.xml
generated
3
.idea/deploymentTargetSelector.xml
generated
@@ -13,9 +13,6 @@
|
||||
</DropdownSelection>
|
||||
<DialogSelection />
|
||||
</SelectionState>
|
||||
<SelectionState runConfigName="ProjectActivity">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
</SelectionState>
|
||||
</selectionStates>
|
||||
</component>
|
||||
</project>
|
||||
2
.idea/gradle.xml
generated
2
.idea/gradle.xml
generated
@@ -4,6 +4,7 @@
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="testRunner" value="CHOOSE_PER_TEST" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
||||
<option name="modules">
|
||||
@@ -12,7 +13,6 @@
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveExternalAnnotations" value="false" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
|
||||
1
.idea/misc.xml
generated
1
.idea/misc.xml
generated
@@ -1,3 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
|
||||
|
||||
17
.idea/runConfigurations.xml
generated
Normal file
17
.idea/runConfigurations.xml
generated
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RunConfigurationProducerService">
|
||||
<option name="ignoredProducers">
|
||||
<set>
|
||||
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
|
||||
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
|
||||
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
|
||||
</set>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
@@ -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
|
||||
@@ -127,52 +128,75 @@ class ProjectActivity : AppCompatActivity() {
|
||||
fun initGraph(lm: List<Measurement>) {
|
||||
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<ILineDataSet> = 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<TextView>(R.id.project_name)
|
||||
val descriptionview = findViewById<TextView>(R.id.project_description)
|
||||
|
||||
Reference in New Issue
Block a user