History log of /frameworks/data-binding/compiler/src/main/java/android/databinding/tool/CompilerChef.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/CompilerChef.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/CompilerChef.java
b6887f1479c3ecec38a7989748ef33de1fbcd973 12-Jun-2015 Yigit Boyar <yboyar@google.com> Export generated class list from javac

Previously, gradle plugin would figure out generated class names
that should be excluded from the packaging. This CL changes that
behavior to export the list from java compiler so that it is
consistent going forward.

This CL also changes exclusion task to always exclude generated
binding info class to not to leak any information about user's
local.

Bug: 21668472
Change-Id: Ibeed24bd854781942b4185f618a5cd1eafe706d3
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/CompilerChef.java
1bbaf7cdf7f9d93ae09365192abb2288cf0dfb41 15-May-2015 George Mount <mount@google.com> Always generate the DataBinderMapper.java class

When a project first enables data binding, it may
not have any layout files with binding expressions.
The DataBinderMapper class should be generated to
avoid a linking error.

Bug 19945740

Change-Id: I6d8e12649c71f88e59463d7cfb2d8f260ff1eb7c
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/CompilerChef.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/CompilerChef.java
e7c2a5e45d7651899790bd347da635875f9c73fb 02-Apr-2015 George Mount <mount@google.com> Use setTag(id, val) when minSdk is ICS and later.

setTag(id, val) leaks on versions before ICS. When the
minimum SDK is before ICS, setTag(val) must be used
for bindings. However, this prevents the developer from
using the tag for his or her own purposes. Therefore,
if the minimum SDK is ICS and greater, setTag(id, val)
is used.

Change-Id: I46327084bde4bafc05a64f82ad5ebcf710820ecc
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/CompilerChef.java
125f08f32dbe73b457768aeca4accfbc44dd44b6 01-Apr-2015 George Mount <mount@google.com> Don't use reflection for DataBinderMapper.

By having a concrete implementation of DataBinderMapper in the
library and then stripping it out, the generated DataBinderMapper
may be instantiated without reflection.
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/CompilerChef.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/CompilerChef.java
61630faa88ee4817834d47294a0e17f19d8e1c51 30-Mar-2015 George Mount <mount@google.com> Require only one pass to make BR.java file.

Bug 19985005

Because the generation of Binding files created @Bindable
annotations, the BR file generation had to wait until a
second annotation pass. This caused errors to be generated
that were later cleared, causing confusion. I moved the
BR file generation to the same annotation processing stage
that generates the Binding files to clear up the error
generation.

TODO: merge the annotation processing stages so that there
is less cross-talk between annotation processors.
/frameworks/data-binding/compiler/src/main/java/android/databinding/tool/CompilerChef.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/CompilerChef.java