|
|
|
|
@ -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<RowRepresentable> = 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 |
|
|
|
|
|