summaryrefslogtreecommitdiff
path: root/integration-tests/TestApp/app
AgeCommit message (Collapse)Author
2015-09-08Merge "Fat jars and jarjars" into studio-master-devGeorge Mount
2015-09-08Fat jars and jarjarsGeorge Mount
Release versions of the gradle plugin and annotation processor now contain all of their dependencies, repackaged. Change-Id: I93fba3eed150aafa8a88d439103b90d270e71cdf
2015-09-04Better handling of out of bounds exceptions on bracket expressions.George Mount
Bug 23820607 Handle out of bounds in bracket expressions by returning the default value. Change-Id: I8b3a5a5ced48acfd6683ee1df6264480526244d1
2015-08-26Fix the bug about marking expressions as read earlyYigit Boyar
@{obj4.text} @{obj4.useHello ? obj4.text : `hello`} This case was broken and would not re-read obj4.text if only obj4.useHello is invalidated. It was partially fixed in Change-Id: Id449c8819b8dc0301a7ab893002478914780d480 but but it was bringing it down to exact equality which would mean we could fail to mark sth as read. The coverage logic we use in expressions when marking them as read was giving false positives, which results in marking expressions as read before they are fully read. This CL fixes that bug. The safe fix introduces some false negatives when a conditional is behind another conditional. We can address this post v1. There was also another bug about setting conditional flags even though the ternary does not need to be calculated. @{obja.boolMethod(a)} @{a ? objb.boolMethod(b) : objc.boolMethod(c)} When obja is invalidated, it would re calculate the second binding expression too even though it is never used (because that expression is not invalidated). The re-calculation would happen because we would calculate the value of `a` and set the conditional flags w/o checking invalidation. This would result in unnecessary calculations. I've also fixed it for first degree where the ternary is not under another ternary. The proper fix would requires bigger effort, post V1. bug: 22957203 Change-Id: Ib73f31eac358f2ad7652395a021baaa93b79adf7
2015-08-26Support generics in conversion parameters.George Mount
Bug 23490384 Change-Id: I691da60a671d15c73cf2753ff830f9effb360e96
2015-08-26Make setVariable return true for declared variables.George Mount
Bug 23518718 Change-Id: Ic147421aefe0adbf576285ca642334fcb907abfb
2015-08-26Merge "Fix access to static field of generic object." into studio-master-devGeorge Mount
2015-08-26Fix NPE when evaluating bracket expressions.George Mount
Bug 23498104 Change-Id: I8de149e573721485b916ae6ae692113f3ed2990d
2015-08-26Fix access to static field of generic object.George Mount
Bug 23491360 Change-Id: I94c62b67dfa8f8bd4c7f9fb5ab1adff4a927f77b
2015-08-19Remove automatic converstions to Object.George Mount
Bug 23348140 Change-Id: I6bdcb0982c2e755dc4ad0eb53b35e07d1ac9ebed
2015-08-17Add test to ensure event binding works on Observables.George Mount
Bug 23147420 Change-Id: I1f18ec7d8928ec7c65fdc75a5e1914b0cce608d7
2015-08-06Tests for setting image src.George Mount
Change-Id: I0515dc0d24aa5851ada2a49afcc01cbafe3186c0
2015-08-06Support fields for includes with IDs and no binding.George Mount
Bug 22816783 Change-Id: Id8b5b19568fedb3a39c34944a3e2bee69c036fb7
2015-08-06Support binding expressions in android:tag attribute.George Mount
Bug 22972105 Also added error reporting for tags on root elements and tests. ICS+ supports tags on root elements. Change-Id: I1f3fe5e59b68a04fd80e3e2638a7b7743fac027d
2015-08-05Fix ternary operator with null assigned to listener.George Mount
Bug 22907244 When finding a common type, null is an Object and the listener is an interface, so the types don't match. Change-Id: I0c5a88ec02230767b894b2feda17a1a1c8cef9f7
2015-08-05Support different event handlers having different API levels.George Mount
Bug 22957226 Change-Id: Ia08bcb857872eccad3340c14b8d10b78198b90a6
2015-08-05Fixed: conditional expression not always waiting for its dependencies.George Mount
Bug 22957203 Some conditional expressions were not waiting for all of their dependencies to be evaluated before evaluting the expression. Change-Id: Id449c8819b8dc0301a7ab893002478914780d480
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-13Support dependency injection.George Mount
Bug 22389109 Change-Id: Iec63375c5412edc03b4808ee129a7596b61bf9e6
2015-07-06Add errors for layout files in different configsYigit Boyar
This CL adds ScopedExceptions to multi-config layout parsing. Bug: 21953001 Change-Id: I5d62b711120e890733e7f5c08108041109e4eefd
2015-06-30Data binding startup improvementYigit Boyar
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
2015-06-30Merge "Fix bug preventing use of android IDs for Views." into mnc-devGeorge Mount
2015-06-29Fix bug preventing use of android IDs for Views.George Mount
Bug 22160629 Change-Id: Ib0a2b6d5333e63e25045ccf39a5582e1d74494df
2015-06-26Fix precedence of chained ternary operation.George Mount
Bug 22108739 Change-Id: I443da537f51e503edbeb269db7432757d58887a9
2015-06-25Carry over location information from parser to annotation processorYigit Boyar
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
2015-06-23Support calling listener methods without interfaces.George Mount
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
2015-06-22Make observables parcelableYigit Boyar
We got some feedback where people want to keep their View presenter classes parcelable. This CL makes observables parcelable and their lists transient to allow this. Bug: 21785040 Change-Id: I76adc7d7ca3876c83fd8749f6dbcf02a926c97c2
2015-06-17Fix bug where parent of include not being tagged.George Mount
Bug 21850030 Change-Id: I977ff4879d8bf2dff408a6ad7f7ba539d979cf60
2015-06-16Support old values in binding adapters.George Mount
Bug 21594573 When a binding adapter takes old values, the old values are stored in the generated binding as fields. Change-Id: Ib163d74720a8199d70ff6884d59fbe4e0d17fece
2015-06-15Merge "Remove fragment data binding." into mnc-devGeorge Mount
2015-06-15Remove fragment data binding.George Mount
Fragment data binding is much more complex than the previous implementation supported. It may be that we don't want to support data binding to fragments because fragment life cycle differs from View life cycle, including back stack support. I made it so that fragments with IDs do not get public final fields on the generated data binding objects. Bug 21667601 Change-Id: Ief77972ea854f7ded5a93aa59822d76ef533fc21
2015-06-12Fix public field resolutionYigit Boyar
This CL fixes a bug where if a field is prefixed w/ one of our private field conventions, we would not be able to find it because we would strip it. Now, when searching fields, we'll also look for exact match as we do for methods. Bug: 21807334
2015-06-11Request a rebind when invalidateAll is calledYigit Boyar
Bug: 21785116 Change-Id: I79b886df1f016a8abe87723876502adfe1843897
2015-06-11Merge "Improve static method / field handling" into mnc-devYigit Boyar
2015-06-10Improve static method / field handlingYigit Boyar
Previously, we would allow access to static fields via instance variables but it would not work for methods. Moreover, the behavior was not exactly the same with how java handles it. In java, the instance can be null but our binding code would not evaluate it if instance is null. This CL fixes these bugs by adding static resolution support to methods and replacing their variable identifiers with static identifiers while the method is being resolved so that the rest of the system is still consistent. Bug: 20412284 Change-Id: Id97ce564c312b97d5a0e60d7d7a5bbd06b131071
2015-06-10Support data binding for fragments.George Mount
Bug 21667601 Change-Id: I636dec1bbb5567d70a996e115e6bf8322c3aa29d
2015-06-06Only create case statements for Bindable attributes.George Mount
Bug: 21571818 Change-Id: Id03c7a7de6e39d7f59da6cda11d3311f072addd0
2015-06-05Fix inflate() to support attachToRoot = trueGeorge Mount
Bug 21660713
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-20Observable* listeners should be callbacks.George Mount
Bug 21324996 Changed listeners to callbacks and made them abstract base classes, following API conventions. Change-Id: Ibc849d11c1fea83c02ba593d9aaf2ebf8cfc2eef
2015-05-20Fix IllegalStateException during ObservableArray notification.George Mount
Bug 21313082 The list state wasn't being released properly, so it would try to release it multiple times (once for each listener). Change-Id: I05e0d190476a761c28e95420b5a3d5b6e249a41f
2015-05-20Fix String.format expression.George Mount
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
2015-05-20Merge "Properly handle constant binding expressions"Yigit Boyar
2015-05-19Properly handle constant binding expressionsYigit Boyar
Previously, we would assign each binding expression a flag id even if it is constant. This was necessary to be able to implement invalidateAll. Later, we've changed how invalidateAll works and assigned it a separate flag. Unfortunately, we were still incrementing ids for such binding expressions, causing index out of bounds exceptions during code generation in certain situations. This CL fixes that bug and does not add flags to constant binding expressions anymore. Bug: 21284295 Change-Id: I114bf34520d0b246426ce7d45b8c511cf6709778
2015-05-19Better handling of generics in BindingAdaptersGeorge Mount
Bug 21277338 Handle <T> adapter(View, T value) Also test and fixes to support View<T> with multi-attribute adapters. Change-Id: I12bda5b235111762b55357fed7f163ccaf83838d
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-05-15Fix generic setter on generic View.George Mount
When a View is generic (e.g. MyView<T>), and a setter takes a generic parameter, the setter parameter didn't match the argument. Change-Id: I115ace5582b847bda792d75cf7aaf57ffc8bd4cd
2015-05-14Merge "Use only values for @BindingAdapter."George Mount
2015-05-14Merge "Generate Binding class when <layout> exists."George Mount
2015-05-14Fix unit test broken due to merge.George Mount