feature/top10
Laurent 7 years ago
commit bb59851522
  1. 8
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  2. 4
      app/src/main/java/net/pokeranalytics/android/ui/fragment/CurrenciesFragment.kt
  3. 180
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt
  4. 4
      app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt
  5. 2
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SeparatorRow.kt
  6. 8
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SessionRow.kt
  7. 4
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/StatRow.kt

@ -30,7 +30,7 @@ import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
import net.pokeranalytics.android.ui.view.RowViewType import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.view.rowrepresentable.CustomizableRowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.CustomizableRowRepresentable
import net.pokeranalytics.android.ui.view.rowrepresentable.SeparatorRowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.SeparatorRow
import net.pokeranalytics.android.ui.view.rowrepresentable.SessionRow import net.pokeranalytics.android.ui.view.rowrepresentable.SessionRow
import net.pokeranalytics.android.util.NULL_TEXT import net.pokeranalytics.android.util.NULL_TEXT
import net.pokeranalytics.android.util.UserDefaults import net.pokeranalytics.android.util.UserDefaults
@ -584,7 +584,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
computedStat = ComputedStat(Stat.NETRESULT, result?.net ?: 0.0, currency) computedStat = ComputedStat(Stat.NETRESULT, result?.net ?: 0.0, currency)
) )
) )
rows.add(SeparatorRowRepresentable()) rows.add(SeparatorRow())
} }
SessionState.PAUSED -> { SessionState.PAUSED -> {
rows.add( rows.add(
@ -594,7 +594,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
computedStat = ComputedStat(Stat.NETRESULT, result?.net ?: 0.0, currency) computedStat = ComputedStat(Stat.NETRESULT, result?.net ?: 0.0, currency)
) )
) )
rows.add(SeparatorRowRepresentable()) rows.add(SeparatorRow())
} }
SessionState.FINISHED -> { SessionState.FINISHED -> {
rows.add( rows.add(
@ -621,7 +621,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
// ) // )
// ) // )
// } // }
rows.add(SeparatorRowRepresentable()) rows.add(SeparatorRow())
} }
else -> { else -> {
} }

@ -16,7 +16,7 @@ import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.view.rowrepresentable.SeparatorRowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.SeparatorRow
import java.util.* import java.util.*
class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate {
@ -28,7 +28,7 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS
val rowRepresentation : List<RowRepresentable> by lazy { val rowRepresentation : List<RowRepresentable> by lazy {
val rows = ArrayList<RowRepresentable>() val rows = ArrayList<RowRepresentable>()
rows.addAll(mostUsedCurrencies) rows.addAll(mostUsedCurrencies)
rows.add(SeparatorRowRepresentable()) rows.add(SeparatorRow())
rows.addAll(availableCurrencies) rows.addAll(availableCurrencies)
rows rows
} }

@ -10,7 +10,7 @@ import kotlinx.android.synthetic.main.fragment_stats.*
import kotlinx.coroutines.* import kotlinx.coroutines.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.* import net.pokeranalytics.android.calculus.*
import net.pokeranalytics.android.model.StatRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.StatRow
import net.pokeranalytics.android.model.filter.QueryCondition import net.pokeranalytics.android.model.filter.QueryCondition
import net.pokeranalytics.android.ui.activity.StatisticDetailsActivity import net.pokeranalytics.android.ui.activity.StatisticDetailsActivity
import net.pokeranalytics.android.ui.adapter.DisplayDescriptor import net.pokeranalytics.android.ui.adapter.DisplayDescriptor
@ -36,88 +36,88 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
private var stringCashGame = "" private var stringCashGame = ""
private var stringTournament = "" private var stringTournament = ""
private lateinit var statsAdapter: RowRepresentableAdapter private lateinit var statsAdapter: RowRepresentableAdapter
private var report: Report? = null private var report : Report? = null
companion object { companion object {
/** /**
* Create new instance * Create new instance
*/ */
fun newInstance(): StatsFragment { fun newInstance(): StatsFragment {
val fragment = StatsFragment() val fragment = StatsFragment()
val bundle = Bundle() val bundle = Bundle()
fragment.arguments = bundle fragment.arguments = bundle
return fragment return fragment
} }
} }
// Life Cycle // Life Cycle
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_stats, container, false) return inflater.inflate(R.layout.fragment_stats, container, false)
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
initData() initData()
initUI() initUI()
launchStatComputation() launchStatComputation()
} }
// Row Representable DS // Row Representable DS
override fun adapterRows(): List<RowRepresentable>? { override fun adapterRows(): List<RowRepresentable>? {
return this.rowRepresentables return this.rowRepresentables
} }
override fun contentDescriptorForRow(row: RowRepresentable): DisplayDescriptor? { override fun contentDescriptorForRow(row: RowRepresentable): DisplayDescriptor? {
val dc = DisplayDescriptor() val dc = DisplayDescriptor()
dc.textFormat = TextFormat(NULL_TEXT) dc.textFormat = TextFormat(NULL_TEXT)
if (row is StatRepresentable) { if (row is StatRow) {
context?.let { context -> context?.let { context ->
row.computedStat?.let { row.computedStat?.let {
dc.textFormat = it.format(context) dc.textFormat = it.format(context)
} }
} }
} }
return dc return dc
} }
override fun statFormatForRow(row: RowRepresentable): TextFormat { override fun statFormatForRow(row: RowRepresentable): TextFormat {
if (row is StatRepresentable) { if (row is StatRow) {
context?.let { context -> context?.let { context ->
row.computedStat?.let { return it.format(context) } row.computedStat?.let { return it.format(context) }
} }
} }
return TextFormat(NULL_TEXT) return TextFormat(NULL_TEXT)
} }
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
statsAdapter.notifyDataSetChanged() statsAdapter.notifyDataSetChanged()
} }
// Override // Override
override fun sessionsChanged() { override fun sessionsChanged() {
this.launchStatComputation() this.launchStatComputation()
this.statsAdapter.notifyDataSetChanged() this.statsAdapter.notifyDataSetChanged()
} }
// Business // Business
/** /**
* Init data * Init data
*/ */
private fun initData() { private fun initData() {
this.stringAll = getString(R.string.all) this.stringAll = getString(R.string.all)
this.stringCashGame = getString(R.string.cash_game) this.stringCashGame = getString(R.string.cash_game)
this.stringTournament = getString(R.string.tournament) this.stringTournament = getString(R.string.tournament)
this.statsAdapter = RowRepresentableAdapter(this, this) this.statsAdapter = RowRepresentableAdapter(this, this)
} }
/** /**
* Init UI * Init UI
@ -207,12 +207,12 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
val rows: ArrayList<RowRepresentable> = ArrayList() val rows: ArrayList<RowRepresentable> = ArrayList()
report.results.forEach { result -> report.results.forEach { result ->
rows.add(CustomizableRowRepresentable(title = result.group.name)) rows.add(CustomizableRowRepresentable(title = result.group.name))
result.group.stats?.forEach { stat -> result.group.stats?.forEach { stat ->
rows.add(StatRepresentable(stat, result.computedStat(stat), result.group.name)) rows.add(StatRow(stat, result.computedStat(stat), result.group.name))
} }
} }
return rows return rows
} }
@ -221,7 +221,7 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
if (row is StatRepresentable && row.stat.hasEvolutionGraph) { if (row is StatRow && row.stat.hasEvolutionGraph) {
// filter groups // filter groups
val groupResults = this.report?.results?.filter { val groupResults = this.report?.results?.filter {

@ -13,7 +13,7 @@ import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.row_history_session.view.* import kotlinx.android.synthetic.main.row_history_session.view.*
import kotlinx.android.synthetic.main.row_transaction.view.* import kotlinx.android.synthetic.main.row_transaction.view.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.StatRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.StatRow
import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.realm.Transaction import net.pokeranalytics.android.model.realm.Transaction
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
@ -236,7 +236,7 @@ enum class RowViewType(private var layoutRes: Int) {
} }
} }
if (row is StatRepresentable) { if (row is StatRow) {
itemView.findViewById<AppCompatImageView?>(R.id.nextArrow)?.isVisible = row.stat.hasEvolutionGraph itemView.findViewById<AppCompatImageView?>(R.id.nextArrow)?.isVisible = row.stat.hasEvolutionGraph
} }

@ -6,6 +6,6 @@ import net.pokeranalytics.android.ui.view.RowViewType
/** /**
* A class to display separator as row representable * A class to display separator as row representable
*/ */
class SeparatorRowRepresentable(customViewType: RowViewType? = RowViewType.SEPARATOR) : RowRepresentable { class SeparatorRow(customViewType: RowViewType? = RowViewType.SEPARATOR) : RowRepresentable {
override val viewType: Int = customViewType?.ordinal ?: RowViewType.SEPARATOR.ordinal override val viewType: Int = customViewType?.ordinal ?: RowViewType.SEPARATOR.ordinal
} }

