From fdb973a5532f50588ca824cc6de44cc74812ac0e Mon Sep 17 00:00:00 2001 From: Laurent Date: Fri, 8 Mar 2019 16:19:22 +0100 Subject: [PATCH] Fixes duration/state display in history --- .../android/model/extensions/SessionExtensions.kt | 10 +++++++++- .../pokeranalytics/android/model/realm/Session.kt | 9 ++++++++- .../android/ui/view/SessionRowView.kt | 14 +++++++++++--- app/src/main/res/layout/row_session_view.xml | 1 + 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/model/extensions/SessionExtensions.kt b/app/src/main/java/net/pokeranalytics/android/model/extensions/SessionExtensions.kt index 64967c57..5b335cfa 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/extensions/SessionExtensions.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/extensions/SessionExtensions.kt @@ -8,7 +8,15 @@ enum class SessionState { PLANNED, STARTED, PAUSED, - FINISHED + FINISHED; + + var hasStarted: Boolean = false + get() { + return when (this) { + STARTED, PAUSED, FINISHED -> true + else -> false + } + } } /** 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 d69b3bb4..92b3b8ba 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 @@ -192,6 +192,9 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen return this.endDate ?: Date() } + /** + * Returns the nullable date + */ override fun startDate(): Date? { return this.startDate } @@ -363,7 +366,11 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen * Return the netDuration of the current session */ fun getFormattedDuration(): String { - return this.netDuration.toMinutes() + this.startDate?.let { start -> + val netDuration = this.endDate().time - start.time - this.breakDuration + return netDuration.toMinutes() + } + return NULL_TEXT } /** diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/SessionRowView.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/SessionRowView.kt index ef1e82e8..320f66ee 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/SessionRowView.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/SessionRowView.kt @@ -100,7 +100,6 @@ class SessionRowView : FrameLayout { // session.timeFrame?.let { // rowHistorySession.sessionInfoDurationValue.text = session.getFormattedDuration() // } - rowHistorySession.sessionInfoDurationValue.text = session.getFormattedDuration() // Location @@ -117,19 +116,28 @@ class SessionRowView : FrameLayout { rowHistorySession.sessionInfoTableValue.text = TableSize(it).localizedTitle(context) } + val state = session.getState() + rowHistorySession.sessionInfoDurationIcon.isVisible = state.hasStarted + rowHistorySession.sessionInfoDurationValue.isVisible = state.hasStarted + // State - if (session.getState() == SessionState.STARTED) { + if (state == SessionState.STARTED) { rowHistorySession.gameResult.isVisible = false rowHistorySession.infoIcon.isVisible = true rowHistorySession.infoIcon.setImageResource(R.drawable.chip) rowHistorySession.infoTitle.isVisible = true rowHistorySession.infoTitle.text = context.getString(R.string.running_session_state) - } else if (session.getState() == SessionState.PLANNED) { + } else if (state == SessionState.PLANNED) { rowHistorySession.gameResult.isVisible = false rowHistorySession.infoIcon.isVisible = true rowHistorySession.infoIcon.setImageResource(R.drawable.ic_planned) rowHistorySession.infoTitle.isVisible = true rowHistorySession.infoTitle.text = session.startDate!!.shortTime() + } else if (state == SessionState.PENDING) { + rowHistorySession.gameResult.isVisible = false + rowHistorySession.infoIcon.isVisible = false + rowHistorySession.infoTitle.isVisible = false + } else { rowHistorySession.gameResult.isVisible = true rowHistorySession.infoIcon.isVisible = false diff --git a/app/src/main/res/layout/row_session_view.xml b/app/src/main/res/layout/row_session_view.xml index d6c91fb4..98316b32 100644 --- a/app/src/main/res/layout/row_session_view.xml +++ b/app/src/main/res/layout/row_session_view.xml @@ -86,6 +86,7 @@ android:textAllCaps="true" android:textColor="@color/kaki_lighter" android:textSize="12sp" + android:visibility="gone" tools:text="4:21" tools:visibility="visible" />