From 772b304877de503a9d8229a8f5f9f057a9562847 Mon Sep 17 00:00:00 2001 From: Laurent Date: Tue, 2 Feb 2021 10:51:18 +0100 Subject: [PATCH] Adds crash logs to better understand how stopping a pending session happens --- .../android/model/extensions/SessionExtensions.kt | 14 ++++++-------- .../android/ui/modules/session/SessionFragment.kt | 13 ++++++++----- 2 files changed, 14 insertions(+), 13 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 71e5c23b..487da82f 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 @@ -5,12 +5,10 @@ import androidx.work.Data import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import net.pokeranalytics.android.R -import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.model.TournamentType import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.util.NotificationSchedule import net.pokeranalytics.android.util.extensions.toCurrency -import timber.log.Timber import java.util.* import java.util.concurrent.TimeUnit @@ -37,17 +35,17 @@ enum class SessionState { fun Session.getState(): SessionState { val start = this.startDate - if (start == null) { - return SessionState.PENDING + return if (start == null) { + SessionState.PENDING } else { if (start > Date()) { - return SessionState.PLANNED + SessionState.PLANNED } else if (this.endDate != null) { - return SessionState.FINISHED + SessionState.FINISHED } else if (this.pauseDate != null) { - return SessionState.PAUSED + SessionState.PAUSED } else { - return SessionState.STARTED + SessionState.STARTED } } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt index b18da70f..14e7db60 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt @@ -72,9 +72,6 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr private var _binding: FragmentSessionBinding? = null private val binding get() = _binding!! -// private val coroutineContext: CoroutineContext -// get() = Dispatchers.Main - override fun onResume() { super.onResume() @@ -282,6 +279,9 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr */ private fun updateSessionUI(firstDisplay: Boolean = false) { + val state = currentSession.getState() + CrashLogging.log("Update session UI: $state") + this.updateRowRepresentation() handler.removeCallbacksAndMessages(null) @@ -289,7 +289,7 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr val animationDuration = if (firstDisplay) 0L else 300L val floatingActionButton = binding.floatingActionButton - when (currentSession.getState()) { + when (state) { SessionState.PENDING, SessionState.PLANNED -> { sessionMenu?.findItem(R.id.restart)?.isVisible = false floatingActionButton.setImageResource(R.drawable.ic_outline_play) @@ -334,7 +334,10 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr */ private fun updateMenuUI() { - when (currentSession.getState()) { + val state = currentSession.getState() + CrashLogging.log("Update menu UI: $state") + + when (state) { SessionState.PENDING, SessionState.PLANNED -> { sessionMenu?.findItem(R.id.restart)?.isVisible = false sessionMenu?.findItem(R.id.stop)?.isVisible = false