Fixes memory problems when exporting

hh
Laurent 5 years ago
parent 59d89988ed
commit d8c6e6cbd5
  1. 6
      app/src/main/java/net/pokeranalytics/android/ui/modules/feed/FeedFragment.kt
  2. 4
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryFragment.kt
  3. 18
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/replayer/ReplayerAnimator.kt

@ -466,9 +466,9 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
*/
private fun createNewHandHistory() {
// val intent = Intent(requireContext(), TestActivity::class.java)
// startActivity(intent)
// return
val intent = Intent(requireContext(), TestActivity::class.java)
startActivity(intent)
return
AppGuard.endOfUse?.let { endDate ->

@ -743,11 +743,11 @@ class HandHistoryFragment : RealmFragment(), RowRepresentableDelegate, KeyboardL
val muxer = MMediaMuxer()
muxer.Init(requireActivity(), width.toInt(), height.toInt(), "hhVideo", "YES!")
animator.frames(requireContext()) { bitmap ->
animator.frames(requireContext()) { bitmap, count ->
try {
val byteArray = bitmap.toByteArray()
muxer.AddFrame(byteArray)
muxer.AddFrame(byteArray, count, false)
} catch (e: Exception) {
Timber.e("error = ${e.message}")
}

@ -17,9 +17,9 @@ class ReplayerAnimator(var handHistory: HandHistory, var export: Boolean) {
// Steps & Frames
enum class FrameType(val visualOccurences: Int) {
STATE(20),
GATHER_ANIMATION(1),
DISTRIBUTION_ANIMATION(1)
STATE(150),
GATHER_ANIMATION(4),
DISTRIBUTION_ANIMATION(4)
}
/***
@ -217,7 +217,8 @@ class ReplayerAnimator(var handHistory: HandHistory, var export: Boolean) {
val playerPerColumn = if (portrait) 4 else 3
val playerPerRow = 12 / playerPerColumn // 3 or 4
this.tableHPadding = width / playerPerRow / 2 * 0.8f
val padding = if (portrait) 0.8f else 0.95f
this.tableHPadding = width / playerPerRow / 2 * padding
this.tableVPadding = height / playerPerColumn * 0.8f
this.tableRect = RectF(tableHPadding, tableVPadding, width - tableHPadding, height - tableVPadding)
@ -499,7 +500,7 @@ class ReplayerAnimator(var handHistory: HandHistory, var export: Boolean) {
return false
}
fun frames(context: Context, frameHandler: (Bitmap) -> Unit) {
fun frames(context: Context, frameHandler: (Bitmap, Int) -> Unit) {
this.steps.forEach { step ->
@ -508,11 +509,8 @@ class ReplayerAnimator(var handHistory: HandHistory, var export: Boolean) {
val bitmap = Bitmap.createBitmap(this.width.toInt(), this.height.toInt(), Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
TableDrawer.drawTable(this, canvas, context)
(0 until this.frameType.visualOccurences).forEach { i ->
Timber.d(">>> step: $currentStepIndex, currentFrame: $currentFrame, vo = $i")
frameHandler(bitmap)
}
// bitmap.recycle()
frameHandler(bitmap, this.frameType.visualOccurences)
frameDrawn()
}

Loading…
Cancel
Save