Skip to content

Commit dc64f21

Browse files
oprisnikfacebook-github-bot
authored andcommitted
Added option to selectively disable image release callbacks for Vito
Differential Revision: D58819847 fbshipit-source-id: 5dc9bf707def637909edac9c4b90e608263cfe01
1 parent 6947f27 commit dc64f21

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

‎vito/core-impl/src/main/java/com/facebook/fresco/vito/core/impl/ImageReleaseScheduler.kt‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)