Improve session UI management

feature/top10
Aurelien Hubert 7 years ago
parent c42a79b702
commit 9b9a7b21d1
  1. 3
      app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt
  2. 10
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  3. 6
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt

@ -45,10 +45,11 @@ class PokerAnalyticsApplication : Application() {
// Add observer on session time frame changes // Add observer on session time frame changes
this.sessions = realm.where(Session::class.java).findAll() // monitor session deletions this.sessions = realm.where(Session::class.java).findAll() // monitor session deletions
this.sessions?.addChangeListener { t, changeSet -> this.sessions?.addChangeListener { t, changeSet ->
/*
val deletedSessions = val deletedSessions =
realm.where(Session::class.java).`in`("id", changeSet.deletions.toTypedArray()).findAll() realm.where(Session::class.java).`in`("id", changeSet.deletions.toTypedArray()).findAll()
deletedSessions.forEach { it.cleanup() } deletedSessions.forEach { it.cleanup() }
*/
} }
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {

@ -143,8 +143,8 @@ open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource
* TODO: Cascade delete? * TODO: Cascade delete?
*/ */
fun delete() { fun delete() {
realm.executeTransaction {
cleanup() cleanup()
realm.executeTransaction {
deleteFromRealm() deleteFromRealm()
} }
} }
@ -345,13 +345,17 @@ open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource
} }
} }
//TODO: Update //TODO: Update
SessionRow.START_DATE -> if (value is Date) { SessionRow.START_DATE -> if (value is Date?) {
if (value == null) {
timeFrame = null
} else {
val timeFrameToUpdate = if (timeFrame != null) timeFrame as TimeFrame else realm.createObject(TimeFrame::class.java) val timeFrameToUpdate = if (timeFrame != null) timeFrame as TimeFrame else realm.createObject(TimeFrame::class.java)
timeFrameToUpdate.setDate(value, null) timeFrameToUpdate.setDate(value, null)
timeFrame = timeFrameToUpdate timeFrame = timeFrameToUpdate
} }
}
//TODO: Update //TODO: Update
SessionRow.END_DATE -> if (value is Date) { SessionRow.END_DATE -> if (value is Date?) {
val timeFrameToUpdate = if (timeFrame != null) timeFrame as TimeFrame else realm.createObject(TimeFrame::class.java) val timeFrameToUpdate = if (timeFrame != null) timeFrame as TimeFrame else realm.createObject(TimeFrame::class.java)
timeFrameToUpdate.setDate(null, value) timeFrameToUpdate.setDate(null, value)
timeFrame = timeFrameToUpdate timeFrame = timeFrameToUpdate

@ -91,11 +91,17 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
override fun clickOnClear(row: RowRepresentable) { override fun clickOnClear(row: RowRepresentable) {
currentSession.updateValue(null, row) currentSession.updateValue(null, row)
sessionAdapter.refreshRow(row) sessionAdapter.refreshRow(row)
when(row) {
SessionRow.START_DATE, SessionRow.END_DATE -> updateSessionUI()
}
} }
override fun setValue(value: Any?, row: RowRepresentable) { override fun setValue(value: Any?, row: RowRepresentable) {
currentSession.updateValue(value, row) currentSession.updateValue(value, row)
sessionAdapter.refreshRow(row) sessionAdapter.refreshRow(row)
when(row) {
SessionRow.START_DATE, SessionRow.END_DATE -> updateSessionUI()
}
} }
/** /**

Loading…
Cancel
Save