diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerAnimator.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerAnimator.kt index 563daad0..b9364b9a 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerAnimator.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerAnimator.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() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerFragment.kt index b1b20daf..d59b8c0f 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerFragment.kt @@ -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() { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerModel.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerModel.kt index 3daf06b0..a2254aec 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerModel.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerModel.kt @@ -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