From 9b9a7b21d16e57425c0c2239656401e499e0c6b5 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Thu, 21 Feb 2019 16:13:08 +0100 Subject: [PATCH] Improve session UI management --- .../android/PokerAnalyticsApplication.kt | 3 ++- .../android/model/realm/Session.kt | 16 ++++++++++------ .../android/ui/fragment/SessionFragment.kt | 6 ++++++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt index e7a1e2da..a9b1286f 100644 --- a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt +++ b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.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) { diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt index 6b37fdaf..70e58398 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt @@ -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 diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt index da726c7a..9c3a73bb 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt @@ -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() + } } /**