mirror of
https://github.com/divkit/divkit.git
synced 2026-06-06 20:07:59 +00:00
Fix memory leak in DivBaseBinder by properly removing the pre-draw listener from ViewTreeObserver on detach
commit_hash:c21113506be24ae5c858d4aa8624e4e4c072bea3
This commit is contained in:
@@ -4,6 +4,8 @@ import android.graphics.drawable.Drawable
|
||||
import android.os.Build
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.View
|
||||
import androidx.core.view.doOnAttach
|
||||
import androidx.core.view.doOnDetach
|
||||
import androidx.transition.Transition
|
||||
import androidx.transition.TransitionManager
|
||||
import androidx.transition.Visibility
|
||||
@@ -244,7 +246,13 @@ internal class DivBaseBinder @Inject constructor(
|
||||
true
|
||||
}
|
||||
divView.clearVariablesListener = clearVariablesListener
|
||||
divView.viewTreeObserver.addOnPreDrawListener(clearVariablesListener)
|
||||
|
||||
divView.apply {
|
||||
doOnAttach {
|
||||
viewTreeObserver.addOnPreDrawListener(clearVariablesListener)
|
||||
doOnDetach { viewTreeObserver.removeOnPreDrawListener(clearVariablesListener) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateSizeVariable(
|
||||
|
||||
Reference in New Issue
Block a user