|
|
|
|
@ -14,19 +14,18 @@ import net.pokeranalytics.android.model.StatRepresentable |
|
|
|
|
import net.pokeranalytics.android.model.realm.Session |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.DisplayDescriptor |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource |
|
|
|
|
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment |
|
|
|
|
import net.pokeranalytics.android.ui.fragment.components.SessionObserverFragment |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowViewType |
|
|
|
|
import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentable |
|
|
|
|
import net.pokeranalytics.android.util.NULL_TEXT |
|
|
|
|
|
|
|
|
|
class StatsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource { |
|
|
|
|
class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSource { |
|
|
|
|
|
|
|
|
|
private var rowRepresentables: ArrayList<RowRepresentable> = ArrayList<RowRepresentable>() |
|
|
|
|
|
|
|
|
|
private lateinit var statsAdapterRow: RowRepresentableAdapter |
|
|
|
|
private lateinit var statsAdapter: RowRepresentableAdapter |
|
|
|
|
|
|
|
|
|
companion object { |
|
|
|
|
|
|
|
|
|
@ -41,7 +40,7 @@ class StatsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Life Cycle |
|
|
|
|
|
|
|
|
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { |
|
|
|
|
return inflater.inflate(R.layout.fragment_stats, container, false) |
|
|
|
|
@ -80,6 +79,15 @@ class StatsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource |
|
|
|
|
return TextFormat(NULL_TEXT) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Override |
|
|
|
|
|
|
|
|
|
override fun sessionsChanged() { |
|
|
|
|
this.launchStatComputation() |
|
|
|
|
this.statsAdapter.notifyDataSetChanged() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Business |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Init data |
|
|
|
|
*/ |
|
|
|
|
@ -94,11 +102,10 @@ class StatsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource |
|
|
|
|
runBlocking { |
|
|
|
|
|
|
|
|
|
val realm = Realm.getDefaultInstance() |
|
|
|
|
val allSessions = realm.where(Session::class.java).findAll() |
|
|
|
|
val cgSessions = mutableListOf<Session>() |
|
|
|
|
val tSessions = mutableListOf<Session>() |
|
|
|
|
|
|
|
|
|
allSessions.forEach { session -> |
|
|
|
|
super.sessions.forEach { session -> |
|
|
|
|
if (session.isCashGame()) { |
|
|
|
|
cgSessions.add(session) |
|
|
|
|
} else { |
|
|
|
|
@ -107,7 +114,7 @@ class StatsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val allStats: List<Stat> = listOf(Stat.NETRESULT, Stat.HOURLY_RATE, Stat.AVERAGE, Stat.NUMBER_OF_GAMES, Stat.AVERAGE_DURATION, Stat.DURATION) |
|
|
|
|
val allSessionGroup = SessionGroup(getString(R.string.all), allSessions, allStats) |
|
|
|
|
val allSessionGroup = SessionGroup(getString(R.string.all), super.sessions, 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 tStats: List<Stat> = listOf(Stat.NETRESULT, Stat.HOURLY_RATE, Stat.ROI, Stat.WIN_RATIO, Stat.NUMBER_OF_GAMES, Stat.AVERAGE_BUYIN) |
|
|
|
|
@ -117,18 +124,16 @@ class StatsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.rowRepresentables = this.convertResultsIntoRepresentables(results) |
|
|
|
|
|
|
|
|
|
this.statsAdapterRow = RowRepresentableAdapter(this) // StatsAdapter(this, null) |
|
|
|
|
|
|
|
|
|
this.statsAdapter = RowRepresentableAdapter(this) // StatsAdapter(this, null) |
|
|
|
|
|
|
|
|
|
val viewManager = LinearLayoutManager(requireContext()) |
|
|
|
|
|
|
|
|
|
recyclerView.apply { |
|
|
|
|
setHasFixedSize(true) |
|
|
|
|
layoutManager = viewManager |
|
|
|
|
adapter = statsAdapterRow |
|
|
|
|
adapter = statsAdapter |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|