|
|
|
@ -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 |
|
|
|
@ -111,7 +115,7 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen |
|
|
|
// value?.let { it.notifySessionDateChange(this) } |
|
|
|
// value?.let { it.notifySessionDateChange(this) } |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
// The time frame sessionGroup, which can contain multiple sessions |
|
|
|
// The time frame sessionGroup, which can contain multiple endedSessions |
|
|
|
override var sessionSet: SessionSet? = null |
|
|
|
override var sessionSet: SessionSet? = null |
|
|
|
|
|
|
|
|
|
|
|
// the date of creation of the app |
|
|
|
// the date of creation of the app |
|
|
|
@ -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 |
|
|
|
@ -256,6 +278,9 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen |
|
|
|
when (getState()) { |
|
|
|
when (getState()) { |
|
|
|
SessionState.PENDING, SessionState.PLANNED -> { |
|
|
|
SessionState.PENDING, SessionState.PLANNED -> { |
|
|
|
this.startDate = Date() |
|
|
|
this.startDate = Date() |
|
|
|
|
|
|
|
if (this.tournamentEntryFee != null) { |
|
|
|
|
|
|
|
this.result?.buyin = this.tournamentEntryFee |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// val sessionTimeFrame = this.timeFrame ?: realm.createObject(TimeFrame::class.java) |
|
|
|
// val sessionTimeFrame = this.timeFrame ?: realm.createObject(TimeFrame::class.java) |
|
|
|
// sessionTimeFrame.setStart(Date()) |
|
|
|
// sessionTimeFrame.setStart(Date()) |
|
|
|
@ -318,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) { |
|
|
|
@ -378,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) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -480,10 +500,10 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen |
|
|
|
return when (row) { |
|
|
|
return when (row) { |
|
|
|
SessionRow.BANKROLL -> bankroll?.name ?: NULL_TEXT |
|
|
|
SessionRow.BANKROLL -> bankroll?.name ?: NULL_TEXT |
|
|
|
SessionRow.BLINDS -> getBlinds() |
|
|
|
SessionRow.BLINDS -> getBlinds() |
|
|
|
SessionRow.BREAK_TIME -> this.breakDuration.toMinutes() |
|
|
|
SessionRow.BREAK_TIME -> if (this.breakDuration > 0.0) this.breakDuration.toMinutes() else NULL_TEXT |
|
|
|
SessionRow.BUY_IN -> buyin.toCurrency() |
|
|
|
SessionRow.BUY_IN -> this.result?.buyin?.toCurrency() ?: NULL_TEXT |
|
|
|
SessionRow.CASHED_OUT, SessionRow.PRIZE, SessionRow.NET_RESULT -> result?.cashout?.toCurrency() ?: NULL_TEXT |
|
|
|
SessionRow.CASHED_OUT, SessionRow.PRIZE, SessionRow.NET_RESULT -> this.result?.cashout?.toCurrency() ?: NULL_TEXT |
|
|
|
SessionRow.COMMENT -> if (comment.isNotEmpty()) comment else NULL_TEXT |
|
|
|
SessionRow.COMMENT -> if (this.comment.isNotEmpty()) this.comment else NULL_TEXT |
|
|
|
SessionRow.END_DATE -> this.endDate?.shortDateTime() ?: NULL_TEXT |
|
|
|
SessionRow.END_DATE -> this.endDate?.shortDateTime() ?: NULL_TEXT |
|
|
|
SessionRow.GAME -> getGameTitle() |
|
|
|
SessionRow.GAME -> getGameTitle() |
|
|
|
SessionRow.INITIAL_BUY_IN -> tournamentEntryFee?.toCurrency() ?: NULL_TEXT |
|
|
|
SessionRow.INITIAL_BUY_IN -> tournamentEntryFee?.toCurrency() ?: NULL_TEXT |
|
|
|
@ -657,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) |
|
|
|
@ -675,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 |
|
|
|
@ -689,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<*>) { |
|
|
|
@ -722,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 -> { |
|
|
|
|