parent
2104a9634d
commit
f6bbffedba
@ -0,0 +1,18 @@ |
|||||||
|
package net.pokeranalytics.android.model |
||||||
|
|
||||||
|
import net.pokeranalytics.android.calculus.ComputedStat |
||||||
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||||
|
import net.pokeranalytics.android.ui.view.RowViewType |
||||||
|
|
||||||
|
|
||||||
|
class StatRepresentable(stat: ComputedStat) : RowRepresentable { |
||||||
|
|
||||||
|
var computedStat: ComputedStat = stat |
||||||
|
|
||||||
|
override val viewType: Int |
||||||
|
get() = RowViewType.STAT.ordinal |
||||||
|
|
||||||
|
override val resId: Int? |
||||||
|
get() = this.computedStat.stat.resId |
||||||
|
|
||||||
|
} |
||||||
@ -1,37 +0,0 @@ |
|||||||
package net.pokeranalytics.android.ui.datasource |
|
||||||
|
|
||||||
import net.pokeranalytics.android.calculus.ComputedResults |
|
||||||
import net.pokeranalytics.android.calculus.ComputedStat |
|
||||||
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
||||||
import net.pokeranalytics.android.ui.view.RowViewType |
|
||||||
|
|
||||||
|
|
||||||
class StatRepresentable(stat: ComputedStat) : RowRepresentable { |
|
||||||
|
|
||||||
var computedStat: ComputedStat = stat |
|
||||||
|
|
||||||
override val viewType: Int |
|
||||||
get() = RowViewType.STAT.ordinal |
|
||||||
|
|
||||||
override val resId: Int? |
|
||||||
get() = this.computedStat.stat.resId |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
class StatsDataSource(results: List<ComputedResults>) { |
|
||||||
|
|
||||||
var results: List<ComputedResults> = results |
|
||||||
var rows: List<RowRepresentable> = listOf() |
|
||||||
|
|
||||||
init { |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
fun numberOfRows(): Int { |
|
||||||
return 0 |
|
||||||
// return this.results.fold(0) { acc, computedResults -> |
|
||||||
// return acc + computedResults.numberOfStats() |
|
||||||
// } |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
@ -0,0 +1,35 @@ |
|||||||
|
package net.pokeranalytics.android.ui.view.rowrepresentable |
||||||
|
|
||||||
|
import net.pokeranalytics.android.R |
||||||
|
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType |
||||||
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||||
|
import net.pokeranalytics.android.ui.view.RowViewType |
||||||
|
|
||||||
|
|
||||||
|
enum class BankrollRow : RowRepresentable { |
||||||
|
LIVE; |
||||||
|
|
||||||
|
override val resId: Int? |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
LIVE -> R.string.live |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override val viewType: Int |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
LIVE -> RowViewType.TITLE_SWITCH.ordinal |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override val bottomSheetType: BottomSheetType |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
LIVE -> BottomSheetType.NONE |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override var displayHeader: Boolean = false |
||||||
|
override var headerValues: ArrayList<String> = ArrayList() |
||||||
|
} |
||||||
@ -0,0 +1,34 @@ |
|||||||
|
package net.pokeranalytics.android.ui.view.rowrepresentable |
||||||
|
|
||||||
|
import net.pokeranalytics.android.R |
||||||
|
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType |
||||||
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||||
|
import net.pokeranalytics.android.ui.view.RowViewType |
||||||
|
|
||||||
|
enum class GameRow : RowRepresentable { |
||||||
|
SHORT_NAME; |
||||||
|
|
||||||
|
override val resId: Int? |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
SHORT_NAME -> R.string.short_name |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override val viewType: Int |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
SHORT_NAME -> RowViewType.TITLE_VALUE.ordinal |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override val bottomSheetType: BottomSheetType |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
SHORT_NAME -> BottomSheetType.EDIT_TEXT |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override var displayHeader: Boolean = false |
||||||
|
override var headerValues: ArrayList<String> = ArrayList() |
||||||
|
} |
||||||
@ -0,0 +1,35 @@ |
|||||||
|
package net.pokeranalytics.android.ui.view.rowrepresentable |
||||||
|
|
||||||
|
import net.pokeranalytics.android.R |
||||||
|
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType |
||||||
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||||
|
import net.pokeranalytics.android.ui.view.RowViewType |
||||||
|
|
||||||
|
|
||||||
|
enum class LocationRow : RowRepresentable { |
||||||
|
LOCATION_STATUS; |
||||||
|
|
||||||
|
override val resId: Int? |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
LOCATION_STATUS -> R.string.short_name |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override val viewType: Int |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
LOCATION_STATUS -> RowViewType.TITLE.ordinal |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override val bottomSheetType: BottomSheetType |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
LOCATION_STATUS -> BottomSheetType.NONE |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override var displayHeader: Boolean = false |
||||||
|
override var headerValues: ArrayList<String> = ArrayList() |
||||||
|
} |
||||||
@ -0,0 +1,132 @@ |
|||||||
|
package net.pokeranalytics.android.ui.view.rowrepresentable |
||||||
|
|
||||||
|
import net.pokeranalytics.android.R |
||||||
|
import net.pokeranalytics.android.model.extensions.SessionState |
||||||
|
import net.pokeranalytics.android.model.realm.Session |
||||||
|
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType |
||||||
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||||
|
import net.pokeranalytics.android.ui.view.RowViewType |
||||||
|
|
||||||
|
|
||||||
|
enum class SessionRow : RowRepresentable { |
||||||
|
|
||||||
|
PRIZE, |
||||||
|
CASHED_OUT, |
||||||
|
INITIAL_BUY_IN, |
||||||
|
BUY_IN, |
||||||
|
POSITION, |
||||||
|
PLAYERS, |
||||||
|
TIPS, |
||||||
|
|
||||||
|
GAME, |
||||||
|
BLINDS, |
||||||
|
LOCATION, |
||||||
|
BANKROLL, |
||||||
|
TABLE_SIZE, |
||||||
|
TOURNAMENT_TYPE, |
||||||
|
START_DATE, |
||||||
|
END_DATE, |
||||||
|
|
||||||
|
BREAK_TIME, |
||||||
|
COMMENT; |
||||||
|
|
||||||
|
companion object { |
||||||
|
/** |
||||||
|
* Return the rows to display for the current session state |
||||||
|
*/ |
||||||
|
fun getRows(type: Int, sessionState: SessionState): ArrayList<RowRepresentable> { |
||||||
|
when (type) { |
||||||
|
Session.TYPE_TOURNAMENT -> { |
||||||
|
return when (sessionState) { |
||||||
|
SessionState.PENDING -> { |
||||||
|
arrayListOf( |
||||||
|
GAME, INITIAL_BUY_IN, LOCATION, BANKROLL, TABLE_SIZE, TOURNAMENT_TYPE, |
||||||
|
START_DATE, END_DATE |
||||||
|
) |
||||||
|
} |
||||||
|
SessionState.STARTED, SessionState.PAUSED, SessionState.FINISHED -> { |
||||||
|
arrayListOf( |
||||||
|
PRIZE, BUY_IN, POSITION, PLAYERS, TIPS, |
||||||
|
GAME, INITIAL_BUY_IN, LOCATION, BANKROLL, TABLE_SIZE, TOURNAMENT_TYPE, |
||||||
|
START_DATE, END_DATE, BREAK_TIME, COMMENT |
||||||
|
) |
||||||
|
} |
||||||
|
else -> arrayListOf() |
||||||
|
} |
||||||
|
} |
||||||
|
Session.TYPE_GAME -> { |
||||||
|
return when (sessionState) { |
||||||
|
SessionState.PENDING -> { |
||||||
|
arrayListOf(GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE) |
||||||
|
} |
||||||
|
SessionState.STARTED, SessionState.PAUSED, SessionState.FINISHED -> { |
||||||
|
arrayListOf( |
||||||
|
CASHED_OUT, BUY_IN, TIPS, |
||||||
|
GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE, BREAK_TIME, COMMENT |
||||||
|
) |
||||||
|
} |
||||||
|
else -> arrayListOf() |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return arrayListOf() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override val needSeparator: Boolean |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
SessionRow.TIPS -> true |
||||||
|
else -> false |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override val resId: Int? |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
PRIZE -> R.string.prize |
||||||
|
POSITION -> R.string.position |
||||||
|
PLAYERS -> R.string.players |
||||||
|
CASHED_OUT -> R.string.cashed_out |
||||||
|
INITIAL_BUY_IN -> R.string.initial_stack |
||||||
|
BUY_IN -> R.string.buyin |
||||||
|
TIPS -> R.string.tips |
||||||
|
GAME -> R.string.game |
||||||
|
BLINDS -> R.string.blinds |
||||||
|
LOCATION -> R.string.location |
||||||
|
BANKROLL -> R.string.bankroll |
||||||
|
TABLE_SIZE -> R.string.table_size |
||||||
|
TOURNAMENT_TYPE -> R.string.tournament_type |
||||||
|
START_DATE -> R.string.start_date |
||||||
|
END_DATE -> R.string.end_date |
||||||
|
BREAK_TIME -> R.string.break_time |
||||||
|
COMMENT -> R.string.comment |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override val viewType: Int |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
PRIZE, POSITION, PLAYERS, CASHED_OUT, INITIAL_BUY_IN, BUY_IN, TIPS, |
||||||
|
GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, COMMENT, |
||||||
|
TOURNAMENT_TYPE, START_DATE, END_DATE, BREAK_TIME -> RowViewType.TITLE_VALUE.ordinal |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override val bottomSheetType: BottomSheetType |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
CASHED_OUT, INITIAL_BUY_IN, BREAK_TIME, POSITION, PLAYERS, PRIZE -> BottomSheetType.EDIT_TEXT |
||||||
|
BUY_IN, TIPS -> BottomSheetType.SUM |
||||||
|
BLINDS -> BottomSheetType.DOUBLE_EDIT_TEXT |
||||||
|
GAME -> BottomSheetType.LIST_GAME |
||||||
|
LOCATION, BANKROLL, TOURNAMENT_TYPE -> BottomSheetType.LIST |
||||||
|
TABLE_SIZE -> BottomSheetType.GRID |
||||||
|
COMMENT -> BottomSheetType.EDIT_TEXT |
||||||
|
else -> BottomSheetType.NONE |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override var displayHeader: Boolean = false |
||||||
|
override var headerValues: ArrayList<String> = ArrayList() |
||||||
|
} |
||||||
@ -0,0 +1,45 @@ |
|||||||
|
package net.pokeranalytics.android.ui.view.rowrepresentable |
||||||
|
|
||||||
|
import net.pokeranalytics.android.R |
||||||
|
import net.pokeranalytics.android.model.LiveData |
||||||
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||||
|
import net.pokeranalytics.android.ui.view.RowViewType |
||||||
|
|
||||||
|
|
||||||
|
enum class SettingRow : RowRepresentable { |
||||||
|
GDPR, |
||||||
|
BANKROLL, |
||||||
|
GAME, |
||||||
|
LOCATION, |
||||||
|
TOURNAMENT_FEATURE, |
||||||
|
TRANSACTION_TYPE; |
||||||
|
|
||||||
|
override val resId: Int? |
||||||
|
get() { |
||||||
|
this.relatedResultsRepresentable?.let { |
||||||
|
return it.resId |
||||||
|
} ?: run { |
||||||
|
return when (this) { |
||||||
|
GDPR -> R.string.gdpr |
||||||
|
else -> null |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override val viewType: Int = RowViewType.TITLE.ordinal |
||||||
|
|
||||||
|
override val relatedResultsRepresentable: LiveData? |
||||||
|
get() { |
||||||
|
return when (this) { |
||||||
|
BANKROLL -> LiveData.BANKROLL |
||||||
|
GAME -> LiveData.GAME |
||||||
|
LOCATION -> LiveData.LOCATION |
||||||
|
TOURNAMENT_FEATURE -> LiveData.TOURNAMENT_FEATURE |
||||||
|
TRANSACTION_TYPE -> LiveData.TRANSACTION_TYPE |
||||||
|
else -> null |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override var displayHeader: Boolean = false |
||||||
|
override var headerValues: ArrayList<String> = ArrayList() |
||||||
|
} |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
package net.pokeranalytics.android.ui.view.rowrepresentable |
||||||
|
|
||||||
|
import net.pokeranalytics.android.R |
||||||
|
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType |
||||||
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||||
|
import net.pokeranalytics.android.ui.view.RowViewType |
||||||
|
|
||||||
|
|
||||||
|
enum class SimpleRow : RowRepresentable { |
||||||
|
NAME; |
||||||
|
|
||||||
|
override val resId: Int? = R.string.name |
||||||
|
override val viewType: Int = RowViewType.TITLE_VALUE.ordinal |
||||||
|
override val bottomSheetType: BottomSheetType = BottomSheetType.EDIT_TEXT |
||||||
|
override var displayHeader: Boolean = false |
||||||
|
override var headerValues: ArrayList<String> = ArrayList() |
||||||
|
} |
||||||
@ -0,0 +1,7 @@ |
|||||||
|
package net.pokeranalytics.android.ui.view.rowrepresentable |
||||||
|
|
||||||
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||||
|
|
||||||
|
|
||||||
|
enum class TournamentFeatureRow : RowRepresentable { |
||||||
|
} |
||||||
@ -0,0 +1,7 @@ |
|||||||
|
package net.pokeranalytics.android.ui.view.rowrepresentable |
||||||
|
|
||||||
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||||
|
|
||||||
|
|
||||||
|
enum class TransactionTypeRow : RowRepresentable { |
||||||
|
} |
||||||
Loading…
Reference in new issue