|
|
|
@ -1,6 +1,7 @@ |
|
|
|
package net.pokeranalytics.android.util.csv |
|
|
|
package net.pokeranalytics.android.util.csv |
|
|
|
|
|
|
|
|
|
|
|
import io.realm.Realm |
|
|
|
import io.realm.Realm |
|
|
|
|
|
|
|
import net.pokeranalytics.android.exceptions.PAIllegalStateException |
|
|
|
import net.pokeranalytics.android.model.Limit |
|
|
|
import net.pokeranalytics.android.model.Limit |
|
|
|
import net.pokeranalytics.android.model.TableSize |
|
|
|
import net.pokeranalytics.android.model.TableSize |
|
|
|
import net.pokeranalytics.android.model.TournamentType |
|
|
|
import net.pokeranalytics.android.model.TournamentType |
|
|
|
@ -144,7 +145,11 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean |
|
|
|
val value = record.get(index) |
|
|
|
val value = record.get(index) |
|
|
|
when (field) { |
|
|
|
when (field) { |
|
|
|
is SessionField.Start -> { |
|
|
|
is SessionField.Start -> { |
|
|
|
|
|
|
|
|
|
|
|
startDate = field.parse(value) |
|
|
|
startDate = field.parse(value) |
|
|
|
|
|
|
|
field.defaultTimeFormat?.let { |
|
|
|
|
|
|
|
startDate?.setHourMinutes(it) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
is SessionField.End -> { |
|
|
|
is SessionField.End -> { |
|
|
|
endDate = field.parse(value) |
|
|
|
endDate = field.parse(value) |
|
|
|
@ -155,6 +160,19 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean |
|
|
|
is SessionField.EndTime -> { |
|
|
|
is SessionField.EndTime -> { |
|
|
|
endDate?.setHourMinutes(value) |
|
|
|
endDate?.setHourMinutes(value) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
is SessionField.Duration -> { |
|
|
|
|
|
|
|
val hoursDuration = field.parse(value) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (startDate != null && hoursDuration != null) { |
|
|
|
|
|
|
|
val minutes = (hoursDuration * 60.0).toInt() |
|
|
|
|
|
|
|
val calendar = Calendar.getInstance() |
|
|
|
|
|
|
|
calendar.time = startDate |
|
|
|
|
|
|
|
calendar.add(Calendar.MINUTE, minutes) |
|
|
|
|
|
|
|
endDate = calendar.time |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
throw PAIllegalStateException("start date ($startDate) + hoursDuration ($hoursDuration) required") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
is SessionField.Buyin -> { |
|
|
|
is SessionField.Buyin -> { |
|
|
|
val buyin = field.parse(value) |
|
|
|
val buyin = field.parse(value) |
|
|
|
session.result?.buyin = buyin |
|
|
|
session.result?.buyin = buyin |
|
|
|
@ -164,6 +182,7 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
is SessionField.CashedOut -> session.result?.cashout = field.parse(value) |
|
|
|
is SessionField.CashedOut -> session.result?.cashout = field.parse(value) |
|
|
|
|
|
|
|
is SessionField.NetResult -> session.result?.netResult = field.parse(value) |
|
|
|
is SessionField.SessionType -> { |
|
|
|
is SessionField.SessionType -> { |
|
|
|
Session.Type.getValueFromString(value)?.let { type -> |
|
|
|
Session.Type.getValueFromString(value)?.let { type -> |
|
|
|
session.type = type.ordinal |
|
|
|
session.type = type.ordinal |
|
|
|
@ -177,6 +196,21 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean |
|
|
|
session.breakDuration = it.toLong() * 60 * 1000 |
|
|
|
session.breakDuration = it.toLong() * 60 * 1000 |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
is SessionField.LimitAndGame -> { |
|
|
|
|
|
|
|
if (value.isNotEmpty()) { |
|
|
|
|
|
|
|
var limitAndGame = value |
|
|
|
|
|
|
|
for (someLimit in Limit.values()) { |
|
|
|
|
|
|
|
if (value.startsWith(someLimit.longName)) { |
|
|
|
|
|
|
|
session.limit = someLimit.ordinal |
|
|
|
|
|
|
|
limitAndGame = limitAndGame.removePrefix(someLimit.longName) |
|
|
|
|
|
|
|
break |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
session.game = realm.getOrCreate(limitAndGame.trim()) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
is SessionField.Game -> { |
|
|
|
is SessionField.Game -> { |
|
|
|
if (value.isNotEmpty()) { |
|
|
|
if (value.isNotEmpty()) { |
|
|
|
session.game = realm.getOrCreate(value) |
|
|
|
session.game = realm.getOrCreate(value) |
|
|
|
@ -184,8 +218,9 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
is SessionField.Location -> { |
|
|
|
is SessionField.Location -> { |
|
|
|
if (value.isNotEmpty()) { |
|
|
|
val trimmedValue = value.trim() |
|
|
|
session.location = realm.getOrCreate(value) |
|
|
|
if (trimmedValue.isNotEmpty()) { |
|
|
|
|
|
|
|
session.location = realm.getOrCreate(trimmedValue) |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -197,8 +232,18 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean |
|
|
|
session.cgSmallBlind = blinds?.first |
|
|
|
session.cgSmallBlind = blinds?.first |
|
|
|
session.cgBigBlind = blinds?.second |
|
|
|
session.cgBigBlind = blinds?.second |
|
|
|
} |
|
|
|
} |
|
|
|
is SessionField.SmallBlind -> session.cgSmallBlind = field.parse(value) |
|
|
|
is SessionField.SmallBlind -> { |
|
|
|
is SessionField.BigBlind -> session.cgBigBlind = field.parse(value) |
|
|
|
val sb = field.parse(value) |
|
|
|
|
|
|
|
if (sb != null && sb > 0.0) { |
|
|
|
|
|
|
|
session.cgSmallBlind = sb |
|
|
|
|
|
|
|
} else {} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
is SessionField.BigBlind -> { |
|
|
|
|
|
|
|
val bb = field.parse(value) |
|
|
|
|
|
|
|
if (bb != null && bb > 0.0) { |
|
|
|
|
|
|
|
session.cgBigBlind = bb |
|
|
|
|
|
|
|
} else {} |
|
|
|
|
|
|
|
} |
|
|
|
is SessionField.TableSize -> session.tableSize = TableSize.valueForLabel(value) |
|
|
|
is SessionField.TableSize -> session.tableSize = TableSize.valueForLabel(value) |
|
|
|
is SessionField.TournamentPosition -> session.result?.tournamentFinalPosition = |
|
|
|
is SessionField.TournamentPosition -> session.result?.tournamentFinalPosition = |
|
|
|
field.parse(value)?.toInt() |
|
|
|
field.parse(value)?.toInt() |
|
|
|
|