|
|
|
|
@ -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() |
|
|
|
|
|
|
|
|
|
|