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.RowViewType
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.util.NULL_TEXT
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)
)
)
rows.add(SeparatorRowRepresentable())
rows.add(SeparatorRow())
}
SessionState.PAUSED -> {
rows.add(
@ -594,7 +594,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
computedStat = ComputedStat(Stat.NETRESULT, result?.net ?: 0.0, currency)
)
)
rows.add(SeparatorRowRepresentable())
rows.add(SeparatorRow())
}
SessionState.FINISHED -> {
rows.add(
@ -621,7 +621,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
// )
// )
// }
rows.add(SeparatorRowRepresentable())
rows.add(SeparatorRow())
}
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.view.RowRepresentable
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.*
class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate {
@ -28,7 +28,7 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS
val rowRepresentation : List<RowRepresentable> by lazy {
val rows = ArrayList<RowRepresentable>()
rows.addAll(mostUsedCurrencies)
rows.add(SeparatorRowRepresentable())
rows.add(SeparatorRow())
rows.addAll(availableCurrencies)
rows
}

@ -10,7 +10,7 @@ import kotlinx.android.synthetic.main.fragment_stats.*
import kotlinx.coroutines.*
import net.pokeranalytics.android.R
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.ui.activity.StatisticDetailsActivity
import net.pokeranalytics.android.ui.adapter.DisplayDescriptor
@ -36,88 +36,88 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
private var stringCashGame = ""
private var stringTournament = ""
private lateinit var statsAdapter: RowRepresentableAdapter
private var report: Report? = null
companion object {
/**
* Create new instance
*/
fun newInstance(): StatsFragment {
val fragment = StatsFragment()
val bundle = Bundle()
fragment.arguments = bundle
return fragment
}
}
// Life Cycle
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?) {
super.onViewCreated(view, savedInstanceState)
initData()
initUI()
launchStatComputation()
}
// Row Representable DS
override fun adapterRows(): List<RowRepresentable>? {
return this.rowRepresentables
}
override fun contentDescriptorForRow(row: RowRepresentable): DisplayDescriptor? {
val dc = DisplayDescriptor()
dc.textFormat = TextFormat(NULL_TEXT)
if (row is StatRepresentable) {
context?.let { context ->
row.computedStat?.let {
dc.textFormat = it.format(context)
}
}
}
return dc
}
override fun statFormatForRow(row: RowRepresentable): TextFormat {
if (row is StatRepresentable) {
context?.let { context ->
row.computedStat?.let { return it.format(context) }
}
}
return TextFormat(NULL_TEXT)
}
override fun onResume() {
super.onResume()
statsAdapter.notifyDataSetChanged()
}
// Override
override fun sessionsChanged() {
this.launchStatComputation()
this.statsAdapter.notifyDataSetChanged()
}
// Business
/**
* Init data
*/
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)
}
private lateinit var statsAdapter: RowRepresentableAdapter
private var report : Report? = null
companion object {
/**
* Create new instance
*/
fun newInstance(): StatsFragment {
val fragment = StatsFragment()
val bundle = Bundle()
fragment.arguments = bundle
return fragment
}
}
// Life Cycle
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?) {
super.onViewCreated(view, savedInstanceState)
initData()
initUI()
launchStatComputation()
}
// Row Representable DS
override fun adapterRows(): List<RowRepresentable>? {
return this.rowRepresentables
}
override fun contentDescriptorForRow(row: RowRepresentable): DisplayDescriptor? {
val dc = DisplayDescriptor()
dc.textFormat = TextFormat(NULL_TEXT)
if (row is StatRow) {
context?.let { context ->
row.computedStat?.let {
dc.textFormat = it.format(context)
}
}
}
return dc
}
override fun statFormatForRow(row: RowRepresentable): TextFormat {
if (row is StatRow) {
context?.let { context ->
row.computedStat?.let { return it.format(context) }
}
}
return TextFormat(NULL_TEXT)
}
override fun onResume() {
super.onResume()
statsAdapter.notifyDataSetChanged()
}
// Override
override fun sessionsChanged() {
this.launchStatComputation()
this.statsAdapter.notifyDataSetChanged()
}
// Business
/**
* Init data
*/
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)
}
/**
* Init UI
@ -207,12 +207,12 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
val rows: ArrayList<RowRepresentable> = ArrayList()
report.results.forEach { result ->
rows.add(CustomizableRowRepresentable(title = result.group.name))
result.group.stats?.forEach { stat ->
rows.add(StatRepresentable(stat, result.computedStat(stat), result.group.name))
}
}
report.results.forEach { result ->
rows.add(CustomizableRowRepresentable(title = result.group.name))
result.group.stats?.forEach { stat ->
rows.add(StatRow(stat, result.computedStat(stat), result.group.name))
}
}
return rows
}
@ -221,7 +221,7 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
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
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_transaction.view.*
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.Transaction
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
}

@ -6,6 +6,6 @@ import net.pokeranalytics.android.ui.view.RowViewType
/**
* 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
}

@ -68,7 +68,7 @@ enum class SessionRow : RowRepresentable {
POSITION,
PLAYERS,
TIPS,
SeparatorRowRepresentable(),
SeparatorRow(),
GAME,
INITIAL_BUY_IN,
LOCATION,
@ -77,7 +77,7 @@ enum class SessionRow : RowRepresentable {
TOURNAMENT_TYPE,
TOURNAMENT_NAME,
TOURNAMENT_FEATURE,
SeparatorRowRepresentable(),
SeparatorRow(),
START_DATE,
END_DATE,
BREAK_TIME,
@ -98,7 +98,7 @@ enum class SessionRow : RowRepresentable {
CASHED_OUT,
BUY_IN,
TIPS,
SeparatorRowRepresentable(),
SeparatorRow(),
GAME,
BLINDS,
LOCATION,
@ -112,7 +112,7 @@ enum class SessionRow : RowRepresentable {
} else {
arrayListOf(
NET_RESULT,
SeparatorRowRepresentable(),
SeparatorRow(),
GAME,
BLINDS,
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.Stat
@ -6,7 +6,7 @@ import net.pokeranalytics.android.ui.view.RowRepresentable
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 computedStat: ComputedStat? = computedStat
Loading…
Cancel
Save