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. 16
      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
this.sessions = realm.where(Session::class.java).findAll() // monitor session deletions
this.sessions?.addChangeListener { t, changeSet ->
/*
val deletedSessions =
realm.where(Session::class.java).`in`("id", changeSet.deletions.toTypedArray()).findAll()
deletedSessions.forEach { it.cleanup() }
*/
}
if (BuildConfig.DEBUG) {

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

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

Loading…
Cancel
Save