Age | Commit message (Collapse) | Author |
|
We were using a version of antlr that is published by
tunnelvision which works fine but this becomes a problem
when another gradle plugin wants to depend on antlr as
well. It is best if we depend on the original one to
avoid conflicts with other libs.
Bug: 27175207
Change-Id: I0a87f9902361ace5dc6d03d838e2ad431c844de8
|
|
Bug 26962999
Two-way binding was using the inverted expressions directly
without localizing variables. That meant that if there was
a variable set to null during evaluation, it may get a
NullPointerException even though it checked for null
on the value previously. This CL localizes the variables
so that cannot happen.
Change-Id: Ia55955ce0f1cb750e6a678e72e0cda03f0e3c9b6
|
|
This CL adds support for assigning callbacks to listeners using lambda expressions.
These expressions can receive either 0 or N arguments where N is equal to the
number of parameters in the callback function.
These expressions are evaluated when the callback is invoked. In other words, they
are independent from the rest of the ExprModel except the Identifier expressions.
Since these are limited to 1 full expression and they don't have any invalidation
flags; we use a verbose branching code generation mode where we calculate all possible
execution paths, eliminate trivial ones and generate the code. This allows callbacks
to be thread safe as well. See ExecutionPath class for details.
It is not efficient but since these are rere occasions, should be OK.
Callback expressions are still forced to be expressions that return value. To handle
`void` case, I've added `void` and `Void` as acceptable symbols. Also, if the callback
method returns void, the expression is free to return `void` or any other value.
¯\\_(ツ)_/¯
I've also moved kotlin to rc0. Although rc0 is unrelated to this task, it made more
sense to upgrade here because most changes it will ask for were already done in
this branch.
Bug: 26849440
Change-Id: I805b3d470f85df9c2ce3f3ed5ca74925a08bb7a5
|
|
This CL starts loading version from android gradle plugin's
configuration file rather than data binding's configuration
file. This might be an issue in the future if we can support
additional build tools but for now, this will help simplfy
integration with tools.
Bug: 26560734
Change-Id: I1ea6f8e4716873b4ea84930e780c47eb7a6079ec
|
|
I've also run some cleanup inspections to keep codebase
more up to date.
Bug: 26738574
Change-Id: I02aa43157cad858c0ea60dd41a22150e3cf2cfa1
|
|
Change-Id: I27e6700d3e0382cb73e519d4015bee56cc631166
|
|
Bug 1474349
Bug 22460238
Two-way data binding won't work without a few changes to the
extension library. This adds those changes and tests to ensure
that two-way data binding works.
Change-Id: I5e204609925bb2dc5404176f9b4e59386f200c7f
|
|
Change-Id: I91babbab13cd00d4f0df149c997349fca0aed80b
|
|
This CL fixes a bad code generation where we would set a variable to itself,
which breaks if you use a tool like ErrorProne.
I've also updated gradle version and data binding versions.
Bug: 25077399
Change-Id: I6620faf4cad5fa74dc7c35be03c46c4a76c9cfbc
|
|
Change-Id: I49844f458742dd106f7e1419633f428bbb98e238
|
|
Change-Id: I62b77fd118e2715d272a16d96b9083d2347f5fb1
|
|
This CL gets rid of the gradle plugin and instead provides
DataBindingBuilder for the gradle plugin to directly use.
Now, everything that is deployed via SDK Manager (lib and adapters)
are included as prebuilts so that we avoid accidently changing
them w/o an SDK manager release.
There is still work to do:
> re-enable proguard for externel dependencies
> release a batch to ensure everything works
Bug: 22516688
Change-Id: I83ace15bd6d3d23bf5b4ad850f36453dd23ebd43
|
|
Bug 24936186
Drawables could be loaded from themed resources as of L (v21),
so the Theme should be used to load those resources.
The same is true for ColorStateList in M (v23).
Change-Id: I3e6d7a55ff7fe744ed872f83f550abfb018a3df8
|
|
If a ternary expressions's predicate is constant, we would never evaluate it
which means we would never evaluate the ternary unless some other expression
depends on it.
This CL changes ExprModel to move such constant expressions into pending list
so that they can be evaluated + necessary flags are set.
We can actually avoid this process by replacing TernaryExpression with something
else when this case is detected but that would be a bigger change and not safe
shortly before the release.
Hopefully, codegen logic will be refactored into a more well defined process.
Bug: 24768154
Change-Id: I0918568414b64d64f070978f1f8e77cc3b6c85fd
|
|
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
|
|
Change-Id: I8f7d47b1174476160c8bea5111186039bd0f389e
|
|
Change-Id: I4a3691408b7df1727935d3e715abbeef957c1f6d
|
|
This CL changes how we find original xml file.
Previously, it was a comment in the XML file. Now
it is another interface we can query (nicer).
This CL adds support for it but still keeps the
XML reference support.
Bug: 24408701
Change-Id: I0ac91b2f81f7264735f11d4ded154a2fd807e776
|
|
Change-Id: Iec30be0e153f7354d4909970be4292fcf11988bf
|
|
Change-Id: Ia75eb20a50571aa6f8ebb80596962694d2d535fa
|
|
|
|
This CL fixes local builds where some deps were not
downloaded but they were coming from maven (by mistake).
Bug: 24000910
Change-Id: Id188b30a6ac94c14e382dcedab1906bfb7a7e4f0
|
|
This CL adds necessary tasks to data binding gradle file so
that we can build support library deployment with their
prebuilts.
To release support sdk, run:
./gradlew clean createArchive -PuseReleaseVersion=true
Change-Id: I1a99946ef01a289ea88276581358e77a81fd8f7c
|
|
Change-Id: Icc9a38acb0398d6eb2c516e7edef506e46b9710b
|
|
Change-Id: I071d5da7b0a41238a810b880e10881ffc22a344d
|
|
This CL updates android gradle dependency to 1.3.0-beta4 which brings
support for provided aar dependencies. Taking advantage of it, now base
adapters release an AAR instead of a Jar w/o any hacks.
Bug: 22491107
Change-Id: I18fdd75de806aa507504b34a18c030ee25133b4d
|
|
This CL introduces a new development plugin that downloads all
dependencies into the given repository. This will allow us to
build data binding in build servers w/o internet connection.
By default, it is setup to disable public repositories to avoid
adding a new dependency w/o running the script.
Public repositories can be added by running -PaddRemoteRepos=true.
There is also a convenience script to fetch dependencies.
localize.sh
Bug: 19626302
Change-Id: I9d200550b76c3b60119cdbbdb4e1e7772d0da1d7
|
|
This CL also adds a bintray plugin to easily upload artifacts to bintray.
The plugin is a separate project (because main project depends on it) so
I've committed it as a prebuilt since it is unlikely to change.
Change-Id: I801b334e40bfb49a18bf7190e5100e0910a606a2
|
|
This CL encapsulates the shared code between build time and annotation
processing into a separate project. This project has no dependency on
kotlin so we can easily use it in gradle plugin.
Bug: 21815393
Change-Id: I9fd2e88885d06ff5423121747817ffcd056e8c74
|
|
Bug: 21756156
|
|
Bug: 21571818
Change-Id: Id03c7a7de6e39d7f59da6cda11d3311f072addd0
|
|
|
|
This CL merges annotation processor, xml grammer and grammer builder
into compiler project.
It also adds logic to pass gradle's --debug parameter to the
annotation processor so that we can grab logs when necessary.
Bug: 21327802
Change-Id: I1d07002519a6b95de3cdc0891bd00f461f73e8ea
|
|
|
|
We had a bug where we would never be able to solve a case if there
are two expressions that trigger a circular dependency.
a ? b : c
b ? a : d
We actually had some logic to partially elevate conditional
dependencies but there were two issues with it:
* LayoutInflator was caching shouldReadFlags permanently
* There was a bug in how we resolve whether all potential evaluation
paths are covered. (we were not using a cloned bitset but rather
updating the original).
I've fixed these two issues and added logic to partially elevate
conditional expressions if they cannot be marked as fully read.
Bug: 21324645
Change-Id: I779afb6dae48920196404d3cfbb5f8774686404d
|
|
This CL changes gradle plugin to automatically include necessary
dependencies for data binding. This way, just applying data
binding to a project will be sufficient.
I've also updated version to .9 to get ready for preview release
Bug: 21262586
Change-Id: I12ba64915e69b383b507d155c1a16267356e059b
|
|
|
|
This CL adds 3rd party licenses to compiler-fatJar so that
we can use it in our build process w/o maven dependency.
It also removes dependency on SDK folder for api level lookup
by shipping versions.xml file with the bundle.
It adds a new gradle task, preparePrebuilds, which bundsles
all necessary builds to a prebuild folder which should be
committed. These pre-builds will be used by the makefile to
support make builds.
Bug: 19945740
Change-Id: I0bba72bbb13770aba94317301217ddd842211e2d
|
|
Bug 19933644
|
|
This CL adds support for building multi module apps
with proper context.
For library modules, we only generate base classes in the initial
compilation. We also generate a temporary BR file which does
not have final methods.
When final app is being generated, all layout binders, adapters
and Bindable information gets merged and all final classes
are generated in their appropriate packages.
This CL also adds support for Test runs and any
number of build variants.
Bug: 19714904
Change-Id: I9b50b54db05f3fa206eec33709d43c2ac94a9e5e
|
|
Change-Id: I7055c109cb04ae2ae375c2126c2a70fa52e85e31
|