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 5120f0e1..5915adf8 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 @@ -1,6 +1,7 @@ package net.pokeranalytics.android.model.handhistory import net.pokeranalytics.android.model.realm.Game +import timber.log.Timber import java.util.* class HandSetup { @@ -17,7 +18,8 @@ class HandSetup { var game: Game? = null - var straddlePositions: SortedSet = sortedSetOf() + var straddlePositions: MutableList = mutableListOf() + private set fun clearStraddles() { this.straddlePositions.clear() @@ -35,7 +37,9 @@ class HandSetup { if (positions.contains(Position.BUT) && firstStraddlePosition != Position.UTG) { sortedPosition = sortedPosition.reversed() } - this.straddlePositions = sortedPosition.toSortedSet() + Timber.d("sortedPosition = $sortedPosition") + this.straddlePositions = sortedPosition.toMutableList() + Timber.d("this.straddlePositions = ${this.straddlePositions}") } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/model/handhistory/Position.kt b/app/src/main/java/net/pokeranalytics/android/model/handhistory/Position.kt index ef19d2f1..a4f39a08 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/handhistory/Position.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/handhistory/Position.kt @@ -36,6 +36,16 @@ enum class Position(var value: String) : RowRepresentable { } + val shortValue: String + get() { + return when (this) { + UTG1 -> "+1" + UTG2 -> "+2" + UTG3 -> "+3" + else -> this.value + } + } + override fun getDisplayName(context: Context): String { return this.value } 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 e7db75f0..b9f348ea 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 @@ -13,7 +13,6 @@ import net.pokeranalytics.android.model.interfaces.TimeFilterable import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.ui.modules.handhistory.views.CardHolder import net.pokeranalytics.android.ui.view.RowRepresentable -import timber.log.Timber import java.util.* open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterable, TimeFilterable, CardHolder { @@ -61,7 +60,7 @@ open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterab /*** * Number of players in the hand */ - var numberOfPlayers: Int = 4 + var numberOfPlayers: Int = 10 /*** * Number of players in the hand @@ -113,7 +112,6 @@ open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterab val positions = Position.positionsPerPlayers(this.numberOfPlayers) - Timber.d("noa 1 = ${this.actions.size}") var lastStraddler: Int? = null handSetup.straddlePositions.forEach { position -> // position are sorted here @@ -121,7 +119,6 @@ open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterab this.addAction(positionIndex, Action.Type.STRADDLE) lastStraddler = positionIndex } - Timber.d("noa 2 = ${this.actions.size}") val totalActions = this.actions.size val startingPosition = lastStraddler?.let { it + 1 } ?: totalActions @@ -129,7 +126,6 @@ open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterab for (i in 0 until this.numberOfPlayers) { this.addAction((startingPosition + i) % this.numberOfPlayers) } - Timber.d("noa 3 = ${this.actions.size}") } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryAdapter.kt index 66410154..e9b66c63 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryAdapter.kt @@ -393,16 +393,17 @@ class HandHistoryAdapter( val chip = Chip(itemView.context) chip.id = View.generateViewId() // chip.tag = filter.id - chip.text = pos.value + chip.text = pos.shortValue chip.chipStartPadding = 8f.px chip.chipEndPadding = 8f.px chip.isChecked = straddleRow.selectedPositions.contains(pos) chip.setOnClickListener { if (chip.isChecked) { - straddleRow.selectedPositions.add(pos) + val added = straddleRow.add(pos) + chip.isChecked = added } else { - straddleRow.selectedPositions.remove(pos) + straddleRow.remove(pos) } adapter.delegate?.onRowValueChanged(straddleRow.selectedPositions, row) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistorySettings.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistorySettings.kt index e28515e6..23481170 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistorySettings.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistorySettings.kt @@ -18,4 +18,23 @@ class StraddleRowRepresentable( override val viewType: Int = HandRowType.STRADDLE.ordinal + /*** + * Tries to add a position if the position is next to another + */ + fun add(position: Position): Boolean { + val canAdd = this.selectedPositions.isEmpty() + || this.selectedPositions.any { it.ordinal == position.ordinal + 1 || it.ordinal == position.ordinal - 1 } + + if (canAdd) { + this.selectedPositions.add(position) + } + return canAdd + } + + fun remove(position: Position) { + + + this.selectedPositions.remove(position) + } + } diff --git a/app/src/main/res/layout/row_hhsettings_blinds.xml b/app/src/main/res/layout/row_hhsettings_blinds.xml index 4e7b5c29..4527c5d6 100644 --- a/app/src/main/res/layout/row_hhsettings_blinds.xml +++ b/app/src/main/res/layout/row_hhsettings_blinds.xml @@ -37,6 +37,7 @@ - - + android:layout_height="wrap_content" + android:layout_marginStart="8dp" + android:layout_marginEnd="8dp" + app:chipSpacing="4dp"/> \ No newline at end of file