Adds number of tables row for online cash game

blinds
Laurent 3 years ago
parent 4a4943864b
commit e40c5c0cd6
  1. 8
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  2. 10
      app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt
  3. 28
      app/src/main/java/net/pokeranalytics/android/ui/view/rows/SessionPropertiesRow.kt

@ -286,6 +286,10 @@ open class Session : RealmObject(), Savable, RowUpdatable, RowRepresentable, Tim
// The number of tables played at the same time
var numberOfTables: Int = 1
set(value) {
field = value
this.computeStats()
}
// The hand histories of the session
@LinkingObjects("session")
@ -490,7 +494,7 @@ open class Session : RealmObject(), Savable, RowUpdatable, RowRepresentable, Tim
val tableSize = this.tableSize ?: 9 // 9 is the default table size if null
val config = UserConfig.getConfiguration(this.realm)
val playerHandsPerHour = if (this.isLive) config.liveDealtHandsPerHour else config.onlineDealtHandsPerHour
return playerHandsPerHour / tableSize.toDouble()
return this.numberOfTables * playerHandsPerHour / tableSize.toDouble()
}
val hourlyRate: Double
@ -871,6 +875,7 @@ open class Session : RealmObject(), Savable, RowUpdatable, RowRepresentable, Tim
}
}
SessionPropertiesRow.HANDS_COUNT -> handsCount = (value as Double?)?.toInt()
SessionPropertiesRow.NUMBER_OF_TABLES -> this.numberOfTables = (value as Double?)?.toInt() ?: 1
is CustomField -> {
customFieldEntries.filter { it.customField?.id == row.id }.let {
customFieldEntries.removeAll(it)
@ -1046,6 +1051,7 @@ open class Session : RealmObject(), Savable, RowUpdatable, RowRepresentable, Tim
SessionPropertiesRow.TOURNAMENT_NAME -> tournamentName?.name ?: NULL_TEXT
SessionPropertiesRow.HANDS -> this.handHistories?.size.toString()
SessionPropertiesRow.HANDS_COUNT -> this.handsCountFormatted(context)
SessionPropertiesRow.NUMBER_OF_TABLES -> this.numberOfTables.toString()
is CustomField -> {
customFieldEntries.find { it.customField?.id == row.id }?.let { customFieldEntry ->
return customFieldEntry.getFormattedValue(currency)

@ -206,9 +206,10 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr
currentSession.location = realmLocation
}
updateSessionUI(true)
this.updateSessionUI(true)
}
}
sessionHasBeenUserCustomized = false
}
}
@ -264,7 +265,7 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr
when (row) {
SessionPropertiesRow.CASHED_OUT, SessionPropertiesRow.PRIZE, SessionPropertiesRow.NET_RESULT,
SessionPropertiesRow.BUY_IN, SessionPropertiesRow.TIPS, SessionPropertiesRow.START_DATE,
SessionPropertiesRow.END_DATE, SessionPropertiesRow.BREAK_TIME -> updateSessionUI()
SessionPropertiesRow.END_DATE, SessionPropertiesRow.BREAK_TIME, SessionPropertiesRow.NUMBER_OF_TABLES -> updateSessionUI()
SessionPropertiesRow.BANKROLL -> {
updateSessionUI()
updateMenuUI() // result capture method
@ -626,6 +627,11 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr
"defaultValue" to session.handsCount
)
)
SessionPropertiesRow.NUMBER_OF_TABLES -> row.editingDescriptors(
mapOf(
"defaultValue" to session.numberOfTables
)
)
SessionPropertiesRow.TIPS -> row.editingDescriptors(
mapOf(
"sb" to session.cgBiggestBet?.round(),

@ -35,6 +35,7 @@ enum class SessionPropertiesRow : RowRepresentable {
TOURNAMENT_TYPE,
TOURNAMENT_NAME,
TOURNAMENT_FEATURE,
NUMBER_OF_TABLES,
START_DATE,
END_DATE,
@ -104,7 +105,11 @@ enum class SessionPropertiesRow : RowRepresentable {
Session.Type.CASH_GAME.ordinal -> {
when (state) {
SessionState.PENDING, SessionState.PLANNED -> {
return arrayListOf(GAME, STAKES, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE)
return if (session.isLive) {
arrayListOf(GAME, STAKES, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE)
} else {
arrayListOf(GAME, STAKES, LOCATION, BANKROLL, TABLE_SIZE, NUMBER_OF_TABLES, START_DATE, END_DATE)
}
}
SessionState.STARTED, SessionState.PAUSED, SessionState.FINISHED -> {
@ -132,18 +137,28 @@ enum class SessionPropertiesRow : RowRepresentable {
fields.add(HANDS)
}
fields.add(SeparatorRow())
fields.addAll(listOf(
fields.addAll(
listOf(
GAME,
STAKES,
LOCATION,
BANKROLL,
TABLE_SIZE,
TABLE_SIZE
)
)
if (!session.isLive) {
fields.add(NUMBER_OF_TABLES)
}
fields.addAll(
listOf(
SeparatorRow(),
START_DATE,
END_DATE,
BREAK_TIME
)
)
if (state == SessionState.FINISHED) {
fields.add(HANDS_COUNT)
}
@ -175,6 +190,7 @@ enum class SessionPropertiesRow : RowRepresentable {
TOURNAMENT_TYPE -> R.string.tournament_type
TOURNAMENT_NAME -> R.string.tournament_name
TOURNAMENT_FEATURE -> R.string.tournament_feature
NUMBER_OF_TABLES -> R.string.number_of_tables
START_DATE -> R.string.start_date
END_DATE -> R.string.end_date
BREAK_TIME -> R.string.break_time
@ -190,7 +206,7 @@ enum class SessionPropertiesRow : RowRepresentable {
NET_RESULT, PRIZE, POSITION, PLAYERS, CASHED_OUT, INITIAL_BUY_IN, BUY_IN, TIPS,
GAME, STAKES, LOCATION, BANKROLL, TABLE_SIZE, COMMENT,
TOURNAMENT_TYPE, TOURNAMENT_NAME, TOURNAMENT_FEATURE, HANDS,
START_DATE, END_DATE, BREAK_TIME, HANDS_COUNT -> RowViewType.TITLE_VALUE.ordinal
START_DATE, END_DATE, BREAK_TIME, HANDS_COUNT, NUMBER_OF_TABLES -> RowViewType.TITLE_VALUE.ordinal
}
}
@ -198,7 +214,7 @@ enum class SessionPropertiesRow : RowRepresentable {
get() {
return when (this) {
NET_RESULT, CASHED_OUT, INITIAL_BUY_IN, BREAK_TIME, POSITION, PLAYERS,
PRIZE, HANDS_COUNT -> BottomSheetType.NUMERIC_TEXT
PRIZE, HANDS_COUNT, NUMBER_OF_TABLES -> BottomSheetType.NUMERIC_TEXT
BUY_IN, TIPS -> BottomSheetType.SUM
STAKES -> BottomSheetType.CASH_GAME_STAKES
GAME -> BottomSheetType.LIST_GAME
@ -278,7 +294,7 @@ enum class SessionPropertiesRow : RowRepresentable {
)
)
}
HANDS_COUNT -> {
HANDS_COUNT, NUMBER_OF_TABLES -> {
arrayListOf(
RowRepresentableEditDescriptor(inputType = InputType.TYPE_CLASS_NUMBER
or InputType.TYPE_NUMBER_FLAG_SIGNED)

Loading…
Cancel
Save