From 6366c6194c4fb8141ecd881bc423247c035b8348 Mon Sep 17 00:00:00 2001 From: Laurent Date: Fri, 28 Jun 2019 13:20:08 +0200 Subject: [PATCH] Adds Poker Analytics CSV descriptor --- .../android/util/csv/CSVDescriptor.kt | 1 + .../android/util/csv/ProductCSVDescriptors.kt | 26 +++++++++++++++++++ .../android/util/csv/SessionField.kt | 17 +++++++++++- 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/net/pokeranalytics/android/util/csv/CSVDescriptor.kt b/app/src/main/java/net/pokeranalytics/android/util/csv/CSVDescriptor.kt index ef936cc4..68998913 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/csv/CSVDescriptor.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/csv/CSVDescriptor.kt @@ -14,6 +14,7 @@ import timber.log.Timber * The various sources of CSV */ enum class DataSource { + POKER_ANALYTICS, POKER_INCOME, POKER_BANKROLL_TRACKER, RUNGOOD diff --git a/app/src/main/java/net/pokeranalytics/android/util/csv/ProductCSVDescriptors.kt b/app/src/main/java/net/pokeranalytics/android/util/csv/ProductCSVDescriptors.kt index 3b913ea5..293ee28f 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/csv/ProductCSVDescriptors.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/csv/ProductCSVDescriptors.kt @@ -62,6 +62,32 @@ class ProductCSVDescriptors { SessionField.TableSize("tablesize") ) + val iOSPokerAnalytics: CSVDescriptor = SessionCSVDescriptor( + DataSource.POKER_ANALYTICS, + true, + SessionField.Start("Start date", dateFormat = "MM/dd/yy HH:mm"), + SessionField.End("End date", dateFormat = "MM/dd/yy HH:mm"), + SessionField.SessionType("Type"), + SessionField.Stakes("Stakes"), + SessionField.Game("Game"), + SessionField.Live("Live/Room"), + SessionField.Location("Location"), + SessionField.NumberOfTables("Number of tables"), + SessionField.TableSize("Table size"), + SessionField.Bankroll("Bankroll"), + SessionField.CurrencyCode("Currency"), + SessionField.CurrencyRate("Rate"), + SessionField.Comment("Comment"), + SessionField.Buyin("Buy-in"), + SessionField.CashedOut("Net result"), + + SessionField.Break("breakminutes"), + SessionField.LimitType("limit"), + SessionField.Tips("expensesfromstack"), + SessionField.TournamentNumberOfPlayers("player"), + SessionField.TournamentPosition("place") + ) + val runGoodTournaments: CSVDescriptor = SessionCSVDescriptor( DataSource.RUNGOOD, true, diff --git a/app/src/main/java/net/pokeranalytics/android/util/csv/SessionField.kt b/app/src/main/java/net/pokeranalytics/android/util/csv/SessionField.kt index d57af082..60c14c25 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/csv/SessionField.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/csv/SessionField.kt @@ -16,7 +16,7 @@ sealed class MappedCustomCVSField { override var header: String, override var callback: ((String) -> CustomFieldEntry?)? = null, override var customField: CustomField) : CustomEntryCSVField - + } sealed class TransactionField { @@ -123,9 +123,16 @@ sealed class SessionField { override val numberFormat: String? = null ) : NumberCSVField + data class NumberOfTables( + override var header: String, + override var callback: ((String) -> Double?)? = null, + override val numberFormat: String? = null + ) : NumberCSVField + data class Blind(override var header: String, override var callback: ((String) -> Pair?)? = null) : BlindCSVField + data class Stakes(override var header: String) : CSVField data class Game(override var header: String) : CSVField data class Location(override var header: String) : CSVField data class LocationType(override var header: String) : CSVField @@ -138,6 +145,14 @@ sealed class SessionField { data class TournamentName(override var header: String) : CSVField data class TournamentType(override var header: String) : CSVField + data class Live(override var header: String, + override var callback: ((String) -> Boolean?)? = null) : TypedCSVField { + + override fun parse(value: String): Boolean? { + return true + } + } + data class CurrencyRate( override var header: String, override var callback: ((String) -> Double?)? = null,