summaryrefslogtreecommitdiff
path: root/databinding.properties
AgeCommit message (Collapse)Author
2016-04-11Move to org.antlr from tunnelvisionYigit Boyar
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
2016-03-08Have two-way binding use localized variables to prevent NPE.George Mount
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
2016-02-16Lambda In da houseYigit Boyar
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
2016-01-25Sync version with android gradle pluginYigit Boyar
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
2016-01-22Update data binding to kotlin beta 4Yigit Boyar
I've also run some cleanup inspections to keep codebase more up to date. Bug: 26738574 Change-Id: I02aa43157cad858c0ea60dd41a22150e3cf2cfa1
2016-01-19Use data binding 1.0-rc5 until SDK is released.George Mount
Change-Id: I27e6700d3e0382cb73e519d4015bee56cc631166
2016-01-14Two-way binding extensionsGeorge Mount
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
2015-12-04Fix compiler tests setup, upgrade public known versionYigit Boyar
Change-Id: I91babbab13cd00d4f0df149c997349fca0aed80b
2015-12-04Avoid re-reading variables.Yigit Boyar
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
2015-11-13DataBinding grows up :')Yigit Boyar
Change-Id: I49844f458742dd106f7e1419633f428bbb98e238
2015-11-05upgrade kotlin to 1.0-beta1Yigit Boyar
Change-Id: I62b77fd118e2715d272a16d96b9083d2347f5fb1
2015-10-28Data binding as studio dep + java6Yigit Boyar
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
2015-10-14Load drawables using the theme when necessary.George Mount
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
2015-10-08Handle constant predicate in ternaryYigit Boyar
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
2015-10-07Report syntax errors even though Antlr can recoverYigit Boyar
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
2015-10-05Fix sdk builder, update kotlin to fix proguardYigit Boyar
Change-Id: I8f7d47b1174476160c8bea5111186039bd0f389e
2015-10-05Fix data binding for 1.4.0-beta5Yigit Boyar
Change-Id: I4a3691408b7df1727935d3e715abbeef957c1f6d
2015-09-25Add support for gradle 1.4.0-beta3Yigit Boyar
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
2015-09-18Upgrada kotlin to m13Yigit Boyar
Change-Id: Iec30be0e153f7354d4909970be4292fcf11988bf
2015-09-14Move tool versions into configYigit Boyar
Change-Id: Ia75eb20a50571aa6f8ebb80596962694d2d535fa
2015-09-11Merge "Support lib deployment script" into studio-master-devYigit Boyar
2015-09-11Fix local buildsYigit Boyar
This CL fixes local builds where some deps were not downloaded but they were coming from maven (by mistake). Bug: 24000910 Change-Id: Id188b30a6ac94c14e382dcedab1906bfb7a7e4f0
2015-09-11Support lib deployment scriptYigit Boyar
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
2015-08-25Reduce updateRegistration calls on rebind.George Mount
Change-Id: Icc9a38acb0398d6eb2c516e7edef506e46b9710b
2015-08-17Change from gradle plugin version 1.3.0-beta4 to 1.3.1George Mount
Change-Id: I071d5da7b0a41238a810b880e10881ffc22a344d
2015-07-15Use aar to release base adapters.Yigit Boyar
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
2015-07-14Localize MavenYigit Boyar
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
2015-07-10Set version to rc1 and also update kotlin versionYigit Boyar
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
2015-06-16Move shared code between build and compiler to a separate projectYigit Boyar
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
2015-06-10Upgrade kotlin to 0.12.412Yigit Boyar
Bug: 21756156
2015-06-06Only create case statements for Bindable attributes.George Mount
Bug: 21571818 Change-Id: Id03c7a7de6e39d7f59da6cda11d3311f072addd0
2015-05-22upgrade to gradle 1.2Yigit Boyar
2015-05-22Merge projects for an easier releaseYigit Boyar
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
2015-05-20Update version to rv0, disable debug logsYigit Boyar
2015-05-20Handle inter-expr dependencies properlyYigit Boyar
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
2015-05-18Configure dependencies using the pluginYigit Boyar
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
2015-04-21WIP eapYigit Boyar
2015-04-16Add 3rd party licenses to fatJarYigit Boyar
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
2015-03-26Move to public final fields instead of getters for Views.George Mount
Bug 19933644
2015-03-19Support for multi module setupsYigit Boyar
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
2015-03-13Move configuration values into a config fileYigit Boyar
Change-Id: I7055c109cb04ae2ae375c2126c2a70fa52e85e31