summaryrefslogtreecommitdiff
path: root/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/src/main/java/android/databinding/tool/LayoutBinder.java')
-rw-r--r--compiler/src/main/java/android/databinding/tool/LayoutBinder.java14
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;
}