diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt index eb6c5fcc..6d18c7bb 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt @@ -52,9 +52,6 @@ open class Session : RealmObject(), Manageable, StaticRowRepresentableDataSource val session = Session() session.result = Result() - val computableResult = ComputableResult() - computableResult.session = session - if (bankroll != null) { session.bankroll = bankroll } else { @@ -156,7 +153,6 @@ open class Session : RealmObject(), Manageable, StaticRowRepresentableDataSource this.updateRowRepresentation() } - // The limit type: NL, PL... var limit: Int? = null @@ -190,7 +186,7 @@ open class Session : RealmObject(), Manageable, StaticRowRepresentableDataSource var cgBigBlind: Double? = null set(value) { field = value - this.updateComputableResult() + this.computeStats() } // Tournament @@ -287,6 +283,14 @@ open class Session : RealmObject(), Manageable, StaticRowRepresentableDataSource * Pre-compute various stats */ private fun computeStats() { + + if (this.startDate != null && this.endDate != null && this.computableResult == null) { + val computableResult = realm.createObject(ComputableResult::class.java) + computableResult.session = this + } else { + this.computableResult?.deleteFromRealm() + } + this.updateComputableResult() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt index e8faee6c..e2b432c4 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt @@ -161,12 +161,9 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc private fun createSessionGroupsAndStartCompute(realm: Realm) : List { -// val cgSessions = mutableListOf() -// val tSessions = mutableListOf() - val s = Date() - val allSessions = realm.where(ComputableResult::class.java).isNotNull("session.endDate").findAll() + val allSessions = realm.where(ComputableResult::class.java).findAll() val allSessionSets = realm.where(SessionSet::class.java).findAll() Timber.d(">>>>> number of computables to compute = ${allSessions.size}") diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/SessionObserverFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/SessionObserverFragment.kt index ffa166be..ef45f46d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/SessionObserverFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/SessionObserverFragment.kt @@ -10,7 +10,7 @@ open class SessionObserverFragment : PokerAnalyticsFragment() { init { val realm = Realm.getDefaultInstance() - this.endedSessions = realm.where(ComputableResult::class.java).isNotNull("session.endDate").findAll() + this.endedSessions = realm.where(ComputableResult::class.java).findAll() // ComputableResult are existing only if sessions are ended this.endedSessions.addChangeListener { _, _ -> this.sessionsChanged() }