Fixes the replayer stopping when an export was also made

bs
Laurent 5 years ago
parent 7dafd0b87b
commit cb1ea6680a
  1. 5
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerAnimator.kt
  2. 14
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerFragment.kt
  3. 5
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerModel.kt

@ -4,6 +4,7 @@ import android.content.Context
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.RectF
import kotlinx.coroutines.android.awaitFrame
import net.pokeranalytics.android.exceptions.PAIllegalStateException
import net.pokeranalytics.android.model.handhistory.Street
import net.pokeranalytics.android.model.realm.handhistory.Action
@ -477,7 +478,7 @@ class ReplayerAnimator(var handHistory: HandHistory, var export: Boolean) {
* Generates images and image descriptor to build the video using ffmpeg
* Command line: https://trac.ffmpeg.org/wiki/Slideshow
*/
fun generateVideoContent(tableDrawer: TableDrawer, context: Context): File {
suspend fun generateVideoContent(tableDrawer: TableDrawer, context: Context): File {
var ffmpegImageDescriptor = ""
var count = 0
@ -510,7 +511,7 @@ class ReplayerAnimator(var handHistory: HandHistory, var export: Boolean) {
count++
// awaitFrame()
awaitFrame()
}

@ -36,6 +36,7 @@ class ReplayerFragment : RealmFragment() {
*/
private lateinit var model: ReplayerModel
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
super.onCreateView(inflater, container, savedInstanceState)
return inflater.inflate(R.layout.fragment_replayer, container, false)
@ -63,7 +64,18 @@ class ReplayerFragment : RealmFragment() {
override fun onPause() {
super.onPause()
pause() // avoid crashes due to the runnable calling a null reference
if (this.model.isPlaying) {
pause() // avoid crashes due to the runnable calling a null reference
this.model.forcedPause = true
}
}
override fun onResume() {
super.onResume()
if (this.model.forcedPause) {
play()
this.model.forcedPause = false
}
}
private fun initData() {

@ -14,6 +14,11 @@ class ReplayerModel : ViewModel() {
var isPlaying: Boolean = false
/***
* Indicates that the replayer has been paused forcefully due to the fragment getting paused
*/
var forcedPause = false
private val actionSpeed = 1500L
var speedMultiplier: Multiplier = Multiplier.SLOW

Loading…
Cancel
Save