|
|
|
@ -30,18 +30,23 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Create new instance |
|
|
|
* Create new instance |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
fun newInstance(dataSetList: List<DataSet<*>>): GraphFragment { |
|
|
|
fun newInstance(lineDataSets: List<LineDataSet>? = null, barDataSets: List<BarDataSet>? = null): GraphFragment { |
|
|
|
val fragment = GraphFragment() |
|
|
|
val fragment = GraphFragment() |
|
|
|
fragment.dataSetList = dataSetList |
|
|
|
fragment.lineDataSetList = lineDataSets |
|
|
|
|
|
|
|
fragment.barDataSetList = barDataSets |
|
|
|
val bundle = Bundle() |
|
|
|
val bundle = Bundle() |
|
|
|
fragment.arguments = bundle |
|
|
|
fragment.arguments = bundle |
|
|
|
return fragment |
|
|
|
return fragment |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private lateinit var parentActivity: PokerAnalyticsActivity |
|
|
|
private lateinit var parentActivity: PokerAnalyticsActivity |
|
|
|
private lateinit var legendView: LegendView |
|
|
|
private lateinit var legendView: LegendView |
|
|
|
private lateinit var dataSetList: List<DataSet<*>> |
|
|
|
|
|
|
|
|
|
|
|
private var lineDataSetList: List<LineDataSet>? = null |
|
|
|
|
|
|
|
private var barDataSetList: List<BarDataSet>? = null |
|
|
|
|
|
|
|
|
|
|
|
private var chartView: BarLineChartBase<*>? = null |
|
|
|
private var chartView: BarLineChartBase<*>? = null |
|
|
|
|
|
|
|
|
|
|
|
private var stat: Stat = Stat.NET_RESULT |
|
|
|
private var stat: Stat = Stat.NET_RESULT |
|
|
|
@ -60,8 +65,18 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Set data |
|
|
|
* Set data |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
fun setData(dataSetList: List<DataSet<out Entry>>, stat: Stat, axisFormatting: AxisFormatting = AxisFormatting.DEFAULT) { |
|
|
|
fun setLineData(lineDataSets: List<LineDataSet>, stat: Stat, axisFormatting: AxisFormatting = AxisFormatting.DEFAULT) { |
|
|
|
this.dataSetList = dataSetList |
|
|
|
this.lineDataSetList = lineDataSets |
|
|
|
|
|
|
|
this.stat = stat |
|
|
|
|
|
|
|
this.axisFormatting = axisFormatting |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (isAdded && !isDetached) { |
|
|
|
|
|
|
|
loadGraph() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fun setBarData(barDataSets: List<BarDataSet>, stat: Stat, axisFormatting: AxisFormatting = AxisFormatting.DEFAULT) { |
|
|
|
|
|
|
|
this.barDataSetList = barDataSets |
|
|
|
this.stat = stat |
|
|
|
this.stat = stat |
|
|
|
this.axisFormatting = axisFormatting |
|
|
|
this.axisFormatting = axisFormatting |
|
|
|
|
|
|
|
|
|
|
|
@ -90,53 +105,55 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener { |
|
|
|
|
|
|
|
|
|
|
|
Timber.d("loadGraph") |
|
|
|
Timber.d("loadGraph") |
|
|
|
|
|
|
|
|
|
|
|
dataSetList.firstOrNull()?.let { dataSet -> |
|
|
|
this.chartContainer.removeAllViews() |
|
|
|
|
|
|
|
|
|
|
|
// initialize chart |
|
|
|
var lastEntry: Entry? = null |
|
|
|
this.chartContainer.removeAllViews() |
|
|
|
|
|
|
|
this.chartView = when (dataSet) { |
|
|
|
this.lineDataSetList?.let { dataSets -> |
|
|
|
is LineDataSet -> { |
|
|
|
|
|
|
|
this.legendView.prepareWithStat(this.stat, dataSet.entryCount) |
|
|
|
val lineChart = LineChart(context) |
|
|
|
LineChart(context) |
|
|
|
val lineData = LineData(dataSets) |
|
|
|
} |
|
|
|
lineChart.data = lineData |
|
|
|
is BarDataSet -> { |
|
|
|
|
|
|
|
this.legendView.prepareWithStat(this.stat) |
|
|
|
this.chartView = lineChart |
|
|
|
val barChart = BarChart(context) |
|
|
|
|
|
|
|
if (stat.showXAxisZero) { |
|
|
|
dataSets.firstOrNull()?.let { |
|
|
|
barChart.xAxis.axisMinimum = 0.0f |
|
|
|
this.legendView.prepareWithStat(this.stat, it.entryCount) |
|
|
|
} |
|
|
|
lastEntry = it.getEntryForIndex(it.entryCount - 1) |
|
|
|
if (stat.showYAxisZero) { |
|
|
|
} |
|
|
|
barChart.axisLeft.axisMinimum = 0.0f |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
barChart |
|
|
|
|
|
|
|
} |
|
|
|
this.barDataSetList?.let { dataSets -> |
|
|
|
else -> null |
|
|
|
|
|
|
|
|
|
|
|
this.legendView.prepareWithStat(this.stat) |
|
|
|
|
|
|
|
val barChart = BarChart(context) |
|
|
|
|
|
|
|
if (stat.showXAxisZero) { |
|
|
|
|
|
|
|
barChart.xAxis.axisMinimum = 0.0f |
|
|
|
} |
|
|
|
} |
|
|
|
this.chartContainer.addView(this.chartView) |
|
|
|
if (stat.showYAxisZero) { |
|
|
|
|
|
|
|
barChart.axisLeft.axisMinimum = 0.0f |
|
|
|
when (dataSet) { |
|
|
|
|
|
|
|
is LineDataSet -> { |
|
|
|
|
|
|
|
val lineChart: LineChart = this.chartView as LineChart |
|
|
|
|
|
|
|
val lineData = LineData(listOf(dataSet)) |
|
|
|
|
|
|
|
lineChart.data = lineData |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
is BarDataSet -> { |
|
|
|
|
|
|
|
val barChart = this.chartView as BarChart |
|
|
|
|
|
|
|
val barData = BarData(listOf(dataSet)) |
|
|
|
|
|
|
|
barChart.data = barData |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
this.chartView = barChart |
|
|
|
|
|
|
|
|
|
|
|
this.chartView?.let { |
|
|
|
val barData = BarData(dataSets) |
|
|
|
it.setStyle(false, axisFormatting, requireContext()) |
|
|
|
barChart.data = barData |
|
|
|
it.setOnChartValueSelectedListener(this) |
|
|
|
|
|
|
|
|
|
|
|
dataSets.firstOrNull()?.let { |
|
|
|
|
|
|
|
lastEntry = it.getEntryForIndex(it.entryCount - 1) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Timber.d("number of entries: ${dataSet.entryCount}, stat = ${this.stat.name}") |
|
|
|
this.chartContainer.addView(this.chartView) |
|
|
|
this.selectValue(dataSet.getEntryForIndex(dataSet.entryCount - 1)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.chartView?.let { |
|
|
|
|
|
|
|
it.setStyle(false, axisFormatting, requireContext()) |
|
|
|
|
|
|
|
it.setOnChartValueSelectedListener(this) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lastEntry?.let { |
|
|
|
|
|
|
|
this.selectValue(it) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|