Remove observers in clearBinding method REVERT

This reverts commit bfbcce99335a7bb4125b5b2041c2e246abb77178, reversing
changes made to ff926efa381a376de48d97d522430aa9e129b361.
This commit is contained in:
tayrinn
2023-05-23 19:10:54 +03:00
parent cb778f5f02
commit 4956afacea
3 changed files with 2 additions and 20 deletions
@@ -13,7 +13,6 @@ internal class ExpressionsRuntime(
fun clearBinding() {
triggersController.clearBinding()
variableController.removeGlobalObservers()
}
fun onAttachedToWindow(view: DivViewFacade) {
@@ -7,6 +7,7 @@ import com.yandex.div.core.view2.errors.ErrorCollector
import com.yandex.div.data.Variable
import com.yandex.div.data.VariableDeclarationException
import com.yandex.div.internal.Assert
import com.yandex.div.json.missingVariable
@Mockable
@@ -17,7 +18,6 @@ internal class VariableController {
private var onAnyVariableChangeCallback: ((Variable) -> Unit)? = null
private val notifyVariableChangedCallback = { v : Variable -> notifyVariableChanged(v) }
private val notifyVariableDeclaredCallback = { v : Variable -> onVariableDeclared(v) }
private fun addObserver(name: String, observer: (Variable) -> Unit) {
val observers = onChangeObservers.getOrPut(name) {
@@ -92,7 +92,7 @@ internal class VariableController {
*/
fun addSource(source: VariableSource) {
source.observeVariables(notifyVariableChangedCallback)
source.observeDeclaration(notifyVariableDeclaredCallback)
source.observeDeclaration { onVariableDeclared(it) }
extraVariablesSources.add(source)
}
@@ -129,11 +129,4 @@ internal class VariableController {
Assert.assertNull(onAnyVariableChangeCallback)
onAnyVariableChangeCallback = callback
}
fun removeGlobalObservers() {
extraVariablesSources.forEach {
it.removeOnChangeObserver(notifyVariableChangedCallback)
it.removeDeclarationObserver(notifyVariableDeclaredCallback)
}
}
}
@@ -25,14 +25,4 @@ internal class VariableSource(
it.addObserver(observer)
}
}
internal fun removeOnChangeObserver(observer: (Variable) -> Unit) {
variables.values.forEach {
it.removeObserver(observer)
}
}
internal fun removeDeclarationObserver(observer: (Variable) -> Unit) {
declarationObservers.remove(observer)
}
}