History log of /frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01 17-Sep-2015 George Mount <mount@google.com> Two-way binding

Bug 1474349
Bug 22460238

This adds two-way data binding for those attributes
on Views that also have event listeners for them.
General use is also supported, but event listeners
are required to notify when those properties change.

Change-Id: Iedc66a604257930265f9d661f69658a0a0c3208b
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
59229481aec5a284d322a2ca80dff836485feb0c 30-Oct-2015 Yigit Boyar <yboyar@google.com> upgrade kotlin to 1.0-beta1

Change-Id: I62b77fd118e2715d272a16d96b9083d2347f5fb1
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
fd8342a51a96282df315cd27055ba539e89a8c9e 07-Oct-2015 Yigit Boyar <yboyar@google.com> Report syntax errors even though Antlr can recover

This CL makes Antlr parser more strict by not allowing errors.
Antlr usually tries to recover from these errors but thats
not what we really want for this use case.

This CL also updates version codes to rc4 since rc3 is already out.

Change-Id: I0d305e06a6cdcbae2f37573c3c6ae4233cdd7958
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
975c05c00dae9193a636c4775df81d8665fc6749 30-Sep-2015 George Mount <mount@google.com> Fix resolving listeners for multi-attribute binding adapters.

Bug 24538724

Change-Id: I39a72fd701abf9d2368d2a0a7fc5a4c1ac63c0a0
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
7c1b078ca84336caba7f811709836562bd5550d6 17-Sep-2015 George Mount <mount@google.com> Add context as an automatic variable.

Bug 24136218

Change-Id: I0996ac8d3b42d29fbfe1c14da1343e05954c3bef
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
23910cf498c35704a03ba4f3889de2ab97ccbe21 25-Aug-2015 George Mount <mount@google.com> Make setVariable return true for declared variables.

Bug 23518718

Change-Id: Ic147421aefe0adbf576285ca642334fcb907abfb
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
793e979f25e190162eacf46d6a4efc3efc1d2f91 31-Jul-2015 George Mount <mount@google.com> Support different event handlers having different API levels.

Bug 22957226

Change-Id: Ia08bcb857872eccad3340c14b8d10b78198b90a6
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
e4cd38824a6627b9fef229c549c636e35ad63b5f 07-Jul-2015 George Mount <mount@google.com> Support dependency injection.

Bug 22389109

Change-Id: Iec63375c5412edc03b4808ee129a7596b61bf9e6
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
731b74f7f44e67312a1fc4161c4e0aae221b2417 25-Jun-2015 Yigit Boyar <yboyar@google.com> Introduce Scopes to track logical stack traces

This CL introduces a static class called Scope, which is
used the logical processing stack for data binding.
These scopes are used to generate meaningful error messages
when an error is detected.

Bug: 21953001
Change-Id: I5470a8c4ad94401d34a140762baae9d53c5a0402
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
4df4ba38a62b791bbbc25e923efe8d9c2f9a52e9 27-Jun-2015 Yigit Boyar <yboyar@google.com> Data binding startup improvement

This CL replaces how we map tags(string) to layout ids in the
generated DataBindingMapper class. Previously, we would create
a hashmap which was some unnecessary work in startup. The alternative
was using switch(string) but we did not want to require java 7.
This CL does what java 7's switch(string) would do thanks to the
well defined API of String.hashCode.

This CL also adds a method to DataBindingUtil to convert BR.ids
back to String for debugging purposes.

Bug: 22108735
Change-Id: I4b8ef816f4aac99b2963793dd46519b056ce4a30
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
c1560e6b00b398867da12fbdc5a1fcd1d50b801c 25-Jun-2015 Yigit Boyar <yboyar@google.com> Carry over location information from parser to annotation processor

This CL changes LayoutParser to use Antlr which provides us the location
information. This information is now serialized inside the bundle so
that we can read it in the annotation processor, enabling better error
logs with location information.

Bug:21953001
Change-Id: If9b5cf2f87598a609ddf77235decc17098a46a6b
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
2611838bffef5a009ca71e3e9e59a93f29b098ed 24-Jun-2015 Yigit Boyar <yboyar@google.com> Remove guava from compiler

This CL removes all dependency from guava and replaces it w/ either plain
java or some utilities.

Bug: 22047836
Change-Id: I94be54ed992ab6b5f27c47a8cf400ae60aef02f8
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
716ba89e7f459f49ea85070d4710c1d79d715298 18-Jun-2015 George Mount <mount@google.com> Support calling listener methods without interfaces.

