From 57a3af64bd16fd464ed331522d9a4433ab634d18 Mon Sep 17 00:00:00 2001
From: Daniel Hauk <haukda60920@th-nuernberg.de>
Date: Tue, 4 Jun 2019 15:11:03 +0200
Subject: [PATCH] chart for humidity

---
 main/AndroidManifest.xml                      |  4 --
 .../hbox/history/ChartListViewAdapter.kt      | 34 ++++++++++----
 .../example/hbox/history/HistoryFragment.kt   |  1 -
 .../axisFormatter/HumidityFormatter.kt        | 14 ++++++
 ...tsFormatter.kt => TemperatureFormatter.kt} |  3 +-
 .../history/axisStyler/HumidityAxisStyler.kt  | 46 +++++++++++++++++++
 .../axisStyler/TemperatureAxisStyler.kt       |  4 +-
 .../dataSetStyler/HumidityDataSetStyler.kt    | 21 +++++++++
 ...tStyler.kt => TemperatureDataSetStyler.kt} |  2 +-
 9 files changed, 109 insertions(+), 20 deletions(-)
 create mode 100644 main/java/com/example/hbox/history/axisFormatter/HumidityFormatter.kt
 rename main/java/com/example/hbox/history/axisFormatter/{NullDigitsFormatter.kt => TemperatureFormatter.kt} (79%)
 create mode 100644 main/java/com/example/hbox/history/axisStyler/HumidityAxisStyler.kt
 create mode 100644 main/java/com/example/hbox/history/dataSetStyler/HumidityDataSetStyler.kt
 rename main/java/com/example/hbox/history/dataSetStyler/{TemperaturDataSetStyler.kt => TemperatureDataSetStyler.kt} (94%)

diff --git a/main/AndroidManifest.xml b/main/AndroidManifest.xml
index f0ac5f8..ac9fc8a 100644
--- a/main/AndroidManifest.xml
+++ b/main/AndroidManifest.xml
@@ -14,10 +14,6 @@
             android:supportsRtl="true"
             android:theme="@style/AppTheme">
         <activity
-                android:name=".control.SettingsActivity"
-                android:label="@string/title_activity_settings">
-        </activity>
-        adb<activity
                 android:name=".MainActivity"
                 android:label="@string/app_name">
             <intent-filter>
diff --git a/main/java/com/example/hbox/history/ChartListViewAdapter.kt b/main/java/com/example/hbox/history/ChartListViewAdapter.kt
index 67dc518..baa351c 100644
--- a/main/java/com/example/hbox/history/ChartListViewAdapter.kt
+++ b/main/java/com/example/hbox/history/ChartListViewAdapter.kt
@@ -2,14 +2,14 @@ package com.history
 
 import android.annotation.SuppressLint
 import android.content.Context
-import android.graphics.Color
-import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.widget.BaseAdapter
+import com.example.hbox.history.axisStyler.HumidityAxisStyler
 import com.example.hbox.history.axisStyler.TemperatureAxisStyler
-import com.example.hbox.history.dataSetStyler.TemperaturDataSetStyler
+import com.example.hbox.history.dataSetStyler.HumidityDataSetStyler
+import com.example.hbox.history.dataSetStyler.TemperatureDataSetStyler
 import com.example.hbox.history.limitLinesFormatter.WeekdayLimitLinesCreator
 import com.github.mikephil.charting.charts.LineChart
 import com.github.mikephil.charting.data.Entry
