Fixes straddle position bug + display

hh
Laurent 6 years ago
parent cc2a7fbbec
commit 3ceba43ded
  1. 8
      app/src/main/java/net/pokeranalytics/android/model/handhistory/HandSetup.kt
  2. 10
      app/src/main/java/net/pokeranalytics/android/model/handhistory/Position.kt
  3. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt
  4. 7
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryAdapter.kt
  5. 19
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistorySettings.kt
  6. 1
      app/src/main/res/layout/row_hhsettings_blinds.xml
  7. 9
      app/src/main/res/layout/row_hhsettings_straddle.xml

@ -1,6 +1,7 @@
package net.pokeranalytics.android.model.handhistory package net.pokeranalytics.android.model.handhistory
import net.pokeranalytics.android.model.realm.Game import net.pokeranalytics.android.model.realm.Game
import timber.log.Timber
import java.util.* import java.util.*
class HandSetup { class HandSetup {
@ -17,7 +18,8 @@ class HandSetup {
var game: Game? = null var game: Game? = null
var straddlePositions: SortedSet<Position> = sortedSetOf() var straddlePositions: MutableList<Position> = mutableListOf()
private set
fun clearStraddles() { fun clearStraddles() {
this.straddlePositions.clear() this.straddlePositions.clear()
@ -35,7 +37,9 @@ class HandSetup {
if (positions.contains(Position.BUT) && firstStraddlePosition != Position.UTG) { if (positions.contains(Position.BUT) && firstStraddlePosition != Position.UTG) {
sortedPosition = sortedPosition.reversed() sortedPosition = sortedPosition.reversed()
} }
this.straddlePositions = sortedPosition.toSortedSet() Timber.d("sortedPosition = $sortedPosition")
this.straddlePositions = sortedPosition.toMutableList()
Timber.d("this.straddlePositions = ${this.straddlePositions}")
} }
} }

@ -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 { override fun getDisplayName(context: Context): String {
return this.value return this.value
} }

@ -13,7 +13,6 @@ import net.pokeranalytics.android.model.interfaces.TimeFilterable
import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.ui.modules.handhistory.views.CardHolder import net.pokeranalytics.android.ui.modules.handhistory.views.CardHolder
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
import timber.log.Timber
import java.util.* import java.util.*
open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterable, TimeFilterable, CardHolder { 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 * Number of players in the hand
*/ */
var numberOfPlayers: Int = 4 var numberOfPlayers: Int = 10
/*** /***
* Number of players in the hand * Number of players in the hand
@ -113,7 +112,6 @@ open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterab
val positions = Position.positionsPerPlayers(this.numberOfPlayers) val positions = Position.positionsPerPlayers(this.numberOfPlayers)
Timber.d("noa 1 = ${this.actions.size}")
var lastStraddler: Int? = null var lastStraddler: Int? = null
handSetup.straddlePositions.forEach { position -> // position are sorted here 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) this.addAction(positionIndex, Action.Type.STRADDLE)
lastStraddler = positionIndex lastStraddler = positionIndex
} }
Timber.d("noa 2 = ${this.actions.size}")
val totalActions = this.actions.size val totalActions = this.actions.size
val startingPosition = lastStraddler?.let { it + 1 } ?: totalActions 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) { for (i in 0 until this.numberOfPlayers) {
this.addAction((startingPosition + i) % this.numberOfPlayers) this.addAction((startingPosition + i) % this.numberOfPlayers)
} }
Timber.d("noa 3 = ${this.actions.size}")
} }

@ -393,16 +393,17 @@ class HandHistoryAdapter(
val chip = Chip(itemView.context) val chip = Chip(itemView.context)
chip.id = View.generateViewId() chip.id = View.generateViewId()
// chip.tag = filter.id // chip.tag = filter.id
chip.text = pos.value chip.text = pos.shortValue
chip.chipStartPadding = 8f.px chip.chipStartPadding = 8f.px
chip.chipEndPadding = 8f.px chip.chipEndPadding = 8f.px
chip.isChecked = straddleRow.selectedPositions.contains(pos) chip.isChecked = straddleRow.selectedPositions.contains(pos)
chip.setOnClickListener { chip.setOnClickListener {
if (chip.isChecked) { if (chip.isChecked) {
straddleRow.selectedPositions.add(pos) val added = straddleRow.add(pos)
chip.isChecked = added
} else { } else {
straddleRow.selectedPositions.remove(pos) straddleRow.remove(pos)
} }
adapter.delegate?.onRowValueChanged(straddleRow.selectedPositions, row) adapter.delegate?.onRowValueChanged(straddleRow.selectedPositions, row)
} }

@ -18,4 +18,23 @@ class StraddleRowRepresentable(
override val viewType: Int = HandRowType.STRADDLE.ordinal 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)
}
} }

@ -37,6 +37,7 @@
<androidx.appcompat.widget.SwitchCompat <androidx.appcompat.widget.SwitchCompat
android:id="@+id/bbAnteSwitch" android:id="@+id/bbAnteSwitch"
android:layout_width="0dp" android:layout_width="0dp"
android:textColorHint="@color/white"
android:hint="@string/ante" android:hint="@string/ante"
android:layout_weight="1" android:layout_weight="1"
android:layout_height="wrap_content" android:layout_height="wrap_content"

@ -8,10 +8,9 @@
<com.google.android.material.chip.ChipGroup <com.google.android.material.chip.ChipGroup
android:id="@+id/positionsChipGroup" android:id="@+id/positionsChipGroup"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="44dp" android:layout_height="wrap_content"
app:chipSpacing="8dp" android:layout_marginStart="8dp"
app:singleSelection="true"> android:layout_marginEnd="8dp"
app:chipSpacing="4dp"/>
</com.google.android.material.chip.ChipGroup>
</LinearLayout> </LinearLayout>
Loading…
Cancel
Save