@ -68,7 +68,7 @@ enum class SessionRow : RowRepresentable {
POSITION, POSITION,
PLAYERS, PLAYERS,
TIPS, TIPS,
SeparatorRowRepresentable(), SeparatorRow(),
GAME, GAME,
INITIAL_BUY_IN, INITIAL_BUY_IN,
LOCATION, LOCATION,
@ -77,7 +77,7 @@ enum class SessionRow : RowRepresentable {
TOURNAMENT_TYPE, TOURNAMENT_TYPE,
TOURNAMENT_NAME, TOURNAMENT_NAME,
TOURNAMENT_FEATURE, TOURNAMENT_FEATURE,
SeparatorRowRepresentable(), SeparatorRow(),
START_DATE, START_DATE,
END_DATE, END_DATE,
BREAK_TIME, BREAK_TIME,
@ -98,7 +98,7 @@ enum class SessionRow : RowRepresentable {
CASHED_OUT, CASHED_OUT,
BUY_IN, BUY_IN,
TIPS, TIPS,
SeparatorRowRepresentable(), SeparatorRow(),
GAME, GAME,
BLINDS, BLINDS,
LOCATION, LOCATION,
@ -112,7 +112,7 @@ enum class SessionRow : RowRepresentable {
} else { } else {
arrayListOf( arrayListOf(
NET_RESULT, NET_RESULT,
SeparatorRowRepresentable(), SeparatorRow(),
GAME, GAME,
BLINDS, BLINDS,
LOCATION, LOCATION,

@ -1,4 +1,4 @@
package net.pokeranalytics.android.model package net.pokeranalytics.android.ui.view.rowrepresentable
import net.pokeranalytics.android.calculus.ComputedStat import net.pokeranalytics.android.calculus.ComputedStat
import net.pokeranalytics.android.calculus.Stat import net.pokeranalytics.android.calculus.Stat
@ -6,7 +6,7 @@ import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType import net.pokeranalytics.android.ui.view.RowViewType
class StatRepresentable(stat: Stat, computedStat: ComputedStat?, groupName: String = "") : RowRepresentable { class StatRow(stat: Stat, computedStat: ComputedStat?, groupName: String = "") : RowRepresentable {
var stat: Stat = stat var stat: Stat = stat
var computedStat: ComputedStat? = computedStat var computedStat: ComputedStat? = computedStat
Loading…
Cancel
Save