Fixes issue in CSV import

perftest
Laurent 3 years ago
parent bd2c17909b
commit c95ab684d8
  1. 4
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  2. 2
      app/src/main/java/net/pokeranalytics/android/model/utils/SessionSetManager.kt
  3. 19
      app/src/main/java/net/pokeranalytics/android/util/csv/PACSVDescriptor.kt

@ -69,9 +69,7 @@ open class Session : RealmObject(), Savable, RowUpdatable, RowRepresentable, Tim
fun newInstance(realm: Realm, isTournament: Boolean, bankroll: Bankroll? = null): Session {
val session = Session()
val result = Result()
// result.inverseSession = WeakReference(session)
session.result = result
session.result = Result()
if (bankroll != null) {
session.bankroll = realm.copyFromRealm(bankroll)

@ -59,8 +59,6 @@ object SessionSetManager {
private fun processSessions(realm: Realm, sessionIds: List<String>) {
Timber.d("PROCESS SESSIONS")
for (sessionId in sessionIds) {
realm.findById<Session>(sessionId)?.let { session ->
if (session.startDate != null && session.endDate != null) {

@ -1,6 +1,7 @@
package net.pokeranalytics.android.util.csv
import io.realm.Realm
import io.realm.kotlin.where
import net.pokeranalytics.android.exceptions.PAIllegalStateException
import net.pokeranalytics.android.model.Limit
import net.pokeranalytics.android.model.TableSize
@ -21,15 +22,15 @@ import java.text.SimpleDateFormat
import java.util.*
abstract class PACSVDescriptor<T : Identifiable>(source: DataSource,
private var isTournament: Boolean?,
vararg elements: CSVField)
private var isTournament: Boolean?,
vararg elements: CSVField)
: DataCSVDescriptor<T>(source, *elements) {
var noSessionImport: Boolean = false
private var noSessionImport: Boolean = false
init {
val realm = Realm.getDefaultInstance()
this.noSessionImport = realm.count(Session::class.java) == 0L
this.noSessionImport = realm.count(Session::class.java) == 0L
realm.close()
}
@ -39,13 +40,20 @@ abstract class PACSVDescriptor<T : Identifiable>(source: DataSource,
private var dateFormat: DateFormat? = null
private fun newSession(isTournament: Boolean): Session {
val session = Session()
session.result = Result()
session.type = if (isTournament) Session.Type.TOURNAMENT.ordinal else Session.Type.CASH_GAME.ordinal
return session
}
/**
* Parses a [record] and return an optional Session
*/
protected fun parseSession(realm: Realm, record: CSVRecord): Session? {
val isTournament = isTournament ?: false
val session = Session.newInstance(realm, isTournament)
val session = this.newSession(isTournament) // Session.newInstance(realm, isTournament)
var startDate: Date? = null
var endDate: Date? = null
@ -277,7 +285,6 @@ abstract class PACSVDescriptor<T : Identifiable>(source: DataSource,
}
managedSession.preCompute()
return managedSession
} else {
Timber.d("Session already exists(count=$count): sd=$startDate, ed=$endDate, net=$net")

Loading…
Cancel
Save