diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/TimeFrame.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/TimeFrame.kt index fa5a426a..8f0eb411 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/TimeFrame.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/TimeFrame.kt @@ -56,7 +56,7 @@ open class TimeFrame : RealmObject() { this.computeDuration() - if (this.sessions != null) { + if (this.session != null) { this.notifySessionDateChange() } } @@ -100,7 +100,7 @@ open class TimeFrame : RealmObject() { when (sessionGroups.size) { 0 -> this.createSessionGroup() - 1 -> this.updateSingleSessionGroup(sessionGroups.first()?.timeFrame!!) + 1 -> this.updateSingleSessionGroup(sessionGroups.first()!!) else -> this.mergeSessionGroups(sessionGroups) } @@ -111,6 +111,9 @@ open class TimeFrame : RealmObject() { */ private fun createSessionGroup() { + val realm = Realm.getDefaultInstance() + realm.beginTransaction() + val group: SessionGroup = SessionGroup.newInstance() group.timeFrame?.let { it.startDate = this.startDate @@ -118,14 +121,17 @@ open class TimeFrame : RealmObject() { } ?: run { throw ModelException("TimeFrame should never be null here") } - + group.sessions.add(this.session) + realm.commitTransaction() } /** * Single session group update * Changes the group timeframe using the current timeframe dates */ - private fun updateSingleSessionGroup(groupTimeFrame: TimeFrame) { + private fun updateSingleSessionGroup(sessionGroup: SessionGroup) { + + var groupTimeFrame: TimeFrame = sessionGroup.timeFrame!! // tested in the query if (this.startDate.before(groupTimeFrame.startDate)) { groupTimeFrame.startDate = this.startDate @@ -140,6 +146,9 @@ open class TimeFrame : RealmObject() { // Realm Update val realm = Realm.getDefaultInstance() realm.beginTransaction() + if (!sessionGroup.sessions.contains(this.session)) { + sessionGroup.sessions.add(this.session) + } realm.copyToRealmOrUpdate(groupTimeFrame) realm.commitTransaction()