Improve stability and fix crashes

feature/top10
Aurelien Hubert 7 years ago
parent dd20a75060
commit 4292c6f794
  1. 46
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt

@ -29,6 +29,9 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
get() = Dispatchers.Main
private var rowRepresentables: ArrayList<RowRepresentable> = ArrayList()
private var stringAll = ""
private var stringCashGame = ""
private var stringTournament = ""
private lateinit var statsAdapter: RowRepresentableAdapter
@ -54,6 +57,8 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initData()
initUI()
launchStatComputation()
}
// Row Representable DS
@ -103,10 +108,28 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
*/
private fun initData() {
this.stringAll = getString(R.string.all)
this.stringCashGame = getString(R.string.cash_game)
this.stringTournament = getString(R.string.tournament)
this.statsAdapter = RowRepresentableAdapter(this)
this.launchStatComputation()
}
/**
* Init UI
*/
private fun initUI() {
val viewManager = LinearLayoutManager(requireContext())
recyclerView.apply {
setHasFixedSize(true)
layoutManager = viewManager
adapter = statsAdapter
}
}
private fun launchStatComputation() {
// Thread() {
@ -144,8 +167,11 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
}
test.await()
if (!isDetached) {
showResults(results)
}
}
}
@ -175,13 +201,11 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
}
val allStats: List<Stat> = listOf(Stat.NETRESULT, Stat.HOURLY_RATE, Stat.AVERAGE, Stat.NUMBER_OF_SETS, Stat.AVERAGE_DURATION, Stat.DURATION)
val allSessionGroup = SessionGroup(getString(R.string.all), sessionsList, allStats)
val allSessionGroup = SessionGroup(stringAll, sessionsList, allStats)
val cgStats: List<Stat> = listOf(Stat.NETRESULT, Stat.HOURLY_RATE, Stat.NET_BB_PER_100_HANDS, Stat.HOURLY_RATE_BB, Stat.AVERAGE, Stat.STANDARD_DEVIATION_HOURLY, Stat.WIN_RATIO, Stat.NUMBER_OF_GAMES, Stat.AVERAGE_BUYIN)
val cgSessionGroup = SessionGroup(getString(R.string.cash_game), cgSessions, cgStats)
val cgSessionGroup = SessionGroup(stringCashGame, cgSessions, cgStats)
val tStats: List<Stat> = listOf(Stat.NETRESULT, Stat.HOURLY_RATE, Stat.ROI, Stat.WIN_RATIO, Stat.NUMBER_OF_GAMES, Stat.AVERAGE_BUYIN)
val tSessionGroup = SessionGroup(getString(R.string.tournament), tSessions, tStats)
val tSessionGroup = SessionGroup(stringTournament, tSessions, tStats)
Timber.d(">>>>> Start computations...")
@ -190,16 +214,8 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
}
private fun showResults(results: List<ComputedResults>) {
this.rowRepresentables = this.convertResultsIntoRepresentables(results)
val viewManager = LinearLayoutManager(requireContext())
recyclerView.apply {
setHasFixedSize(true)
layoutManager = viewManager
adapter = statsAdapter
}
statsAdapter.notifyDataSetChanged()
}
private fun convertResultsIntoRepresentables(results: List<ComputedResults>) : ArrayList<RowRepresentable> {

Loading…
Cancel
Save