Improve Session UI

feature/top10
Aurelien Hubert 7 years ago
parent 6de5f26733
commit 529005321b
  1. 43
      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.RowRepresentableDiffCallback
import net.pokeranalytics.android.ui.view.SessionRow import net.pokeranalytics.android.ui.view.SessionRow
import net.pokeranalytics.android.ui.view.SmoothScrollLinearLayoutManager import net.pokeranalytics.android.ui.view.SmoothScrollLinearLayoutManager
import timber.log.Timber
import java.util.* import java.util.*
class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, BottomSheetDelegate { class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, BottomSheetDelegate {
@ -60,7 +61,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) { override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
inflater?.inflate(R.menu.session_toolbar, menu) inflater?.inflate(R.menu.session_toolbar, menu)
this.sessionMenu = menu this.sessionMenu = menu
updateSessionUI() updateMenuUI()
super.onCreateOptionsMenu(menu, inflater) super.onCreateOptionsMenu(menu, inflater)
} }
@ -110,7 +111,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
currentSession.updateValue(value, row) currentSession.updateValue(value, row)
sessionAdapter.refreshRow(row) sessionAdapter.refreshRow(row)
when (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() SessionRow.START_DATE, SessionRow.END_DATE -> updateSessionUI()
} }
} }
@ -146,6 +147,8 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
*/ */
private fun updateSessionUI() { private fun updateSessionUI() {
Timber.d("updateSessionUI")
handler.removeCallbacksAndMessages(null) handler.removeCallbacksAndMessages(null)
when (currentSession.getState()) { when (currentSession.getState()) {
@ -181,11 +184,36 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
floatingActionButton.animate().scaleX(0f).scaleY(0f).alpha(0f) floatingActionButton.animate().scaleX(0f).scaleY(0f).alpha(0f)
.setInterpolator(FastOutSlowInInterpolator()).start() .setInterpolator(FastOutSlowInInterpolator()).start()
} }
else -> {
}
} }
updateMenuUI()
updateAdapterUI(true) 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 * Update adapter UI
*/ */
@ -207,20 +235,16 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
* Update the state of the session (start / pause) * Update the state of the session (start / pause)
*/ */
private fun manageSessionState() { private fun manageSessionState() {
when (currentSession.getState()) { when (currentSession.getState()) {
SessionState.PENDING -> { SessionState.PENDING, SessionState.PAUSED -> {
currentSession.startSession() currentSession.startSession()
} }
SessionState.STARTED -> { SessionState.STARTED -> {
currentSession.pauseSession() currentSession.pauseSession()
} }
SessionState.PAUSED -> { else -> {
currentSession.startSession()
} }
else -> {}
} }
updateSessionUI() updateSessionUI()
} }
@ -264,7 +288,8 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
realm.commitTransaction() 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) sessionAdapter = RowRepresentableAdapter(currentSession, this)
recyclerView.adapter = sessionAdapter recyclerView.adapter = sessionAdapter

Loading…
Cancel
Save