@@ -33,15 +33,29 @@ class ChartListViewAdapter(private val context: Context, private val sensorList:
         sensorList[position].data?.forEach {
             entries.add(Entry(it.date.toFloat(), it.value))
         }
-
-        // style dataset
         val lineDataSet = LineDataSet(entries, sensorList[position].name)
-        TemperaturDataSetStyler.styleDataSet(lineDataSet)
 
-        // style axis
-        TemperatureAxisStyler.styleXAxis(view.xAxis)
-        TemperatureAxisStyler.styleYAxisLeft(view.axisLeft)
-        TemperatureAxisStyler.styleYAxisRight(view.axisRight)
+        when(sensorList[position].type) {
+            "temperature" -> {
+                // style dataset
+                TemperatureDataSetStyler.styleDataSet(lineDataSet)
+
+                // style axis
+                TemperatureAxisStyler.styleXAxis(view.xAxis)
+                TemperatureAxisStyler.styleYAxisLeft(view.axisLeft)
+                TemperatureAxisStyler.styleYAxisRight(view.axisRight)
+            }
+            "humidity" -> {
+                // style dataset
+                HumidityDataSetStyler.styleDataSet(lineDataSet)
+
+                // style axis
+                HumidityAxisStyler.styleXAxis(view.xAxis)
+                HumidityAxisStyler.styleYAxisLeft(view.axisLeft)
+                HumidityAxisStyler.styleYAxisRight(view.axisRight)
+            }
+        }
+
 
         // add weekdays
         WeekdayLimitLinesCreator.create(view.xAxis, sensorList[position])
diff --git a/main/java/com/example/hbox/history/HistoryFragment.kt b/main/java/com/example/hbox/history/HistoryFragment.kt
index 34d48b2..62cc123 100644
--- a/main/java/com/example/hbox/history/HistoryFragment.kt
+++ b/main/java/com/example/hbox/history/HistoryFragment.kt
@@ -13,7 +13,6 @@ import com.google.gson.Gson
 import com.history.ChartListViewAdapter
 import com.history.History
 import com.history.Sensor
-import org.json.JSONObject
 import java.net.HttpURLConnection
 import java.net.URL
 
diff --git a/main/java/com/example/hbox/history/axisFormatter/HumidityFormatter.kt b/main/java/com/example/hbox/history/axisFormatter/HumidityFormatter.kt
new file mode 100644
index 0000000..18684f9
--- /dev/null
+++ b/main/java/com/example/hbox/history/axisFormatter/HumidityFormatter.kt
@@ -0,0 +1,14 @@
+package com.example.hbox.history.axisFormatter
+
+import com.github.mikephil.charting.components.AxisBase
+import com.github.mikephil.charting.formatter.IAxisValueFormatter
+import java.text.DecimalFormat
+
+class HumidityFormatter : IAxisValueFormatter {
+    override fun getFormattedValue(value: Float, axis: AxisBase?): String {
+
+        val df = DecimalFormat("#")
+        //df.roundingMode = RoundingMode.CEILING
+        return df.format(value) + " %"
+    }
+}
\ No newline at end of file
diff --git a/main/java/com/example/hbox/history/axisFormatter/NullDigitsFormatter.kt b/main/java/com/example/hbox/history/axisFormatter/TemperatureFormatter.kt
similarity index 79%
rename from main/java/com/example/hbox/history/axisFormatter/NullDigitsFormatter.kt
rename to main/java/com/example/hbox/history/axisFormatter/TemperatureFormatter.kt
index c55ca47..be3896d 100644
--- a/main/java/com/example/hbox/history/axisFormatter/NullDigitsFormatter.kt
+++ b/main/java/com/example/hbox/history/axisFormatter/TemperatureFormatter.kt
@@ -2,10 +2,9 @@ package com.example.hbox.history.axisFormatter
 
 import com.github.mikephil.charting.components.AxisBase
 import com.github.mikephil.charting.formatter.IAxisValueFormatter
-import com.github.mikephil.charting.utils.ColorTemplate
 import java.text.DecimalFormat
 
-class NullDigitsFormatter : IAxisValueFormatter {
+class TemperatureFormatter : IAxisValueFormatter {
     override fun getFormattedValue(value: Float, axis: AxisBase?): String {
 
         val df = DecimalFormat("#")
diff --git a/main/java/com/example/hbox/history/axisStyler/HumidityAxisStyler.kt b/main/java/com/example/hbox/history/axisStyler/HumidityAxisStyler.kt
new file mode 100644
index 0000000..d1fdef9
--- /dev/null
+++ b/main/java/com/example/hbox/history/axisStyler/HumidityAxisStyler.kt
@@ -0,0 +1,46 @@
+package com.example.hbox.history.axisStyler
+
+import android.graphics.Color
+import com.example.hbox.history.axisFormatter.HumidityFormatter
+import com.example.hbox.history.axisFormatter.TemperatureFormatter
+import com.example.hbox.history.axisFormatter.TimeFormatter
+import com.github.mikephil.charting.components.XAxis
+import com.github.mikephil.charting.components.YAxis
+
+class HumidityAxisStyler {
+    companion object {
+        fun styleXAxis(xAxis: XAxis) : XAxis {
+            xAxis.position = XAxis.XAxisPosition.BOTTOM
+            return xAxis.apply {
+                valueFormatter = TimeFormatter()
+                setDrawAxisLine(false)
+                setDrawGridLines(false)
+                setDrawLimitLinesBehindData(true)
+                textSize = 14f
+            }
+        }
+
+        fun styleYAxisRight(yAxis: YAxis) : YAxis {
+            return yAxis.apply {
+                setDrawAxisLine(false)
+                setDrawLabels(false)
+                setDrawGridLines(false)
+            }
+        }
+
+        fun styleYAxisLeft(yAxis: YAxis) : YAxis {
+            return yAxis.apply {
+                setDrawAxisLine(false)
+                textSize = 14f
+                valueFormatter = HumidityFormatter()
+                axisMinimum = 20f
+                axisMaximum = 90f
+                setDrawGridLines(true)
+                gridColor = Color.DKGRAY
+                setLabelCount(8,true)
+
+            }
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/main/java/com/example/hbox/history/axisStyler/TemperatureAxisStyler.kt b/main/java/com/example/hbox/history/axisStyler/TemperatureAxisStyler.kt
index e0ad55d..c59c305 100644
--- a/main/java/com/example/hbox/history/axisStyler/TemperatureAxisStyler.kt
+++ b/main/java/com/example/hbox/history/axisStyler/TemperatureAxisStyler.kt
@@ -1,7 +1,7 @@
 package com.example.hbox.history.axisStyler
 
 import android.graphics.Color
-import com.example.hbox.history.axisFormatter.NullDigitsFormatter
+import com.example.hbox.history.axisFormatter.TemperatureFormatter
 import com.example.hbox.history.axisFormatter.TimeFormatter
 import com.github.mikephil.charting.components.XAxis
 import com.github.mikephil.charting.components.YAxis
@@ -31,7 +31,7 @@ class TemperatureAxisStyler {
             return yAxis.apply {
                 setDrawAxisLine(false)
                 textSize = 14f
-                valueFormatter = NullDigitsFormatter()
+                valueFormatter = TemperatureFormatter()
                 axisMinimum = 16f
                 axisMaximum = 32f
                 setDrawGridLines(true)
diff --git a/main/java/com/example/hbox/history/dataSetStyler/HumidityDataSetStyler.kt b/main/java/com/example/hbox/history/dataSetStyler/HumidityDataSetStyler.kt
new file mode 100644
index 0000000..c7c1475
--- /dev/null
+++ b/main/java/com/example/hbox/history/dataSetStyler/HumidityDataSetStyler.kt
@@ -0,0 +1,21 @@
+package com.example.hbox.history.dataSetStyler
+
+import android.graphics.Color
+import com.github.mikephil.charting.data.LineDataSet
+
+class HumidityDataSetStyler {
+    companion object {
+        fun styleDataSet (lineDataSet : LineDataSet) : LineDataSet {
+            return lineDataSet.apply{
+                lineWidth = 0f
+                color = Color.argb(255,15,15,255)
+                fillColor = Color.argb(255,15,15,255)
+                fillAlpha = 100
+                mode = LineDataSet.Mode.CUBIC_BEZIER
+                setDrawFilled(true)
+                setDrawCircles(false)
+                setDrawValues(false)
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/main/java/com/example/hbox/history/dataSetStyler/TemperaturDataSetStyler.kt b/main/java/com/example/hbox/history/dataSetStyler/TemperatureDataSetStyler.kt
similarity index 94%
rename from main/java/com/example/hbox/history/dataSetStyler/TemperaturDataSetStyler.kt
rename to main/java/com/example/hbox/history/dataSetStyler/TemperatureDataSetStyler.kt
index 758918e..8d26bb1 100644
--- a/main/java/com/example/hbox/history/dataSetStyler/TemperaturDataSetStyler.kt
+++ b/main/java/com/example/hbox/history/dataSetStyler/TemperatureDataSetStyler.kt
@@ -3,7 +3,7 @@ package com.example.hbox.history.dataSetStyler
 import android.graphics.Color
 import com.github.mikephil.charting.data.LineDataSet
 
-class TemperaturDataSetStyler {
+class TemperatureDataSetStyler {
     companion object {
         fun styleDataSet (lineDataSet : LineDataSet) : LineDataSet {
             return lineDataSet.apply{
-- 
GitLab