summaryrefslogtreecommitdiff
path: root/integration-tests/TestApp/app/src/main/java/android/databinding/testapp
AgeCommit message (Collapse)Author
2015-10-16Create BR id from CallableYigit Boyar
This CL fixes a bug where if an expression maps into a method with a different name, we would create the BR id from the expression instead of the referenced method. Bug: 24973950 Change-Id: Ia57c31d926a737c9fc84775780aeb5e617769d43
2015-09-30Fix resolving listeners for multi-attribute binding adapters.George Mount
Bug 24538724 Change-Id: I39a72fd701abf9d2368d2a0a7fc5a4c1ac63c0a0
2015-09-29Bring all instance BindingAdapters into Component.George Mount
This also uses a non-arbitrary ordering for name clashes. Bug 24407912 Change-Id: Ibd96adfb979af86370889acb7b60c1b6953b190d
2015-09-10Merge "Improve some BindingAdapters." into studio-master-devGeorge Mount
2015-09-08Improve some BindingAdapters.George Mount
Bug 23818442 Allow padding to accept dimen resource values. Allow spinner:entries to accept List values. Change-Id: I48367ce6c87388d1d9b89e6c835304e031ff50c7
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-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-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-17Add test to ensure event binding works on Observables.George Mount
Bug 23147420 Change-Id: I1f18ec7d8928ec7c65fdc75a5e1914b0cce608d7
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-13Support dependency injection.George Mount
Bug 22389109 Change-Id: Iec63375c5412edc03b4808ee129a7596b61bf9e6
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-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-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-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-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-13Use only values for @BindingAdapter.George Mount
Bug 20977114
2015-04-30Merge "Support multi-param adapters in code generation"Yigit Boyar
2015-04-30Support multi-param adapters in code generationYigit Boyar
Bug: 19800022 Change-Id: I40c4ac72f24f965db12fd1c7dec6591184160ae5
2015-04-30Add test for adapters with custom namespace and only 1 parameterYigit Boyar
Bug: 20725703 Change-Id: I198cc320cd0ac58afc2c5017ed160b1441a9009d
2015-04-27Support using aliased classes as outer classes.George Mount
Bug 20350624
2015-04-20Support array length.George Mount
Change-Id: If9ddfd09d7becc504741b8dd4f91332de944bfe1
2015-04-13Bindable properties must only be on Observables.George Mount
Bug 20075584 Change-Id: I2f9db60d1cc921451ada31529e28a4f33526a9ef
2015-04-06Fix ternary handling and generate better codeYigit Boyar
This CL fixes an issue about ternary expressions where a ternary expression would be evaluated with its last evaluated dependency. This would create a problem where ternary expressions would not be evaluated if other branch of the conditional is chosen, This bug is fixed by checking outher flags such that we'll still calculate it together if all dependencies are behind the same flag vs we'll calculate it independently if its dependency flags are different. This CL also improves the generated code in two ways: - When there is an if inside if, we don't add flag check (the if) if all of its conditions are covered in the parent if. - I replaced flag names with binary values. This looks more readable then generated names. Bug: 20073197 Change-Id: I9d07868206a5393d6509ab0a205b30a796e11107
2015-04-03Fix bugs related to how we handle Ternary opsYigit Boyar
This CL fixes two bugs. 1) When a Ternary operation was inside another operation, we were not handling dependecies properly and model would think that the container expression can be evaluated before Ternary is evaluated, eventually causing an exception in code-gen because Ternay is not calculated yet. 2) This also fixes another bug where when ?? is used, we would put ifTrue and ifFalse statements in wrong order and eventually evaluate !??. Bug: 19939148 Change-Id: I3e1d2bee172e47412bb8ef9e7c785aef47337155
2015-03-23Move to package android.databinding.George Mount