Fixes hand rows in the feed adapter

hh
Laurent 6 years ago
parent 22daa6005e
commit 774ae12f6f
  1. 8
      app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Card.kt
  2. 21
      app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt
  3. 7
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryFragment.kt
  4. 12
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistoryViewModel.kt
  5. 56
      app/src/main/java/net/pokeranalytics/android/ui/view/HandHistoryRowView.kt
  6. 7
      app/src/main/res/drawable/rounded_card_back_background.xml
  7. 2
      app/src/main/res/layout/row_hand_history_view.xml
  8. 2
      app/src/main/res/layout/view_card_separator.xml

@ -199,9 +199,13 @@ open class Card : RealmObject() {
/*** /***
* Returns a view showing the card [value] and [suit] * Returns a view showing the card [value] and [suit]
*/ */
fun view(context: Context, layoutInflater: LayoutInflater, root: ViewGroup): View { fun view(context: Context, layoutInflater: LayoutInflater, root: ViewGroup, blank: Boolean = false): View {
val textView = layoutInflater.inflate(R.layout.view_card, root, false) as AppCompatTextView val textView = layoutInflater.inflate(R.layout.view_card, root, false) as AppCompatTextView
textView.text = this.formatted(context, true) if (blank) {
textView.text = "\n"
} else {
textView.text = this.formatted(context, true)
}
return textView return textView
} }

@ -163,20 +163,6 @@ open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterab
return this.board.sortedBy { it.index }.take(street.totalBoardCards).toMutableList() return this.board.sortedBy { it.index }.take(street.totalBoardCards).toMutableList()
} }
// fun playerSetupForPosition(position: Int) : PlayerSetup {
// this.playerSetups.firstOrNull { it.position == position }?.let {
// return it
// }
//
// val ps = PlayerSetup()
// ps.position = position
// return ps
// }
// fun getOrCreatePlayerSetup(position: Int): PlayerSetup {
// return this.playerSetupForPosition(position) ?: createPlayerSetup(position)
// }
fun playerSetupForPosition(position: Int): PlayerSetup? { fun playerSetupForPosition(position: Int): PlayerSetup? {
return this.playerSetups.firstOrNull { it.position == position } return this.playerSetups.firstOrNull { it.position == position }
} }
@ -352,7 +338,8 @@ open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterab
val cardSet = cardSets.removeAt(0) val cardSet = cardSets.removeAt(0)
if (views.isNotEmpty() && cardSet.isNotEmpty()) { // add separator with previous set of cards if (views.isNotEmpty() && cardSet.isNotEmpty()) { // add separator with previous set of cards
views.add(layoutInflater.inflate(R.layout.view_card_separator, viewGroup) as AppCompatTextView) val view = layoutInflater.inflate(R.layout.view_card_separator, viewGroup, false) as AppCompatTextView
views.add(view)
} }
cardSet.forEach { views.add(it.view(context, layoutInflater, viewGroup)) } cardSet.forEach { views.add(it.view(context, layoutInflater, viewGroup)) }
} }
@ -361,8 +348,8 @@ open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterab
if (views.isEmpty()) { if (views.isEmpty()) {
val blankCard = Card() val blankCard = Card()
(1..5).forEach { _ -> (1..5).forEach { _ ->
val view = blankCard.view(context, layoutInflater, viewGroup) val view = blankCard.view(context, layoutInflater, viewGroup, true)
view.setBackgroundColor(context.getColor(R.color.kaki_light)) view.setBackgroundResource(R.drawable.rounded_card_back_background)
views.add(view) views.add(view)
} }
} }

