Skip to content

Commit

Permalink
Working BarDataSet chart on new welcome screen (issue #13)
Browse files Browse the repository at this point in the history
  • Loading branch information
Javinator9889 committed Jun 30, 2020
1 parent 3e70411 commit 53d2d9c
Showing 1 changed file with 61 additions and 7 deletions.
Expand Up @@ -33,6 +33,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.github.mikephil.charting.data.BarData
import com.github.mikephil.charting.data.BarDataSet
import com.github.mikephil.charting.formatter.ValueFormatter
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_COLLAPSED
import com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
Expand Down Expand Up @@ -78,6 +79,7 @@ class DiseasesFragment : BaseFragmentView(), LayoutVisibilityChange, View.OnClic
SavedViewModelFactory(DiseaseInformationViewModel.Factory, this)
}
private val handwashingViewModel: HandwashingViewModel by activityViewModels()
private var dataSet: BarDataSet? = null

init {
lifecycleScope.launchWhenStarted {
Expand All @@ -103,11 +105,33 @@ class DiseasesFragment : BaseFragmentView(), LayoutVisibilityChange, View.OnClic
}
handwashingViewModel.allData.observe(viewLifecycleOwner) {
lifecycleScope.launch {
val dataSet = BarDataSet(it.toBarEntry(), "label")
dataSet?.let { set ->
Timber.d("Adding new items to dataSet")
set.clear()
for (entry in it.toBarEntry()) {
set.addEntry(entry)
// countChart.notifyDataSetChanged()
}
} ?: with(BarDataSet(it.toBarEntry(), "")) {
Timber.d("dataSet not created so instantiating it")
valueFormatter = IntFormatter()
dataSet = this
// countChart.data.addDataSet(this)
// countChart.notifyDataSetChanged()
}
countChart.data = BarData(dataSet)
countChart.notifyDataSetChanged()
countChart.setVisibleXRangeMaximum(7F)
// countChart.data.notifyDataChanged()
// countChart.minOffset = 0F
// countChart.setExtraOffsets(4F, 4F, 4F, 4F)
// countChart.setViewPortOffsets(0F, 4F, 0F, 0F)
// countChart.data = BarData(dataSet)
// countChart.notifyDataSetChanged()
// countChart.axisLeft.axisMinimum = 0F
// countChart.data.notifyDataChanged()
countChart.fitScreen()
countChart.moveViewToX(0F)
countChart.invalidate()
val todayAmount =
handwashingViewModel.getAsync(CalendarUtils.today.time)
val weeklyAmount =
Expand Down Expand Up @@ -150,11 +174,37 @@ class DiseasesFragment : BaseFragmentView(), LayoutVisibilityChange, View.OnClic
fastAdapter.withSavedInstanceState(savedInstanceState)
behavior = BottomSheetBehavior.from(view.contentLayout)
behavior.addBottomSheetCallback(BottomSheetStateCallback())
// view.countChart.setDrawGridBackground(false)
// view.countChart.axisLeft.setDrawGridLines(false)
// view.countChart.axisRight.setDrawGridLines(false)
// view.countChart.xAxis.setDrawGridLines(false)
// view.countChart.invalidate()
view.countChart.setDrawGridBackground(false)
view.countChart.axisLeft.apply {
setDrawGridLines(false)
valueFormatter = IntFormatter()
isGranularityEnabled = true
granularity = 1F
axisMinimum = 0F
// spaceMax = .01F
}
view.countChart.axisRight.apply {
setDrawGridLines(false)
valueFormatter = IntFormatter()
isGranularityEnabled = true
granularity = 1F
axisMinimum = 0F
// spaceMax = .01F
}
view.countChart.xAxis.apply {
setDrawGridLines(false)
valueFormatter = IntFormatter()
isGranularityEnabled = true
granularity = 1F
axisMaximum = 0F
}
view.countChart.setVisibleXRangeMaximum(7F)
view.countChart.isAutoScaleMinMaxEnabled = true
view.countChart.legend.isEnabled = false
view.countChart.description.isEnabled = false
// view.countChart.extraTopOffset = 16F
// view.countChart.extraTopOffset = dpToPx(4F)
view.countChart.invalidate()
view.countUpButton.setOnClickListener(this)
view.countDownButton.setOnClickListener(this)
/*view.countUpButton.setOnClickListener {
Expand Down Expand Up @@ -324,4 +374,8 @@ class DiseasesFragment : BaseFragmentView(), LayoutVisibilityChange, View.OnClic

override fun onSlide(bottomSheet: View, slideOffset: Float) {}
}

private inner class IntFormatter : ValueFormatter() {
override fun getFormattedValue(value: Float) = value.toInt().toString()
}
}

0 comments on commit 53d2d9c

Please sign in to comment.