diff --git a/app/src/main/java/net/pokeranalytics/android/util/csv/CSVField.kt b/app/src/main/java/net/pokeranalytics/android/util/csv/CSVField.kt index 52032742..9878960a 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/csv/CSVField.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/csv/CSVField.kt @@ -39,6 +39,10 @@ interface NumberCSVField: TypedCSVField { return null } + this.callback?.let { + return it(value) + } + val formatter = NumberFormat.getInstance() return try { 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 d6cec0d3..197cd7f1 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 @@ -1,5 +1,7 @@ package net.pokeranalytics.android.util.csv +import java.util.* + class ProductCSVDescriptors { companion object { @@ -153,40 +155,6 @@ class ProductCSVDescriptors { ) } -// val pokerAnalyticsiOS: CSVDescriptor -// get() { -// -// return SessionCSVDescriptor( -// DataSource.POKER_ANALYTICS, -// null, -// SessionField.Start("Start Date"), -// SessionField.End("End Date"), -// SessionField.Break("Break"), -// SessionField.SessionType("Type"), -// SessionField.Live("Live"), -// SessionField.NumberOfTables("Tables"), -// SessionField.Buyin("Buy In"), -// SessionField.CashedOut("Cashed Out"), -// SessionField.NetResult("Online Net"), -// SessionField.Tips("Tips"), -// SessionField.LimitType("Limit"), -// SessionField.Game("Game"), -// SessionField.TableSize("Table Size"), -// SessionField.Location("Location"), -// SessionField.Bankroll("Bankroll"), -// SessionField.CurrencyCode("Currency Code"), -// SessionField.CurrencyRate("Currency Rate"), -// SessionField.SmallBlind("Small Blind"), -// SessionField.BigBlind("Big Blind"), -// SessionField.TournamentType("Tournament Type"), -// SessionField.TournamentEntryFee("Entry fee"), -// SessionField.TournamentNumberOfPlayers("Number of players"), -// SessionField.TournamentPosition("Position"), -// SessionField.Comment("Note") -// ) -// } - - private val pokerAnalyticsiOS: CSVDescriptor get() { return SessionCSVDescriptor( @@ -194,10 +162,7 @@ class ProductCSVDescriptors { true, SessionField.Start("Start Date", dateFormat = "MM/dd/yy HH:mm:ss"), SessionField.End("End Date", dateFormat = "MM/dd/yy HH:mm:ss"), - SessionField.Break("Break", callback = { string -> - val number = NumberCSVField.defaultParse(string) - return@Break number?.times(1000.0) - }), + SessionField.Break("Break", Calendar.SECOND), SessionField.SessionType("Type"), SessionField.Live("Live"), SessionField.NumberOfTables("Tables"), diff --git a/app/src/main/java/net/pokeranalytics/android/util/csv/SessionCSVDescriptor.kt b/app/src/main/java/net/pokeranalytics/android/util/csv/SessionCSVDescriptor.kt index 540da91e..34b49106 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/csv/SessionCSVDescriptor.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/csv/SessionCSVDescriptor.kt @@ -223,7 +223,7 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean is SessionField.Tips -> session.result?.tips = field.parse(value) is SessionField.Break -> { field.parse(value)?.let { - session.breakDuration = it.toLong() * 60 * 1000 + session.breakDuration = it.toLong() // * 60 * 1000 } } is SessionField.LimitAndGame -> { 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 78755fd8..f983255f 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 @@ -1,5 +1,6 @@ package net.pokeranalytics.android.util.csv +import net.pokeranalytics.android.exceptions.PAIllegalStateException import java.util.* sealed class TransactionField { @@ -67,9 +68,22 @@ sealed class SessionField { data class Break( override var header: String, + var unit: Int = Calendar.MINUTE, override var callback: ((String) -> Double?)? = null, override val numberFormat: String? = null - ) : NumberCSVField + ) : NumberCSVField { + + override fun parse(value: String): Double? { + val v = NumberCSVField.defaultParse(value) + val multiplier = when (unit) { + Calendar.HOUR -> 3600 * 1000 + Calendar.MINUTE -> 60 * 1000 + Calendar.SECOND -> 1000 + else -> throw PAIllegalStateException("Unmanaged time unit: $unit") + } + return v?.times(multiplier) + } + } data class Tips( override var header: String,