mirror of
https://github.com/divkit/divkit.git
synced 2026-06-06 20:07:59 +00:00
Remove observers in clearBinding method REVERT
This reverts commit bfbcce99335a7bb4125b5b2041c2e246abb77178, reversing changes made to ff926efa381a376de48d97d522430aa9e129b361.
This commit is contained in:
@@ -13,7 +13,6 @@ internal class ExpressionsRuntime(
|
||||
|
||||
fun clearBinding() {
|
||||
triggersController.clearBinding()
|
||||
variableController.removeGlobalObservers()
|
||||
}
|
||||
|
||||
fun onAttachedToWindow(view: DivViewFacade) {
|
||||
|
||||
+2
-9
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-10
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user