@ -214,6 +214,9 @@ class HandHistoryFragment : RealmFragment(), RowRepresentableDelegate, KeyboardL
private fun saveOrEdit() { private fun saveOrEdit() {
this.model.isEdited = !this.model.isEdited this.model.isEdited = !this.model.isEdited
updateMenuUI() updateMenuUI()
if (!this.model.isEdited) {
this.save()
}
if (this.model.isEdited) { if (this.model.isEdited) {
this.findNextActionToEdit(0) this.findNextActionToEdit(0)
@ -221,6 +224,10 @@ class HandHistoryFragment : RealmFragment(), RowRepresentableDelegate, KeyboardL
this.handHistoryAdapter.notifyDataSetChanged() this.handHistoryAdapter.notifyDataSetChanged()
} }
private fun save() {
this.model.save(getRealm())
}
private fun edit() { private fun edit() {
this.model.isEdited = true this.model.isEdited = true
this.findNextActionToEdit(0) this.findNextActionToEdit(0)

@ -565,8 +565,16 @@ class HandHistoryViewModel : ViewModel(), RowRepresentableDataSource, CardCentra
/*** /***
* Saves the current hand state in the database * Saves the current hand state in the database
*/ */
fun save() { fun save(realm: Realm) {
realm.executeTransaction {
this.handHistory.actions.clear()
val actions = this.sortedActions.map { it.action }
this.handHistory.actions.addAll(actions)
if (!this.handHistory.isManaged) {
realm.copyToRealm(this.handHistory)
}
}
} }
// Card Centralizer // Card Centralizer

@ -5,11 +5,9 @@ import android.util.AttributeSet
import android.view.LayoutInflater import android.view.LayoutInflater
import android.widget.FrameLayout import android.widget.FrameLayout
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import io.realm.Realm
import kotlinx.android.synthetic.main.row_hand_history_view.view.* import kotlinx.android.synthetic.main.row_hand_history_view.view.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.handhistory.Street import net.pokeranalytics.android.model.handhistory.Street
import net.pokeranalytics.android.model.realm.handhistory.Card
import net.pokeranalytics.android.model.realm.handhistory.HandHistory import net.pokeranalytics.android.model.realm.handhistory.HandHistory
import net.pokeranalytics.android.util.extensions.formatted import net.pokeranalytics.android.util.extensions.formatted
@ -52,38 +50,36 @@ class HandHistoryRowView : FrameLayout {
rowHandHistory.cardsLayout.removeAllViews() rowHandHistory.cardsLayout.removeAllViews()
val realm = Realm.getDefaultInstance() handHistory.cardViews(context, rowHandHistory.cardsLayout).forEach { view ->
realm.executeTransaction { rowHandHistory.cardsLayout.addView(view)
val list = listOf(Card.newInstance(it, null, Card.Suit.CLOVER),
Card.newInstance(Realm.getDefaultInstance(), 12, Card.Suit.HEART)
)
list.forEach { card ->
val view = card.view(context, LayoutInflater.from(context), rowHandHistory.cardsLayout)
rowHandHistory.cardsLayout.addView(view)
}
LayoutInflater.from(context).inflate(R.layout.view_card_separator, rowHandHistory.cardsLayout)
val list2 = listOf(Card.newInstance(it, null, Card.Suit.CLOVER),
Card.newInstance(Realm.getDefaultInstance(), 12, Card.Suit.HEART)
)
list2.forEach { card ->
val view = card.view(context, LayoutInflater.from(context), rowHandHistory.cardsLayout)
rowHandHistory.cardsLayout.addView(view)
}
} }
// handHistory.cardViews(context).forEach { view ->
// rowHandHistory.cardsLayout.addView(view)
// }
rowHandHistory.amount.text = handHistory.potSizeForStreet(Street.SUMMARY).formatted() rowHandHistory.amount.text = handHistory.potSizeForStreet(Street.SUMMARY).formatted()
// val realm = Realm.getDefaultInstance()
// realm.executeTransaction {
//
// val list = listOf(Card.newInstance(it, null, Card.Suit.CLOVER),
// Card.newInstance(Realm.getDefaultInstance(), 12, Card.Suit.HEART)
// )
//
// list.forEach { card ->
// val view = card.view(context, LayoutInflater.from(context), rowHandHistory.cardsLayout)
// rowHandHistory.cardsLayout.addView(view)
// }
//
// LayoutInflater.from(context).inflate(R.layout.view_card_separator, rowHandHistory.cardsLayout)
//
// val list2 = listOf(Card.newInstance(it, null, Card.Suit.CLOVER),
// Card.newInstance(Realm.getDefaultInstance(), 12, Card.Suit.HEART)
// )
//
// list2.forEach { card ->
// val view = card.view(context, LayoutInflater.from(context), rowHandHistory.cardsLayout)
// rowHandHistory.cardsLayout.addView(view)
// }
//
// }
// Date // Date
// rowHandHistory.transactionDateDay.text = handHistory.date.getShortDayName() // rowHandHistory.transactionDateDay.text = handHistory.date.getShortDayName()

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/kaki_medium"/>
<!-- <stroke android:width="3dp" android:color="#B1BCBE" />-->
<corners android:radius="6dp"/>
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>

@ -11,7 +11,7 @@
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="8dp"
android:gravity="center_vertical" android:gravity="center_vertical"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"

@ -4,4 +4,4 @@
android:layout_height="36dp" android:layout_height="36dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:background="@color/kaki" /> android:background="@color/kaki_medium" />

Loading…
Cancel
Save