cleanup code

feature/top10
Laurent 7 years ago
parent 81ffff4f03
commit 4c94570438
  1. 87
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt

@ -65,16 +65,23 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
// Timed interface // Timed interface
/**
* The start date of the session
*/
override var startDate: Date = Date() override var startDate: Date = Date()
set(value) { set(value) {
field = value field = value
this.computeNetDuration() this.computeNetDuration()
// nullifies endate when setting the start date after the end date
if (this.endDate != null && this.startDate.after(this.endDate)) { if (this.endDate != null && this.startDate.after(this.endDate)) {
this.endDate = null this.endDate = null
} }
this.dateChanged() this.dateChanged()
} }
/**
* the end date of the session
*/
var endDate: Date? = null var endDate: Date? = null
set(value) { set(value) {
field = value field = value
@ -82,26 +89,23 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
this.dateChanged() this.dateChanged()
} }
private fun dateChanged() { /**
if (this.endDate != null) { * The break duration of the session
SessionSetManager.updateTimeline(this) */
} else if (this.sessionSet != null) {
SessionSetManager.removeFromTimeline(this)
}
}
override fun endDate(): Date {
return this.endDate ?: Date()
}
override var breakDuration: Long = 0L override var breakDuration: Long = 0L
set(value) { set(value) {
field = value field = value
this.computeNetDuration() this.computeNetDuration()
} }
/**
* the net duration of the session, automatically calculated
*/
override var netDuration: Long = 0L override var netDuration: Long = 0L
/**
* The start date of the break
*/
var pauseDate: Date? = null var pauseDate: Date? = null
// The time frame of the Session, i.e. the start & end date // The time frame of the Session, i.e. the start & end date
@ -169,6 +173,25 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
// The features of the tournament, like Knockout, Shootout, Turbo... // The features of the tournament, like Knockout, Shootout, Turbo...
var tournamentFeatures: RealmList<TournamentFeature> = RealmList() var tournamentFeatures: RealmList<TournamentFeature> = RealmList()
/**
* Manages impacts on SessionSets
* Should be called when the start / end date are changed
*/
private fun dateChanged() {
if (this.endDate != null) {
SessionSetManager.updateTimeline(this)
} else if (this.sessionSet != null) {
SessionSetManager.removeFromTimeline(this)
}
}
/**
* Returns a non-null date for the session
*/
override fun endDate(): Date {
return this.endDate ?: Date()
}
/** /**
* Return if this session is a tournament * Return if this session is a tournament
*/ */
@ -183,7 +206,6 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
return this.type == Type.CASH_GAME.ordinal return this.type == Type.CASH_GAME.ordinal
} }
// Stats // Stats
@Ignore // SessionInterface value @Ignore // SessionInterface value
@ -321,6 +343,9 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
} }
} }
/**
* Utility method to cleanly end a session
*/
private fun end() { private fun end() {
this.pauseDate = null this.pauseDate = null
if (this.endDate == null) { if (this.endDate == null) {
@ -381,21 +406,13 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
this.sessionSet?.let { set -> this.sessionSet?.let { set ->
// get all sessions part of the deleted session set
val sessionsFromSet = set.sessions
// cleanup unnecessary related objects // cleanup unnecessary related objects
set.deleteFromRealm() set.deleteFromRealm()
// this.timeFrame?.deleteFromRealm()
this.result?.deleteFromRealm() this.result?.deleteFromRealm()
// make sessions recreate/find their session set // Updates the timeline
sessionsFromSet?.let { sessions -> SessionSetManager.removeFromTimeline(this)
sessions.forEach { session ->
// @todo
// session.timeFrame?.notifySessionDateChange(session)
}
}
} }
} }
@ -660,10 +677,7 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
cgBigBlind = null cgBigBlind = null
} }
SessionRow.BREAK_TIME -> { SessionRow.BREAK_TIME -> {
// val timeFrameToUpdate =
// if (timeFrame != null) timeFrame as TimeFrame else realm.createObject(TimeFrame::class.java)
this.breakDuration = if (value != null) (value as String).toLong() * 60 * 1000 else 0 this.breakDuration = if (value != null) (value as String).toLong() * 60 * 1000 else 0
// timeFrame = timeFrameToUpdate
} }
SessionRow.BUY_IN -> { SessionRow.BUY_IN -> {
val localResult = if (result != null) result as Result else realm.createObject(Result::class.java) val localResult = if (result != null) result as Result else realm.createObject(Result::class.java)
@ -678,11 +692,6 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
} else { } else {
localResult.cashout = (value as String).toDouble() localResult.cashout = (value as String).toDouble()
this.end() this.end()
// val timeFrameToUpdate =
// if (timeFrame != null) timeFrame as TimeFrame else realm.createObject(TimeFrame::class.java)
// timeFrameToUpdate.setEnd(Date())
// timeFrame = timeFrameToUpdate
} }
result = localResult result = localResult
@ -692,11 +701,6 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
SessionRow.END_DATE -> if (value is Date?) { SessionRow.END_DATE -> if (value is Date?) {
this.endDate = value this.endDate = value
// val timeFrameToUpdate =
// if (timeFrame != null) timeFrame as TimeFrame else realm.createObject(TimeFrame::class.java)
//// timeFrameToUpdate.setDate(null, value)
// timeFrameToUpdate.setEnd(value)
// timeFrame = timeFrameToUpdate
} }
SessionRow.GAME -> { SessionRow.GAME -> {
if (value is ArrayList<*>) { if (value is ArrayList<*>) {
@ -725,15 +729,6 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
} }
SessionRow.START_DATE -> if (value is Date) { SessionRow.START_DATE -> if (value is Date) {
this.startDate = value this.startDate = value
// if (value == null) {
// timeFrame = null
// } else {
// val timeFrameToUpdate =
// if (timeFrame != null) timeFrame as TimeFrame else realm.createObject(TimeFrame::class.java)
// timeFrameToUpdate.setStart(value)
//// timeFrameToUpdate.setDate(value, null)
// timeFrame = timeFrameToUpdate
// }
} }
SessionRow.TABLE_SIZE -> tableSize = value as Int? SessionRow.TABLE_SIZE -> tableSize = value as Int?
SessionRow.TIPS -> { SessionRow.TIPS -> {

Loading…
Cancel
Save