|
|
|
|
@ -5,23 +5,20 @@ import android.view.LayoutInflater |
|
|
|
|
import android.view.View |
|
|
|
|
import android.view.ViewGroup |
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager |
|
|
|
|
import kotlinx.android.synthetic.main.fragment_settings.* |
|
|
|
|
import kotlinx.coroutines.GlobalScope |
|
|
|
|
import kotlinx.coroutines.launch |
|
|
|
|
import io.realm.Realm |
|
|
|
|
import kotlinx.android.synthetic.main.fragment_stats.* |
|
|
|
|
import kotlinx.coroutines.runBlocking |
|
|
|
|
import net.pokeranalytics.android.R |
|
|
|
|
import net.pokeranalytics.android.calculus.Calculator |
|
|
|
|
import net.pokeranalytics.android.calculus.ComputedResults |
|
|
|
|
import net.pokeranalytics.android.calculus.SessionGroup |
|
|
|
|
import net.pokeranalytics.android.calculus.Stat |
|
|
|
|
import net.pokeranalytics.android.model.extensions.SessionType |
|
|
|
|
import net.pokeranalytics.android.model.realm.Session |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource |
|
|
|
|
import net.pokeranalytics.android.ui.datasource.StatsDataSource |
|
|
|
|
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
|
|
|
|
|
|
class StatsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource { |
|
|
|
|
class StatsFragment : PokerAnalyticsFragment() { |
|
|
|
|
|
|
|
|
|
companion object { |
|
|
|
|
|
|
|
|
|
@ -39,11 +36,8 @@ class StatsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource { |
|
|
|
|
private lateinit var statsAdapterRow: RowRepresentableAdapter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { |
|
|
|
|
return inflater.inflate(R.layout.fragment_stats, container, false) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
|
|
|
|
@ -51,38 +45,21 @@ class StatsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource { |
|
|
|
|
initData() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
override fun adapterRows(): ArrayList<RowRepresentable> { |
|
|
|
|
val rows = ArrayList<RowRepresentable>() |
|
|
|
|
rows.addAll(Stat.values()) |
|
|
|
|
return rows |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Init data |
|
|
|
|
*/ |
|
|
|
|
private fun initData() { |
|
|
|
|
|
|
|
|
|
val viewManager = LinearLayoutManager(requireContext()) |
|
|
|
|
this.statsAdapterRow = RowRepresentableAdapter( |
|
|
|
|
this |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
recyclerView.apply { |
|
|
|
|
setHasFixedSize(true) |
|
|
|
|
layoutManager = viewManager |
|
|
|
|
adapter = statsAdapterRow |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// this.launchStatComputation() |
|
|
|
|
this.launchStatComputation() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private fun launchStatComputation() { |
|
|
|
|
|
|
|
|
|
var results = listOf<ComputedResults>() |
|
|
|
|
|
|
|
|
|
GlobalScope.launch { |
|
|
|
|
runBlocking { |
|
|
|
|
|
|
|
|
|
val allSessions = getRealm().where(Session::class.java).findAll() |
|
|
|
|
val realm = Realm.getDefaultInstance() |
|
|
|
|
val allSessions = realm.where(Session::class.java).findAll() |
|
|
|
|
val cgSessions = mutableListOf<Session>() |
|
|
|
|
val tSessions = mutableListOf<Session>() |
|
|
|
|
|
|
|
|
|
@ -101,6 +78,16 @@ class StatsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource { |
|
|
|
|
results = Calculator.computeGroups(listOf(allSessionGroup, cgSessionGroup, tSessionGroup), Calculator.Options()) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
this.statsAdapterRow = RowRepresentableAdapter(StatsDataSource(results)) |
|
|
|
|
|
|
|
|
|
val viewManager = LinearLayoutManager(requireContext()) |
|
|
|
|
|
|
|
|
|
recyclerView.apply { |
|
|
|
|
setHasFixedSize(true) |
|
|
|
|
layoutManager = viewManager |
|
|
|
|
adapter = statsAdapterRow |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |