diff --git a/app/src/main/java/net/pokeranalytics/android/calculus/Stat.kt b/app/src/main/java/net/pokeranalytics/android/calculus/Stat.kt index 680f1060..78a0b126 100644 --- a/app/src/main/java/net/pokeranalytics/android/calculus/Stat.kt +++ b/app/src/main/java/net/pokeranalytics/android/calculus/Stat.kt @@ -73,6 +73,8 @@ enum class Stat : RowRepresentable { } override val viewType: Int = RowViewType.TITLE_VALUE.ordinal + override var displayHeader: Boolean = false + override var headerValues: ArrayList = ArrayList() } /** diff --git a/app/src/main/java/net/pokeranalytics/android/model/Limit.kt b/app/src/main/java/net/pokeranalytics/android/model/Limit.kt index 95121954..3a907b02 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/Limit.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/Limit.kt @@ -36,6 +36,9 @@ enum class Limit : RowRepresentable { override fun getDisplayName(): String { return this.longName } + + override var displayHeader: Boolean = false + override var headerValues: ArrayList = ArrayList() } /* diff --git a/app/src/main/java/net/pokeranalytics/android/model/TableSize.kt b/app/src/main/java/net/pokeranalytics/android/model/TableSize.kt index d13797c5..df445b25 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/TableSize.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/TableSize.kt @@ -33,4 +33,7 @@ class TableSize(var numberOfPlayer: Int) : RowRepresentable { override val viewType: Int get() = RowViewType.TITLE_GRID.ordinal + + override var displayHeader: Boolean = false + override var headerValues: ArrayList = ArrayList() } diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt index 964144ed..779e6379 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt @@ -3,94 +3,99 @@ package net.pokeranalytics.android.model.realm import android.text.InputType import io.realm.RealmList import io.realm.RealmObject +import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey import net.pokeranalytics.android.model.interfaces.Savable import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource -import net.pokeranalytics.android.ui.view.RowEditableDescriptor import net.pokeranalytics.android.ui.view.* import java.util.* import kotlin.collections.ArrayList open class Bankroll(name: String = "") : RealmObject(), Savable, - RowRepresentableDataSource, - RowEditable, RowRepresentable { - - companion object { - fun newInstance() : Bankroll { - var bankroll: Bankroll = Bankroll() - return bankroll - } - } - - @PrimaryKey - var id = UUID.randomUUID().toString() - - // the name of the bankroll - var name: String = name - - // Indicates whether the bankroll is live or online - var live: Boolean = true - - // The list of transactions of the bankroll - var transactions: RealmList = RealmList() - - // The currency of the bankroll - var currency: Currency? = null - - // @todo rate management - - override fun getDisplayName(): String { - return this.name - } - - override fun uniqueIdentifier(): String { - return this.id - } - - override fun adapterRows(): ArrayList { - val rows = ArrayList() - rows.add(SimpleRow.NAME) - rows.addAll(BankrollRow.values()) - return rows - } - - override fun stringForRow(row: RowRepresentable): String { - return when (row) { - SimpleRow.NAME -> this.name - BankrollRow.LIVE -> if (this.live) "live" else "online" - BankrollRow.CURRENCY -> this.currency?.code?: "" - else -> return super.stringForRow(row) - } - } - - override fun boolForRow(row: RowRepresentable): Boolean { - when (row) { - BankrollRow.LIVE -> return true - else -> return super.boolForRow(row) - } - } - - override fun rowEditableDescriptors(row: RowRepresentable): ArrayList { - val data = java.util.ArrayList() - when (row) { - SimpleRow.NAME -> data.add( - RowEditableDescriptor( - this.name, - SimpleRow.NAME.resId, - InputType.TYPE_CLASS_TEXT - ) - ) - } - return data - } - - override fun updateValue(value: Any?, row: RowRepresentable) { - when (row) { - SimpleRow.NAME -> this.name = value as String? ?: "" - } - } - - override fun isValidForSave(): Boolean { - return this.name.isNotEmpty() - } + RowRepresentableDataSource, + RowEditable, RowRepresentable { + + companion object { + fun newInstance(): Bankroll { + var bankroll: Bankroll = Bankroll() + return bankroll + } + } + + @PrimaryKey + var id = UUID.randomUUID().toString() + + // the name of the bankroll + var name: String = name + + // Indicates whether the bankroll is live or online + var live: Boolean = true + + // The list of transactions of the bankroll + var transactions: RealmList = RealmList() + + // The currency of the bankroll + var currency: Currency? = null + + // @todo rate management + + override fun getDisplayName(): String { + return this.name + } + + override fun uniqueIdentifier(): String { + return this.id + } + + override fun adapterRows(): ArrayList { + val rows = ArrayList() + rows.add(SimpleRow.NAME) + rows.addAll(BankrollRow.values()) + return rows + } + + override fun stringForRow(row: RowRepresentable): String { + return when (row) { + SimpleRow.NAME -> this.name + BankrollRow.LIVE -> if (this.live) "live" else "online" + BankrollRow.CURRENCY -> this.currency?.code ?: "" + else -> return super.stringForRow(row) + } + } + + override fun boolForRow(row: RowRepresentable): Boolean { + when (row) { + BankrollRow.LIVE -> return true + else -> return super.boolForRow(row) + } + } + + override fun rowEditableDescriptors(row: RowRepresentable): ArrayList { + val data = java.util.ArrayList() + when (row) { + SimpleRow.NAME -> data.add( + RowEditableDescriptor( + this.name, + SimpleRow.NAME.resId, + InputType.TYPE_CLASS_TEXT + ) + ) + } + return data + } + + override fun updateValue(value: Any?, row: RowRepresentable) { + when (row) { + SimpleRow.NAME -> this.name = value as String? ?: "" + } + } + + override fun isValidForSave(): Boolean { + return this.name.isNotEmpty() + } + + @Ignore + override var displayHeader: Boolean = false + @Ignore + override var headerValues: ArrayList = ArrayList() } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt index 2bf0fa53..c5ac2579 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt @@ -2,10 +2,10 @@ package net.pokeranalytics.android.model.realm import android.text.InputType import io.realm.RealmObject +import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey import net.pokeranalytics.android.model.interfaces.Savable import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource -import net.pokeranalytics.android.ui.view.RowEditableDescriptor import net.pokeranalytics.android.ui.view.* import java.util.* @@ -75,4 +75,9 @@ open class Game : RealmObject(), Savable, RowRepresentableDataSource, RowEditabl override fun isValidForSave(): Boolean { return this.name.isNotEmpty() } + + @Ignore + override var displayHeader: Boolean = false + @Ignore + override var headerValues: ArrayList = ArrayList() } diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt index 7e4f49a0..0e07dcea 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt @@ -2,14 +2,11 @@ package net.pokeranalytics.android.model.realm import android.text.InputType import io.realm.RealmObject +import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey import net.pokeranalytics.android.model.interfaces.Savable import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource -import net.pokeranalytics.android.ui.view.RowEditableDescriptor -import net.pokeranalytics.android.ui.view.RowEditable -import net.pokeranalytics.android.ui.view.LocationRow -import net.pokeranalytics.android.ui.view.RowRepresentable -import net.pokeranalytics.android.ui.view.SimpleRow +import net.pokeranalytics.android.ui.view.* import java.util.* @@ -72,4 +69,9 @@ open class Location : RealmObject(), Savable, RowRepresentableDataSource, RowEdi override fun isValidForSave(): Boolean { return this.name.isNotEmpty() } + + @Ignore + override var displayHeader: Boolean = false + @Ignore + override var headerValues: ArrayList = ArrayList() } diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt index 966c8c67..84fa41f0 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt @@ -14,13 +14,13 @@ import net.pokeranalytics.android.model.extensions.SessionState import net.pokeranalytics.android.model.extensions.getState import net.pokeranalytics.android.model.interfaces.Savable import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource -import net.pokeranalytics.android.ui.view.RowEditableDescriptor import net.pokeranalytics.android.ui.view.RowEditable +import net.pokeranalytics.android.ui.view.RowEditableDescriptor import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.SessionRow import net.pokeranalytics.android.util.getDuration import net.pokeranalytics.android.util.round -import net.pokeranalytics.android.util.short +import net.pokeranalytics.android.util.shortDateTime import net.pokeranalytics.android.util.toCurrency import timber.log.Timber import java.util.* @@ -97,6 +97,12 @@ open class Session : RealmObject(), SessionInterface, Savable, // The features of the tournament, like Knockout, Shootout, Turbo... var tournamentFeatures: RealmList = RealmList() + @Ignore + override var displayHeader: Boolean = false + + @Ignore + override var headerValues: ArrayList = ArrayList() + /** * Start a session */ @@ -279,8 +285,8 @@ open class Session : RealmObject(), SessionInterface, Savable, SessionRow.LOCATION -> location?.name ?: "--" SessionRow.BANKROLL -> bankroll?.name ?: "--" SessionRow.TABLE_SIZE -> tableSize?.toString() ?: "--" - SessionRow.START_DATE -> if (timeFrame != null) timeFrame?.startDate?.short() ?: "--" else "--" - SessionRow.END_DATE -> if (timeFrame != null) timeFrame?.endDate?.short() ?: "--" else "--" + SessionRow.START_DATE -> if (timeFrame != null) timeFrame?.startDate?.shortDateTime() ?: "--" else "--" + SessionRow.END_DATE -> if (timeFrame != null) timeFrame?.endDate?.shortDateTime() ?: "--" else "--" SessionRow.COMMENT -> if (comment.isNotEmpty()) comment else "--" else -> "--" } diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt index 4b36646f..9a7001b7 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt @@ -2,68 +2,70 @@ package net.pokeranalytics.android.model.realm import android.text.InputType import io.realm.RealmObject +import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey import net.pokeranalytics.android.model.interfaces.Savable import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource -import net.pokeranalytics.android.ui.view.RowEditableDescriptor -import net.pokeranalytics.android.ui.view.RowEditable -import net.pokeranalytics.android.ui.view.RowRepresentable -import net.pokeranalytics.android.ui.view.SimpleRow -import net.pokeranalytics.android.ui.view.TournamentFeatureRow +import net.pokeranalytics.android.ui.view.* import java.util.* open class TournamentFeature : RealmObject(), Savable, RowRepresentableDataSource, RowEditable, RowRepresentable { - @PrimaryKey - var id = UUID.randomUUID().toString() + @PrimaryKey + var id = UUID.randomUUID().toString() - // The name of the feature - var name: String = "" + // The name of the feature + var name: String = "" - override fun getDisplayName(): String { - return this.name - } + override fun getDisplayName(): String { + return this.name + } - override fun uniqueIdentifier(): String { - return this.id - } + override fun uniqueIdentifier(): String { + return this.id + } - override fun adapterRows(): ArrayList { - val rows = ArrayList() - rows.add(SimpleRow.NAME) - rows.addAll(TournamentFeatureRow.values()) - return rows - } + override fun adapterRows(): ArrayList { + val rows = ArrayList() + rows.add(SimpleRow.NAME) + rows.addAll(TournamentFeatureRow.values()) + return rows + } - override fun stringForRow(row: RowRepresentable): String { - return when (row) { - SimpleRow.NAME -> this.name - else -> return super.stringForRow(row) - } - } + override fun stringForRow(row: RowRepresentable): String { + return when (row) { + SimpleRow.NAME -> this.name + else -> return super.stringForRow(row) + } + } - override fun rowEditableDescriptors(row: RowRepresentable): ArrayList { - val data = java.util.ArrayList() - when (row) { - SimpleRow.NAME -> data.add( - RowEditableDescriptor( - this.name, - SimpleRow.NAME.resId, - InputType.TYPE_CLASS_TEXT - ) - ) - } - return data - } + override fun rowEditableDescriptors(row: RowRepresentable): ArrayList { + val data = java.util.ArrayList() + when (row) { + SimpleRow.NAME -> data.add( + RowEditableDescriptor( + this.name, + SimpleRow.NAME.resId, + InputType.TYPE_CLASS_TEXT + ) + ) + } + return data + } - override fun updateValue(value: Any?, row: RowRepresentable) { - when (row) { - SimpleRow.NAME -> this.name = value as String? ?: "" - } - } + override fun updateValue(value: Any?, row: RowRepresentable) { + when (row) { + SimpleRow.NAME -> this.name = value as String? ?: "" + } + } - override fun isValidForSave(): Boolean { - return this.name.isNotEmpty() - } + override fun isValidForSave(): Boolean { + return this.name.isNotEmpty() + } + + @Ignore + override var displayHeader: Boolean = false + @Ignore + override var headerValues: ArrayList = ArrayList() } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt index 0d1130c7..a6b92d33 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt @@ -2,82 +2,84 @@ package net.pokeranalytics.android.model.realm import android.text.InputType import io.realm.RealmObject +import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey import net.pokeranalytics.android.model.interfaces.Savable import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource -import net.pokeranalytics.android.ui.view.RowEditableDescriptor -import net.pokeranalytics.android.ui.view.RowEditable -import net.pokeranalytics.android.ui.view.RowRepresentable -import net.pokeranalytics.android.ui.view.SimpleRow -import net.pokeranalytics.android.ui.view.TransactionTypeRow +import net.pokeranalytics.android.ui.view.* import java.util.* open class TransactionType : RealmObject(), Savable, RowRepresentableDataSource, RowEditable, RowRepresentable { - @PrimaryKey - var id = UUID.randomUUID().toString() - - // The name of the transaction type - var name: String = "" - - // Whether or not the amount is added, or subtracted to the bankroll total - var additive: Boolean = false - - // Whether or not the type can be deleted by the user - var lock: Boolean = false - - // The predefined kind, if necessary, like: Withdrawal, deposit, or tips - var kind: Int? = null - - override fun getDisplayName(): String { - return this.name - } - - override fun uniqueIdentifier(): String { - return this.id - } - - override fun adapterRows(): ArrayList { - val rows = ArrayList() - rows.add(SimpleRow.NAME) - rows.addAll(TransactionTypeRow.values()) - return rows - } - - override fun stringForRow(row: RowRepresentable): String { - return when (row) { - SimpleRow.NAME -> this.name - else -> return super.stringForRow(row) - } - } - - override fun rowEditableDescriptors(row: RowRepresentable): ArrayList { - val data = java.util.ArrayList() - when (row) { - SimpleRow.NAME -> data.add( - RowEditableDescriptor( - this.name, - SimpleRow.NAME.resId, - InputType.TYPE_CLASS_TEXT - ) - ) - } - return data - } - - override fun updateValue(value: Any?, row: RowRepresentable) { - when (row) { - SimpleRow.NAME -> this.name = value as String? ?: "" - } - } - - override fun isValidForSave(): Boolean { - return this.name.isNotEmpty() - } + @PrimaryKey + var id = UUID.randomUUID().toString() + + // The name of the transaction type + var name: String = "" + + // Whether or not the amount is added, or subtracted to the bankroll total + var additive: Boolean = false + + // Whether or not the type can be deleted by the user + var lock: Boolean = false + + // The predefined kind, if necessary, like: Withdrawal, deposit, or tips + var kind: Int? = null + + override fun getDisplayName(): String { + return this.name + } + + override fun uniqueIdentifier(): String { + return this.id + } + + override fun adapterRows(): ArrayList { + val rows = ArrayList() + rows.add(SimpleRow.NAME) + rows.addAll(TransactionTypeRow.values()) + return rows + } + + override fun stringForRow(row: RowRepresentable): String { + return when (row) { + SimpleRow.NAME -> this.name + else -> return super.stringForRow(row) + } + } + + override fun rowEditableDescriptors(row: RowRepresentable): ArrayList { + val data = java.util.ArrayList() + when (row) { + SimpleRow.NAME -> data.add( + RowEditableDescriptor( + this.name, + SimpleRow.NAME.resId, + InputType.TYPE_CLASS_TEXT + ) + ) + } + return data + } + + override fun updateValue(value: Any?, row: RowRepresentable) { + when (row) { + SimpleRow.NAME -> this.name = value as String? ?: "" + } + } + + override fun isValidForSave(): Boolean { + return this.name.isNotEmpty() + } + + @Ignore + override var displayHeader: Boolean = false + @Ignore + override var headerValues: ArrayList = ArrayList() } enum class TransactionKind { - WITHDRAWAL, - DEPOSIT + WITHDRAWAL, + DEPOSIT } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt index 81c00890..0d0cfb0a 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt @@ -69,6 +69,10 @@ interface Displayable: Localizable { get() { return false } + + var displayHeader: Boolean + var headerValues: ArrayList + } enum class SessionRow : RowRepresentable { @@ -179,6 +183,9 @@ enum class SessionRow : RowRepresentable { else -> BottomSheetType.NONE } } + + override var displayHeader: Boolean = false + override var headerValues: ArrayList = ArrayList() } enum class SimpleRow : RowRepresentable { @@ -187,6 +194,8 @@ enum class SimpleRow : RowRepresentable { override val resId: Int? = R.string.name override val viewType: Int = RowViewType.TITLE_VALUE.ordinal override val bottomSheetType: BottomSheetType = BottomSheetType.EDIT_TEXT + override var displayHeader: Boolean = false + override var headerValues: ArrayList = ArrayList() } enum class BankrollRow : RowRepresentable { @@ -215,6 +224,9 @@ enum class BankrollRow : RowRepresentable { CURRENCY -> BottomSheetType.LIST } } + + override var displayHeader: Boolean = false + override var headerValues: ArrayList = ArrayList() } enum class GameRow : RowRepresentable { @@ -240,6 +252,9 @@ enum class GameRow : RowRepresentable { SHORT_NAME -> BottomSheetType.EDIT_TEXT } } + + override var displayHeader: Boolean = false + override var headerValues: ArrayList = ArrayList() } enum class LocationRow : RowRepresentable { @@ -265,6 +280,9 @@ enum class LocationRow : RowRepresentable { LOCATION_STATUS -> BottomSheetType.NONE } } + + override var displayHeader: Boolean = false + override var headerValues: ArrayList = ArrayList() } enum class TransactionTypeRow : RowRepresentable { @@ -301,4 +319,7 @@ enum class SettingRow : RowRepresentable { TRANSACTION_TYPE -> LiveData.TRANSACTION_TYPE } } + + override var displayHeader: Boolean = false + override var headerValues: ArrayList = ArrayList() } \ No newline at end of file