@@ -15,6 +15,9 @@ object ImageReleaseScheduler {
1515 var releaseDelayMs: Long = 16 * 5 // Roughly 5 frames.
1616
1717 var improveDelayedReleasing = false
18+ var enableReleaseDelayed = true
19+ var enableReleaseNextFrame = true
20+ var enableReleaseImmediately = true
1821
1922 class ImageReleaseState (val drawable : KFrescoVitoDrawable ) :
2023 Runnable , DeferredReleaser .Releasable {
@@ -36,12 +39,15 @@ object ImageReleaseScheduler {
3639 private val deferredReleaser = DeferredReleaser .getInstance()
3740
3841 fun releaseImmediately (drawable : KFrescoVitoDrawable ) {
42+ if (! enableReleaseImmediately) {
43+ return
44+ }
3945 drawable.imagePerfListener.onReleaseImmediately(drawable)
4046 drawable.reset()
4147 }
4248
4349 fun releaseDelayed (drawable : KFrescoVitoDrawable ) {
44- if (drawable.releaseState.delayedReleasePending) {
50+ if (! enableReleaseDelayed || drawable.releaseState.delayedReleasePending) {
4551 return
4652 }
4753 drawable.imagePerfListener.onScheduleReleaseDelayed(drawable)
@@ -52,6 +58,9 @@ object ImageReleaseScheduler {
5258 }
5359
5460 fun releaseNextFrame (drawable : KFrescoVitoDrawable ) {
61+ if (! enableReleaseNextFrame) {
62+ return
63+ }
5564 cancelReleaseDelayed(drawable)
5665 drawable.imagePerfListener.onScheduleReleaseNextFrame(drawable)
5766 deferredReleaser.scheduleDeferredRelease(drawable.releaseState)
0 commit comments