Improve timer for Session

dev
Aurelien Hubert 7 years ago
parent 51bf2481a9
commit 6b057b70a4
  1. 6
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  2. 14
      app/src/main/java/net/pokeranalytics/android/util/extensions/DateExtension.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.SmoothScrollLinearLayoutManager
import net.pokeranalytics.android.ui.view.rowrepresentable.SessionRow
import net.pokeranalytics.android.util.extensions.getNextMinuteInMilliseconds
import java.util.*
@ -47,7 +48,6 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate {
private val refreshTimer: Runnable = object : Runnable {
override fun run() {
// Refresh header each 30 seconds
refreshTimer()
handler.postDelayed(this, TIMER_DELAY)
}
@ -194,7 +194,7 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate {
floatingActionButton.animate().scaleX(1f).scaleY(1f).alpha(1f)
.setDuration(animationDuration)
.setInterpolator(OvershootInterpolator()).start()
handler.postDelayed(refreshTimer, TIMER_DELAY)
handler.postDelayed(refreshTimer, Date().getNextMinuteInMilliseconds())
}
SessionState.STARTED -> {
sessionMenu?.findItem(R.id.restart)?.isVisible = true
@ -203,7 +203,7 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate {
floatingActionButton.animate().scaleX(1f).scaleY(1f).alpha(1f)
.setDuration(animationDuration)
.setInterpolator(OvershootInterpolator()).start()
handler.postDelayed(refreshTimer, TIMER_DELAY)
handler.postDelayed(refreshTimer, Date().getNextMinuteInMilliseconds())
}
SessionState.PAUSED -> {
sessionMenu?.findItem(R.id.restart)?.isVisible = true

@ -141,3 +141,17 @@ fun Date.startOfYear() : Date {
calendar.set(Calendar.MONTH, 0)
return calendar.time
}
// Return the number of seconds until the next minute
fun Date.getNextMinuteInseconds() : Int {
return (getNextMinuteInMilliseconds() / 1000).toInt()
}
// Return the number of milliseconds until the next minute
fun Date.getNextMinuteInMilliseconds() : Long {
val calendar = Calendar.getInstance()
calendar.add(Calendar.MINUTE, 1)
calendar.set(Calendar.SECOND, 0)
calendar.set(Calendar.MILLISECOND, 0)
return calendar.time.time - this.time
}
Loading…
Cancel
Save