diff --git a/app/src/main/java/net/pokeranalytics/android/model/handhistory/ComputedAction.kt b/app/src/main/java/net/pokeranalytics/android/model/handhistory/ComputedAction.kt index 21696c9b..71da04a9 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/handhistory/ComputedAction.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/handhistory/ComputedAction.kt @@ -3,9 +3,10 @@ package net.pokeranalytics.android.model.handhistory import net.pokeranalytics.android.model.realm.handhistory.Action import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowViewType +import net.pokeranalytics.android.ui.view.handhistory.HandHistoryKeyboard interface HandHistoryRow : RowRepresentable { - fun isValid() : Boolean + fun keyboardForCompletion() : HandHistoryKeyboard? } class ComputedAction(var action: Action, @@ -38,15 +39,15 @@ class ComputedAction(var action: Action, override val viewType: Int = RowViewType.ROW_HAND_ACTION.ordinal - override fun isValid() : Boolean { - return action.type?.let { type -> - if (this.requireAmount) { - return this.action.amount != null + override fun keyboardForCompletion() : HandHistoryKeyboard? { + this.action.type?.let { type -> + if (this.requireAmount && this.action.amount == null) { + return HandHistoryKeyboard.ACTION } else { - return true + return null } } ?: run { - false + return HandHistoryKeyboard.ACTION } } 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 b7654631..61e410e7 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 @@ -6,6 +6,7 @@ import net.pokeranalytics.android.model.realm.handhistory.Action import net.pokeranalytics.android.model.realm.handhistory.HandHistory import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowViewType +import net.pokeranalytics.android.ui.view.handhistory.HandHistoryKeyboard import net.pokeranalytics.android.ui.view.handhistory.StreetCardHeader import net.pokeranalytics.android.ui.view.rowrepresentable.CustomizableRowRepresentable import java.util.* @@ -304,12 +305,12 @@ class HHBuilder { /*** * Finds the index of the first incomplete action, if existing */ - fun findIndexForEdition(): RowRepresentable? { + fun findIndexForEdition(): Pair? { - this.currentRowRepresentables.forEach { rowRepresentable -> + this.currentRowRepresentables.forEachIndexed { index, rowRepresentable -> if (rowRepresentable is HandHistoryRow) { - if (!rowRepresentable.isValid()) { - return rowRepresentable + rowRepresentable.keyboardForCompletion()?.let { keyboard -> + return Pair(index, keyboard) } } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/handhistory/StreetCardHeader.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/handhistory/StreetCardHeader.kt index bf98a768..fd1654f0 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/handhistory/StreetCardHeader.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/handhistory/StreetCardHeader.kt @@ -9,8 +9,12 @@ class StreetCardHeader(var street: Street, var cards: List, var potSize: D override val viewType: Int = RowViewType.ROW_HAND_STREET.ordinal - override fun isValid(): Boolean { - return cards.size == street.totalBoardCards + override fun keyboardForCompletion(): HandHistoryKeyboard? { + return if (cards.size != street.totalBoardCards) { + HandHistoryKeyboard.CARD + } else { + null + } } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/HandHistoryViewModel.kt b/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/HandHistoryViewModel.kt index ef39c38c..0fbb7a82 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/HandHistoryViewModel.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/HandHistoryViewModel.kt @@ -3,10 +3,12 @@ package net.pokeranalytics.android.ui.viewmodel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import net.pokeranalytics.android.exceptions.PAIllegalStateException +import net.pokeranalytics.android.model.handhistory.ComputedAction import net.pokeranalytics.android.model.handhistory.HHBuilder import net.pokeranalytics.android.model.realm.handhistory.Action import net.pokeranalytics.android.model.realm.handhistory.Card import net.pokeranalytics.android.ui.view.handhistory.HandHistoryKeyboard +import net.pokeranalytics.android.ui.view.handhistory.StreetCardHeader class HandHistoryViewModel : ViewModel() { @@ -52,8 +54,6 @@ class HandHistoryViewModel : ViewModel() { return r?.second } ?: throw PAIllegalStateException("Builder not defined") - - } } \ No newline at end of file