From 529005321b1738b121ac35f4614560007234202f Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Wed, 27 Feb 2019 15:13:04 +0100 Subject: [PATCH] Improve Session UI --- .../android/ui/fragment/SessionFragment.kt | 47 ++++++++++++++----- 1 file changed, 36 insertions(+), 11 deletions(-) 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 7127aef4..67e98a2d 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 @@ -27,6 +27,7 @@ import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentableDiffCallback import net.pokeranalytics.android.ui.view.SessionRow import net.pokeranalytics.android.ui.view.SmoothScrollLinearLayoutManager +import timber.log.Timber import java.util.* class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, BottomSheetDelegate { @@ -36,7 +37,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott private var sessionMenu: Menu? = null private val oldRows: ArrayList = ArrayList() private val handler: Handler = Handler() - private val refreshTimer: Runnable = object: Runnable { + private val refreshTimer: Runnable = object : Runnable { override fun run() { sessionAdapter.notifyItemChanged(0) handler.postDelayed(this, 30000) @@ -60,7 +61,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) { inflater?.inflate(R.menu.session_toolbar, menu) this.sessionMenu = menu - updateSessionUI() + updateMenuUI() super.onCreateOptionsMenu(menu, inflater) } @@ -94,7 +95,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott this, currentSession.timeFrame?.endDate ) - else -> BottomSheetFragment.create(fragmentManager, row,this, data) + else -> BottomSheetFragment.create(fragmentManager, row, this, data) } } @@ -110,7 +111,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott currentSession.updateValue(value, row) sessionAdapter.refreshRow(row) when (row) { - SessionRow.CASHED_OUT, SessionRow.BUY_IN, SessionRow.TIPS -> updateSessionUI() + SessionRow.CASHED_OUT, SessionRow.BUY_IN, SessionRow.TIPS, SessionRow.START_DATE, SessionRow.END_DATE -> updateSessionUI() } } @@ -146,6 +147,8 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott */ private fun updateSessionUI() { + Timber.d("updateSessionUI") + handler.removeCallbacksAndMessages(null) when (currentSession.getState()) { @@ -181,11 +184,36 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott floatingActionButton.animate().scaleX(0f).scaleY(0f).alpha(0f) .setInterpolator(FastOutSlowInInterpolator()).start() } + else -> { + } } + updateMenuUI() updateAdapterUI(true) } + /** + * Update Menu UI + */ + private fun updateMenuUI() { + when (currentSession.getState()) { + SessionState.PENDING -> { + sessionMenu?.findItem(R.id.restart)?.isVisible = false + sessionMenu?.findItem(R.id.stop)?.isVisible = false + } + SessionState.STARTED, SessionState.PAUSED -> { + sessionMenu?.findItem(R.id.restart)?.isVisible = true + sessionMenu?.findItem(R.id.stop)?.isVisible = true + } + SessionState.FINISHED -> { + sessionMenu?.findItem(R.id.restart)?.isVisible = true + sessionMenu?.findItem(R.id.stop)?.isVisible = false + } + else -> { + } + } + } + /** * Update adapter UI */ @@ -207,20 +235,16 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott * Update the state of the session (start / pause) */ private fun manageSessionState() { - when (currentSession.getState()) { - SessionState.PENDING -> { + SessionState.PENDING, SessionState.PAUSED -> { currentSession.startSession() } SessionState.STARTED -> { currentSession.pauseSession() } - SessionState.PAUSED -> { - currentSession.startSession() + else -> { } - else -> {} } - updateSessionUI() } @@ -264,7 +288,8 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott realm.commitTransaction() } - toolbar.title = if (currentSession.type == Session.TYPE_TOURNAMENT) getString(R.string.tournament) else getString(R.string.cash_game) + toolbar.title = + if (currentSession.type == Session.TYPE_TOURNAMENT) getString(R.string.tournament) else getString(R.string.cash_game) sessionAdapter = RowRepresentableAdapter(currentSession, this) recyclerView.adapter = sessionAdapter