diff options
Diffstat (limited to 'compiler/src/main/java/android/databinding/tool/LayoutBinder.java')
-rw-r--r-- | compiler/src/main/java/android/databinding/tool/LayoutBinder.java | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/compiler/src/main/java/android/databinding/tool/LayoutBinder.java b/compiler/src/main/java/android/databinding/tool/LayoutBinder.java index 7348bd75..7969854a 100644 --- a/compiler/src/main/java/android/databinding/tool/LayoutBinder.java +++ b/compiler/src/main/java/android/databinding/tool/LayoutBinder.java @@ -216,13 +216,18 @@ public class LayoutBinder implements FileScopeProvider { for (BindingTarget bindingTarget : mBindingTargets) { try { Scope.enter(bindingTarget.mBundle); + final String className = getPackage() + "." + getClassName(); for (BindingTargetBundle.BindingBundle bindingBundle : bindingTarget.mBundle .getBindingBundleList()) { try { Scope.enter(bindingBundle.getValueLocation()); - bindingTarget.addBinding(bindingBundle.getName(), - parse(bindingBundle.getExpr(), bindingBundle.isTwoWay(), - bindingBundle.getValueLocation())); + Expr expr = parse(bindingBundle.getExpr(), + bindingBundle.getValueLocation()); + bindingTarget.addBinding(bindingBundle.getName(), expr); + if (bindingBundle.isTwoWay()) { + bindingTarget.addInverseBinding(bindingBundle.getName(), expr, + className); + } } finally { Scope.exit(); } @@ -290,10 +295,9 @@ public class LayoutBinder implements FileScopeProvider { return target; } - public Expr parse(String input, boolean isTwoWay, @Nullable Location locationInFile) { + public Expr parse(String input, @Nullable Location locationInFile) { final Expr parsed = mExpressionParser.parse(input, locationInFile); parsed.setBindingExpression(true); - parsed.setTwoWay(isTwoWay); return parsed; } |