@@ -8,17 +8,30 @@ import android.net.Uri
8
8
import android.os.Bundle
9
9
import android.os.Environment
10
10
import android.provider.MediaStore
11
+ import android.util.Log
11
12
import android.view.LayoutInflater
12
13
import android.view.View
13
14
import android.view.ViewGroup
14
15
import androidx.core.content.FileProvider
15
16
import androidx.databinding.DataBindingUtil
16
17
import androidx.fragment.app.Fragment
18
+ import com.github.mikephil.charting.data.*
19
+ import com.github.mikephil.charting.interfaces.datasets.ILineDataSet
20
+ import com.github.mikephil.charting.utils.ColorTemplate
17
21
import com.google.android.material.bottomnavigation.BottomNavigationView
22
+ import com.google.firebase.auth.FirebaseAuth
18
23
import com.solvabit.climate.R
24
+ import com.solvabit.climate.Repository.Repository
25
+ import com.solvabit.climate.database.Stats
26
+ import com.solvabit.climate.database.UserDatabase
19
27
import com.solvabit.climate.databinding.FragmentSendReportBinding
20
28
import com.solvabit.climate.fragment.Dashboard
29
+ import com.solvabit.climate.fragment.Dashboard.Companion.localuser
30
+ import kotlinx.android.synthetic.main.bottom_sheet_planted_tree_data.*
21
31
import kotlinx.android.synthetic.main.dialog_share_achievement_to_feed.view.*
32
+ import kotlinx.coroutines.Dispatchers
33
+ import kotlinx.coroutines.GlobalScope
34
+ import kotlinx.coroutines.launch
22
35
import timber.log.Timber
23
36
import java.io.ByteArrayOutputStream
24
37
import java.io.File
@@ -44,13 +57,27 @@ class SendReportFragment : Fragment() {
44
57
45
58
navbar = activity?.findViewById(R .id.bottomNavigation)!!
46
59
navbar.visibility = View .GONE
47
-
60
+ val uid = FirebaseAuth .getInstance().uid.toString()
61
+ val instance = UserDatabase .getInstance(context?.applicationContext!! )
62
+ val dao = instance.userDao()
63
+ val statsDao = instance.statsDao()
64
+ val localRepo = Repository (dao, uid)
48
65
initializeData()
49
66
50
67
binding.shareReportButton.setOnClickListener {
51
68
showShareIntent()
52
69
}
53
70
71
+ val stats = Stats ()
72
+ setLineChart(stats)
73
+ GlobalScope .launch(Dispatchers .Main ) {
74
+ localRepo.getStats(statsDao){
75
+ Log .v(" StatsFragment" ,it.toString())
76
+ setLineChart(it)
77
+ }
78
+
79
+ }
80
+ setPieChart()
54
81
return binding.root
55
82
}
56
83
@@ -80,8 +107,93 @@ class SendReportFragment : Fragment() {
80
107
// Step 7: Start/Launch Share intent
81
108
startActivity(intent)
82
109
}
110
+ private fun setLineChart (stats : Stats ) {
111
+
112
+ val xvalue = ArrayList <String >()
113
+ xvalue.add(" 2011" )
114
+ xvalue.add(" 2012" )
115
+ xvalue.add(" 2014" )
116
+ xvalue.add(" 2015" )
117
+ xvalue.add(" 2019" )
118
+
119
+ val lineEntry = ArrayList <Entry >()
120
+ lineEntry.add(Entry (stats.actual_forest_cover_2009.toFloat(), 0 ))
121
+ lineEntry.add(Entry (stats.actual_forest_cover_2011.toFloat(), 1 ))
122
+ lineEntry.add(Entry (stats.actual_forest_cover_2013.toFloat(), 2 ))
123
+ lineEntry.add(Entry (stats.actual_forest_cover_2015.toFloat(), 3 ))
124
+ lineEntry.add(Entry (stats.actual_forest_cover_2019.toFloat(), 4 ))
125
+
126
+ val lineEntry1 = ArrayList <Entry >()
127
+ lineEntry1.add(Entry (stats.open_forest_2009.toFloat(), 0 ))
128
+ lineEntry1.add(Entry (stats.open_forest_2011.toFloat(), 1 ))
129
+ lineEntry1.add(Entry (stats.open_forest_2013.toFloat(), 2 ))
130
+ lineEntry1.add(Entry (stats.open_forest_2015.toFloat(), 3 ))
131
+ lineEntry1.add(Entry (stats.open_forest_2019.toFloat(), 4 ))
132
+
133
+
134
+
135
+ val linedataset = LineDataSet (lineEntry, " AFC" )
136
+ linedataset.color = resources.getColor(R .color.green)
137
+
138
+ val linedataset1 = LineDataSet (lineEntry1, " OFC" )
139
+ linedataset1.color = resources.getColor(R .color.blue)
140
+
141
+
142
+ linedataset.circleRadius = 0f
143
+ linedataset.setDrawFilled(true )
144
+ linedataset.fillColor = resources.getColor(R .color.green)
145
+ linedataset.fillAlpha = 30
146
+ linedataset.setDrawCubic(true )
147
+
148
+ linedataset1.circleRadius = 0f
149
+ linedataset1.setDrawFilled(true )
150
+ linedataset1.fillColor = resources.getColor(R .color.blue)
151
+ linedataset1.fillAlpha = 30
152
+ linedataset1.setDrawCubic(true )
153
+
154
+
155
+ val linedatasetArray = arrayListOf<LineDataSet >(linedataset, linedataset1)
156
+
157
+ val actualCoverData = LineData (xvalue, linedatasetArray as List <ILineDataSet >? )
158
+
159
+ binding.lineChart.data = actualCoverData
160
+ binding.lineChart.setBackgroundColor(resources.getColor(R .color.white))
161
+ binding.lineChart.animateXY(3000 , 3000 )
162
+ binding.lineChart.setTouchEnabled(false )
163
+ binding.lineChart.setDrawGridBackground(false )
164
+ binding.lineChart.getXAxis().setDrawGridLines(false );
165
+ binding.lineChart.setDescription(" " )
166
+ binding.lineChart.getAxisLeft().setDrawGridLines(false );
167
+ binding.lineChart.getAxisRight().setDrawGridLines(false );
168
+
169
+ }
83
170
84
171
172
+ private fun setPieChart () {
173
+
174
+ val scaleValue = java.util.ArrayList <String >()
175
+ scaleValue.add(" GWS" )
176
+ scaleValue.add(" TAR" )
177
+ scaleValue.add(" CAE" )
178
+ scaleValue.add(" CAU" )
179
+ scaleValue.add(" RMR" )
180
+
181
+ val lineEntry = java.util.ArrayList <Entry >()
182
+ lineEntry.add(Entry (localuser.groundWaterData[5 ].toFloat(), 1 ))
183
+ lineEntry.add(Entry (localuser.groundWaterData[2 ].toFloat(), 2 ))
184
+ lineEntry.add(Entry (localuser.groundWaterData[3 ].toFloat(), 3 ))
185
+ lineEntry.add(Entry (localuser.groundWaterData[9 ].toFloat(), 4 ))
186
+ val pieDataSet = PieDataSet (lineEntry, " " )
187
+ val dataSet = PieData (scaleValue, pieDataSet)
188
+ pieDataSet.setColors(ColorTemplate .JOYFUL_COLORS )
189
+ binding.pieChart.animateXY(5000 , 5000 )
190
+ binding.pieChart.setDrawSliceText(true )
191
+ binding.pieChart.setDescription(" " )
192
+ binding.pieChart.data = dataSet
193
+
194
+
195
+ }
196
+
85
197
private fun initializeData () {
86
198
binding.apply {
87
199
achievementNameTextView.text = localUser.username
0 commit comments