diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Card.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Card.kt index ae242505..f942fb4f 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Card.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Card.kt @@ -199,9 +199,13 @@ open class Card : RealmObject() { /*** * 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 - textView.text = this.formatted(context, true) + if (blank) { + textView.text = "\n" + } else { + textView.text = this.formatted(context, true) + } return textView } 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 312f43f6..b93e6d98 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 @@ -163,20 +163,6 @@ open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterab 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? { return this.playerSetups.firstOrNull { it.position == position } } @@ -352,7 +338,8 @@ open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterab val cardSet = cardSets.removeAt(0) 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)) } } @@ -361,8 +348,8 @@ open class HandHistory : RealmObject(), RowRepresentable, Identifiable, Filterab if (views.isEmpty()) { val blankCard = Card() (1..5).forEach { _ -> - val view = blankCard.view(context, layoutInflater, viewGroup) - view.setBackgroundColor(context.getColor(R.color.kaki_light)) + val view = blankCard.view(context, layoutInflater, viewGroup, true) + view.setBackgroundResource(R.drawable.rounded_card_back_background) views.add(view) } } 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 963fd7e6..91014016 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 @@ -214,6 +214,9 @@ class HandHistoryFragment : RealmFragment(), RowRepresentableDelegate, KeyboardL private fun saveOrEdit() { this.model.isEdited = !this.model.isEdited updateMenuUI() + if (!this.model.isEdited) { + this.save() + } if (this.model.isEdited) { this.findNextActionToEdit(0) @@ -221,6 +224,10 @@ class HandHistoryFragment : RealmFragment(), RowRepresentableDelegate, KeyboardL this.handHistoryAdapter.notifyDataSetChanged() } + private fun save() { + this.model.save(getRealm()) + } + private fun edit() { this.model.isEdited = true this.findNextActionToEdit(0) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistoryViewModel.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistoryViewModel.kt index 16088ef6..a6eda134 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistoryViewModel.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistoryViewModel.kt @@ -565,8 +565,16 @@ class HandHistoryViewModel : ViewModel(), RowRepresentableDataSource, CardCentra /*** * 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 diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/HandHistoryRowView.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/HandHistoryRowView.kt index 23a639fc..da07a48b 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/HandHistoryRowView.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/HandHistoryRowView.kt @@ -5,11 +5,9 @@ import android.util.AttributeSet import android.view.LayoutInflater import android.widget.FrameLayout import androidx.constraintlayout.widget.ConstraintLayout -import io.realm.Realm import kotlinx.android.synthetic.main.row_hand_history_view.view.* import net.pokeranalytics.android.R 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.util.extensions.formatted @@ -52,38 +50,36 @@ class HandHistoryRowView : FrameLayout { rowHandHistory.cardsLayout.removeAllViews() - 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) - } - + handHistory.cardViews(context, rowHandHistory.cardsLayout).forEach { view -> + rowHandHistory.cardsLayout.addView(view) } - -// handHistory.cardViews(context).forEach { view -> -// rowHandHistory.cardsLayout.addView(view) -// } - 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 // rowHandHistory.transactionDateDay.text = handHistory.date.getShortDayName() diff --git a/app/src/main/res/drawable/rounded_card_back_background.xml b/app/src/main/res/drawable/rounded_card_back_background.xml new file mode 100644 index 00000000..e9e089fb --- /dev/null +++ b/app/src/main/res/drawable/rounded_card_back_background.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/row_hand_history_view.xml b/app/src/main/res/layout/row_hand_history_view.xml index 1781f899..37cd2810 100644 --- a/app/src/main/res/layout/row_hand_history_view.xml +++ b/app/src/main/res/layout/row_hand_history_view.xml @@ -11,7 +11,7 @@ android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="16dp" + android:layout_marginStart="8dp" android:gravity="center_vertical" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout/view_card_separator.xml b/app/src/main/res/layout/view_card_separator.xml index 933ee660..905f60a1 100644 --- a/app/src/main/res/layout/view_card_separator.xml +++ b/app/src/main/res/layout/view_card_separator.xml @@ -4,4 +4,4 @@ android:layout_height="36dp" android:layout_marginStart="4dp" android:layout_marginEnd="8dp" - android:background="@color/kaki" /> + android:background="@color/kaki_medium" />