Fix memory leak in DivBaseBinder by properly removing the pre-draw listener from ViewTreeObserver on detach

commit_hash:c21113506be24ae5c858d4aa8624e4e4c072bea3
This commit is contained in:
igorv8836
2025-10-24 14:24:36 +03:00
parent a6ef6e5e57
commit 336539d811
@@ -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(