diff --git a/app/src/main/java/net/pokeranalytics/android/model/handhistory/HHBuilder.kt b/app/src/main/java/net/pokeranalytics/android/model/handhistory/HHBuilder.kt index 4a5b6469..2b8f0f88 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/handhistory/HHBuilder.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/handhistory/HHBuilder.kt @@ -179,6 +179,8 @@ class HHBuilder { val dropedIndex = dropNextActionsIfNecessary(index) + this.addRequiredPlayerActions() + // Automatically sets action for the previous empty actions val modifiedActions = mutableListOf() getPreviousEmptyActions(index).forEach { @@ -195,6 +197,13 @@ class HHBuilder { return modifiedActions.map { this.currentRowRepresentables.indexOf(it) } } + /*** + * Adds, if necessary, new ComputedAction for players that needs to act + */ + private fun addRequiredPlayerActions() { + // TODO("not implemented") //To change body of created functions use File | Settings | File Templates. + } + private fun getPreviousEmptyActions(index: Int) : List { val street = this.actionForIndex(index).action.street return this.sortedActions.take(index).filter { it.action.street == street && it.action.type == null } @@ -428,7 +437,10 @@ class HHBuilder { var i = actionIndexForSelection + 1 while (true) { - if (this.sortedActions[i].position == position) return i + val computedAction = this.actionForIndex(i) + if (computedAction.position == position) { + return this.rowRepresentables().indexOf(computedAction) + } i++ if (i > this.sortedActions.size) throw PAIllegalStateException("algo sucks") } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryFragment.kt index 582bd796..66510fd8 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryFragment.kt @@ -303,6 +303,7 @@ class HandHistoryFragment : RealmFragment(), RowRepresentableDataSource, RowRepr val rowRepresentableIndex = this.model.nextActionIndexForPosition(position) this.rowRepresentableForPosition(rowRepresentableIndex)?.let { onRowSelected(rowRepresentableIndex, it, HHKeyboard.ACTION.ordinal) + this.handHistoryAdapter.notifyItemChanged(rowRepresentableIndex) } ?: throw PAIllegalStateException("Rowrepresentable not fouind at index $rowRepresentableIndex") } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/views/PositionAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/views/PositionAdapter.kt index fd6046cb..30a12bff 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/views/PositionAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/views/PositionAdapter.kt @@ -1,7 +1,9 @@ package net.pokeranalytics.android.ui.modules.handhistory.views +import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView +import net.pokeranalytics.android.R import net.pokeranalytics.android.model.handhistory.Position import net.pokeranalytics.android.ui.adapter.BindableHolder import net.pokeranalytics.android.ui.adapter.RecyclerAdapter @@ -9,6 +11,7 @@ import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowViewType +import net.pokeranalytics.android.ui.view.holder.RowViewHolder import timber.log.Timber class PositionAdapter(var keyboardListener: KeyboardListener) : @@ -26,7 +29,8 @@ class PositionAdapter(var keyboardListener: KeyboardListener) : } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - return RowViewType.values()[viewType].viewHolder(parent) + val layout = LayoutInflater.from(parent.context).inflate(R.layout.row_cell, parent, false) + return RowViewHolder(layout) } override fun getItemCount(): Int { diff --git a/app/src/main/res/layout/row_cell.xml b/app/src/main/res/layout/row_cell.xml new file mode 100644 index 00000000..4c72df3e --- /dev/null +++ b/app/src/main/res/layout/row_cell.xml @@ -0,0 +1,27 @@ + + + + + + \ No newline at end of file