Bug 21594573

It is convenient to be able to assign event listeners by just
referencing a method, similar to the way onClick="handler" works.

This adds a whole lot of listeners for the framework. Additional
listeners must be added for support library components.

This isn't perfect in resolving listeners. Perfect resolution
requires that each expression is evaluated in its own context
within the binding statement. If, for example, the same method
name is used for a listener and an accessor, we will assume
that the listener is used always and there will be a compilation
failure.

Change-Id: If4705122b67a451430451b6e7d890eb813af1c5c
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
8b1da958f181639d33dfaa907c0ee66add2decd6 23-Jun-2015 Yigit Boyar <yboyar@google.com> Don't generate inflators for libraries

If a library project (A) depends on anohter library project (B),
we would generate code that accesses R file of project B while
compiling project A. Unfortunately, gradle does not generate that
R file when compiling A, it only exists when compiling the app
and B.
This CL changes the base class generation to not to generate
real code for base classes unless we are building the final app.

Bug: 22001270
Change-Id: Ic107001ab58c94016f37f7f6fc0470a822db3aa7
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
c96847768305d83c6bc4919432af9bd9bfe4c08e 20-May-2015 George Mount <mount@google.com> Fix String.format expression.

An expression @{String.format("%s", "test")} was failing
for two reasons: the L.d was doing string concatenation
and String wasn't imported and considered a StaticIdentifier.

Change-Id: I67b4c880f1e147a5c1aac15b3b845d4112c6d00b
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
e9b33bac04bb1ce1444d7f1744fcec1ecd3a57da 30-Apr-2015 Yigit Boyar <yboyar@google.com> Support multi-param adapters in code generation

Bug: 19800022

Change-Id: I40c4ac72f24f965db12fd1c7dec6591184160ae5
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
7ff60c24c6de7ba0c674fe65a82ad4a88dab2e5d 13-Apr-2015 George Mount <mount@google.com> Delay evaluating the View and Binding class names.

Binding and View class names should be evaluated when processing
the binding expressions, not during layout XML processing.

Allow alternate binding class names as declared in layout
XML.

Use "binding_" as a prefix for binding tags instead of "bindingTag"

Preparation steps for customized data binding classes.

Change-Id: If08de28aad06401e8a5d461341b2616e17498aa1
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
96e1c821dd446d1ed78f8ae61131550588f60a24 10-Apr-2015 George Mount <mount@google.com> Support merge tags.

This also drops the requirement for include tags to have an ID.

Each root view tag is given a numeric suffix, starting with 0.
Merge tags can have multiple roots, the first of which always
is suffixed with 0. The remainder have tag identifiers that
are interspersed with the tags used with expressions. The
numeric suffix is used to identify the View in the mapBindings
call.

Include tag information now uses the tag of its parent so that
its parent will search for the includes within it. When
mapBindings is looking at the parent, it looks for all direct
children with the appropriate tag of the format "layout*/name_0".
Then it searches for all siblings with the same prefix and different
numeric suffixes. Any that are found are considered part of the
same merged include. If it finds another with _0, it knows that
a new include was found.

Change-Id: Idd1144d9037648193724667320744bd079791476
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
0390898cf7c4fcad255e8cfd6802f722b516cb2c 03-Apr-2015 George Mount <mount@google.com> Use layout path for the tag on bound layout roots.

Change-Id: I6bda5d5716e749251b27c112865da066ba908509
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
2e2043d30f95585de2069e1cbb23e022ab0e71c4 02-Apr-2015 George Mount <mount@google.com> Change "generated" to "databinding"
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
53398fcd565782a0fd973eec43eac5c659c927c0 01-Apr-2015 George Mount <mount@google.com> Address comment in CL

Bug 19933646
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
dea555cf42dc3583604699c8c018d22681f56166 30-Mar-2015 George Mount <mount@google.com> Merge implementation into base class for single implementations.

Bug 19933646

Change-Id: Ifc947d929b5275e32598e8d40f0122504a99d7f8
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
34a18e6a231f3b64726bd93e7e097a0d5a75995d 26-Mar-2015 George Mount <mount@google.com> Move to public final fields instead of getters for Views.

Bug 19933644
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
fead9ca09b117136b35bc5bf137340a754f9eddd 23-Mar-2015 George Mount <mount@google.com> Move to package android.databinding.
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/LayoutBinder.java