Fixes Break parsing

od
Laurent 6 years ago
parent cd4de7318d
commit 910b3b368b
  1. 4
      app/src/main/java/net/pokeranalytics/android/util/csv/CSVField.kt
  2. 41
      app/src/main/java/net/pokeranalytics/android/util/csv/ProductCSVDescriptors.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/util/csv/SessionCSVDescriptor.kt
  4. 16
      app/src/main/java/net/pokeranalytics/android/util/csv/SessionField.kt

@ -39,6 +39,10 @@ interface NumberCSVField: TypedCSVField<Double> {
return null return null
} }
this.callback?.let {
return it(value)
}
val formatter = NumberFormat.getInstance() val formatter = NumberFormat.getInstance()
return try { return try {

@ -1,5 +1,7 @@
package net.pokeranalytics.android.util.csv package net.pokeranalytics.android.util.csv
import java.util.*
class ProductCSVDescriptors { class ProductCSVDescriptors {
companion object { 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 private val pokerAnalyticsiOS: CSVDescriptor
get() { get() {
return SessionCSVDescriptor( return SessionCSVDescriptor(
@ -194,10 +162,7 @@ class ProductCSVDescriptors {
true, true,
SessionField.Start("Start Date", dateFormat = "MM/dd/yy HH:mm:ss"), SessionField.Start("Start Date", dateFormat = "MM/dd/yy HH:mm:ss"),
SessionField.End("End Date", dateFormat = "MM/dd/yy HH:mm:ss"), SessionField.End("End Date", dateFormat = "MM/dd/yy HH:mm:ss"),
SessionField.Break("Break", callback = { string -> SessionField.Break("Break", Calendar.SECOND),
val number = NumberCSVField.defaultParse(string)
return@Break number?.times(1000.0)
}),
SessionField.SessionType("Type"), SessionField.SessionType("Type"),
SessionField.Live("Live"), SessionField.Live("Live"),
SessionField.NumberOfTables("Tables"), SessionField.NumberOfTables("Tables"),

@ -223,7 +223,7 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean
is SessionField.Tips -> session.result?.tips = field.parse(value) is SessionField.Tips -> session.result?.tips = field.parse(value)
is SessionField.Break -> { is SessionField.Break -> {
field.parse(value)?.let { field.parse(value)?.let {
session.breakDuration = it.toLong() * 60 * 1000 session.breakDuration = it.toLong() // * 60 * 1000
} }
} }
is SessionField.LimitAndGame -> { is SessionField.LimitAndGame -> {

@ -1,5 +1,6 @@
package net.pokeranalytics.android.util.csv package net.pokeranalytics.android.util.csv
import net.pokeranalytics.android.exceptions.PAIllegalStateException
import java.util.* import java.util.*
sealed class TransactionField { sealed class TransactionField {
@ -67,9 +68,22 @@ sealed class SessionField {
data class Break( data class Break(
override var header: String, override var header: String,
var unit: Int = Calendar.MINUTE,
override var callback: ((String) -> Double?)? = null, override var callback: ((String) -> Double?)? = null,
override val numberFormat: String? = 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( data class Tips(
override var header: String, override var header: String,

Loading…
Cancel
Save