Refactored parameters for GraphFragment

feature/top10
Laurent 7 years ago
parent 778825f2d0
commit 0bc2eb3fe4
  1. 7
      app/src/main/java/net/pokeranalytics/android/ui/activity/StatisticDetailsActivity.kt
  2. 32
      app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt
  4. 5
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt

@ -3,9 +3,8 @@ package net.pokeranalytics.android.ui.activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import com.github.mikephil.charting.data.Entry
import kotlinx.android.synthetic.main.activity_graph.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.Report
import net.pokeranalytics.android.calculus.Stat import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.fragment.GraphParameters import net.pokeranalytics.android.ui.fragment.GraphParameters
@ -26,8 +25,8 @@ class StatisticDetailsActivity : PokerAnalyticsActivity() {
/** /**
* Default constructor * Default constructor
*/ */
fun newInstance(context: Context, stat: Stat, entries: List<Entry>) { fun newInstance(context: Context, stat: Stat, report: Report) {
parameters = GraphParameters(stat, entries) parameters = GraphParameters(stat, report)
val intent = Intent(context, StatisticDetailsActivity::class.java) val intent = Intent(context, StatisticDetailsActivity::class.java)
context.startActivity(intent) context.startActivity(intent)
} }

@ -15,22 +15,18 @@ import com.google.android.material.chip.Chip
import com.google.android.material.chip.ChipGroup import com.google.android.material.chip.ChipGroup
import kotlinx.android.synthetic.main.fragment_evograph.* import kotlinx.android.synthetic.main.fragment_evograph.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.GraphType import net.pokeranalytics.android.calculus.*
import net.pokeranalytics.android.calculus.ObjectIdentifier
import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.extensions.ChipGroupExtension
import net.pokeranalytics.android.ui.extensions.px
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.graph.PALineDataSet import net.pokeranalytics.android.ui.graph.PALineDataSet
import net.pokeranalytics.android.ui.graph.setStyle import net.pokeranalytics.android.ui.graph.setStyle
import net.pokeranalytics.android.ui.view.LegendView import net.pokeranalytics.android.ui.view.LegendView
import net.pokeranalytics.android.ui.extensions.ChipGroupExtension
import net.pokeranalytics.android.ui.extensions.px
import net.pokeranalytics.android.ui.extensions.toast
import java.text.DateFormat import java.text.DateFormat
class GraphParameters(stat: Stat, entries: List<Entry>) { class GraphParameters(var stat: Stat, var report: Report) {
var stat: Stat = stat
var entries: List<Entry> = entries
} }
class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener { class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
@ -38,18 +34,27 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
private lateinit var parentActivity: PokerAnalyticsActivity private lateinit var parentActivity: PokerAnalyticsActivity
private var stat: Stat = Stat.NETRESULT private var stat: Stat = Stat.NETRESULT
private var reports: Map<AggregationType, Report> = hashMapOf()
private var entries: List<Entry> = ArrayList() private var entries: List<Entry> = ArrayList()
lateinit var legendView: LegendView lateinit var legendView: LegendView
lateinit var chartView: BarLineChartBase<*> lateinit var chartView: BarLineChartBase<*>
private var aggregationTypes: List<AggregationType> = listOf()
companion object { companion object {
} }
fun setData(stat: Stat, entries: List<Entry>) { fun setData(stat: Stat, report: Report) {
this.stat = stat this.stat = stat
this.entries = entries
this.aggregationTypes = stat.aggregationTypes
// this.report = report
report.results.firstOrNull()?.defaultStatEntries(stat)?.let {
this.entries = it
}
} }
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
@ -98,7 +103,7 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
this.chartView.highlightValue((this.entries.size - 1).toFloat(), 0) this.chartView.highlightValue((this.entries.size - 1).toFloat(), 0)
this.stat.aggregationTypes.forEach { type -> this.aggregationTypes.forEach { type ->
val chip = Chip(requireContext()) val chip = Chip(requireContext())
chip.id = type.ordinal chip.id = type.ordinal
chip.text = requireContext().getString(type.resId) chip.text = requireContext().getString(type.resId)
@ -112,7 +117,8 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
this.chipGroup.setOnCheckedChangeListener(object : ChipGroupExtension.SingleSelectionOnCheckedListener() { this.chipGroup.setOnCheckedChangeListener(object : ChipGroupExtension.SingleSelectionOnCheckedListener() {
override fun onCheckedChanged(group: ChipGroup, checkedId: Int) { override fun onCheckedChanged(group: ChipGroup, checkedId: Int) {
super.onCheckedChanged(group, checkedId) super.onCheckedChanged(group, checkedId)
toast("Show: ${stat.aggregationTypes[group.getChildAt(checkedId).id].name}") val aggregationType = aggregationTypes[checkedId]
// toast("Show: ${this.aggregationTypes[group.getChildAt(checkedId).id].name}")
} }
}) })

@ -61,7 +61,7 @@ class StatisticDetailsFragment : PokerAnalyticsFragment() {
fragmentTransaction.commit() fragmentTransaction.commit()
StatisticDetailsActivity.parameters?.let { StatisticDetailsActivity.parameters?.let {
fragment.setData(it.stat, it.entries) fragment.setData(it.stat, it.report)
StatisticDetailsActivity.parameters = null StatisticDetailsActivity.parameters = null
} ?: run { } ?: run {
throw Exception("Missing graph parameters") throw Exception("Missing graph parameters")

@ -225,6 +225,7 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
val options = Calculator.Options() val options = Calculator.Options()
options.evolutionValues = Calculator.Options.EvolutionValues.STANDARD options.evolutionValues = Calculator.Options.EvolutionValues.STANDARD
options.displayedStats = listOf(stat)
report = Calculator.computeGroups(realm, listOf(computableGroup), options) report = Calculator.computeGroups(realm, listOf(computableGroup), options)
realm.close() realm.close()
@ -236,9 +237,7 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
test.await() test.await()
if (!isDetached) { if (!isDetached) {
report.results.firstOrNull()?.defaultStatEntries(stat)?.let { entries -> StatisticDetailsActivity.newInstance(requireContext(), stat, report)
StatisticDetailsActivity.newInstance(requireContext(), stat, entries)
}
} }
} }

Loading…
Cancel
Save