diff --git a/app/src/main/java/net/pokeranalytics/android/model/handhistory/HandSetup.kt b/app/src/main/java/net/pokeranalytics/android/model/handhistory/HandSetup.kt index dba24761..81b32b3d 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/handhistory/HandSetup.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/handhistory/HandSetup.kt @@ -80,6 +80,12 @@ class HandSetup { this.blinds = session.cgBlinds this.ante = session.cgAnte this.tableSize = session.tableSize + + val blindValues = session.blindValues + if (blindValues.size > 2) { + this.straddlePositions = Position.positionsPerPlayers(10).drop(2).take(blindValues.size - 2).toMutableList() + } + } /*** diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt index 7c0c02b1..d1b2dedf 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt @@ -211,30 +211,32 @@ open class HandHistory : RealmObject(), Deletable, RowRepresentable, Filterable, this.actions.clear() - val blindValues = this.blindValues + var blindValues = this.blindValues if (blindValues.isNotEmpty()) { blindValues.forEachIndexed { index, blind -> val action = when(index) { 0 -> Action.Type.POST_SB 1 -> Action.Type.POST_BB - else -> Action.Type.STRADDLE + else -> null } - this.addAction(index, action, blind) + action?.let { this.addAction(index, action, blind) } } } else { this.addAction(0, Action.Type.POST_SB, this.oldSmallBlind) this.addAction(1, Action.Type.POST_BB, this.oldBigBlind) } -// var lastStraddler: Int? = null - + blindValues = blindValues.drop(2) val positions = Position.positionsPerPlayers(this.numberOfPlayers) - handSetup.straddlePositions.forEach { position -> // position are sorted here + handSetup.straddlePositions.forEachIndexed { index, position -> // position are sorted here val positionIndex = positions.indexOf(position) - this.addAction(positionIndex, Action.Type.STRADDLE) -// lastStraddler = positionIndex + val amount = if (index < blindValues.size) { blindValues[index] } else null + this.addAction(positionIndex, Action.Type.STRADDLE, amount) } +// var lastStraddler: Int? = null + + // val totalActions = this.actions.size // val startingPosition = lastStraddler?.let { it + 1 } ?: totalActions diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/EditorViewModel.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/EditorViewModel.kt index 02a39844..11f7b6ff 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/EditorViewModel.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/EditorViewModel.kt @@ -62,6 +62,10 @@ class EditorViewModel : ViewModel(), RowRepresentableDataSource, CardCentralizer * The hand setup */ private var handSetup: HandSetup = HandSetup() + set(value) { + field = value + this.straddlePositions.addAll(value.straddlePositions) + } /*** * Indicates whether the HH is new or not @@ -902,8 +906,8 @@ class EditorViewModel : ViewModel(), RowRepresentableDataSource, CardCentralizer fun changeStraddleSelection(positions: LinkedHashSet) { if (positions.isEmpty()) { - this.firstStraddlePosition = null - this.handSetup.clearStraddles() + this.firstStraddlePosition = null + this.handSetup.clearStraddles() } else { if (this.firstStraddlePosition == null) {