Age | Commit message (Collapse) | Author |
|
Bug 27808662
Change-Id: I870b0db47e3ed970a3bd67e602e873e503610028
|
|
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
|
|
This CL fixes a bug in expression evaluator where we would
elevate a conditional dependency by mistake when it is not
read completely. This was caused by marking bit paths as
read in the same cycle.
There is still a potential bug in the code path where we
detect a variable would've already been calculated for a
dependency to be calculated (e.g. a ? a : b) but this
change is a fairly safe compared to making a big change
in that logic.
Bug: 895468
Change-Id: I60a704a59c3b5b8e4f833f060c6233d356dab6c8
|
|
When binding a primitive to an EditText, a common
pattern is to use '@{"" + value}'. This, however,
doesn't allow for a two-way data binding expressions.
To mitigate the need for conversion functions, a simple
inversion for this expression wsa implemented that
just converts value from a String when possible.
This CL also fixes a bug in which a method matching
the first parameter was always chosen, reguardless of
the second and further parameters.
Change-Id: I36828d9f54d2073965358fceb140b2d5e6328919
|
|
Bug 26937350
Our event handling syntax is obj.method, where java 8
uses the syntax obj::method. This adds support for
the java 8 syntax and adds a deprecation warning for
the old syntax.
Change-Id: Ideb0570c2646f674da031f642ed3369e8c5fcd3b
|
|
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
|
|
The grouping happens at parsing time, so grouping
as part of the expression model is unnecessary. It
can be inferred.
Change-Id: I10c617516741b9ff8115144d51fcadcd2f8b87d6
|
|
This CL fixes a bug where if a field/accessor is Observable and
Bindable, it would not be assigned a BR id, resulting in
malformed generated code.
Bug: 26922185
Change-Id: Ia3d11204460fc1967f0a7b60ed7cba1d3698098d
|
|
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
|
|
I've also run some cleanup inspections to keep codebase
more up to date.
Bug: 26738574
Change-Id: I02aa43157cad858c0ea60dd41a22150e3cf2cfa1
|
|
Change-Id: I96ab85fd9ec3d857929055b804fd094a4e3d245c
|
|
Bug 26254496
Change-Id: Ied6b942fada3a99ec331ad59f2f5ee6e6c33a20b
|
|
Bug 1474349
Bug 22460238
This adds two-way data binding for those attributes
on Views that also have event listeners for them.
General use is also supported, but event listeners
are required to notify when those properties change.
Change-Id: Iedc66a604257930265f9d661f69658a0a0c3208b
|
|
Change-Id: I1a18e06af7bf2d65228f1491663b6e096a9538ed
|
|
These are referenced by the tools/idea project.
Also, some minor code improvments.
Change-Id: Ia1f6a80c257b9022a2efda553ccc9096e03edc00
|
|
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
|
|
studio-master-dev
|
|
Change-Id: I6e07443d7d51eaad0d655f4fcd2e3e43ef14bdc8
|
|
Change-Id: I017049ba3fb3c0d66982f504192d6a2814859f9a
|
|
If a layout file is inherited from a module but also exists
in the app, w~e force the app version to the metadata of the
module version. This means forcing its created class location
to be the same as the module. This usually happens when gradle
or aapt generates some layout during app compilation.
Bug: 25369165
Change-Id: I5d2002ac04d16cfe9935fe5580548344b19b4aca
|
|
Change-Id: I62b77fd118e2715d272a16d96b9083d2347f5fb1
|
|
Change-Id: I271b3fc364c2d8689f22e0555174a8ca30bc04b5
|
|
This reverts commit f5517fe4100cc751b365edb43a07455b7b435215.
Change-Id: Ic60d99c9a9508dbd912a67fa2d467e7332c51dfb
|
|
This reverts commit 0a39d327fc5dedb0a766f1ad44d7b1fc7048ef84.
Change-Id: I72fad57691ac1fb1f74ccdd82d61d16b0b52e435
|
|
Change-Id: I3d5e2a07075603fbc2ee9b6c93490f6ea2d7c594
|
|
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
|
|
Change-Id: I2c7b5321bdfc7e3932a691cf724b9bd79edff471
|
|
We may need some static methods between releases and instead of
requiring a release, we can now supply the methods as a dynamically
generated class, DynamicUtil
Change-Id: I9d53ae99b4b5717cd4780efdcb7a3f85bfac8dd9
|
|
|
|
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
|
|
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 fixes a bug in data binding mapper where if the View's tag does
not match one of the expected tags, it would fall through to the ext
case statemet which would result in a meaningless error.
This CL detects the case and throws an exception. This case should not
happen since it is not a supported case but happened here due to another
bug
Bug: 24745000
Change-Id: Ic5c6d4ce2da6ad043fb6fe56cd0847c98ea2472d
|
|
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: I10c41d5b9edc1312000b6cfbfc5b481dd72f031c
|
|
Bug 24507894
The character set was not being properly detected for the XML
file when it was being loaded, so it was always using the default
character set. For Windows, this turned out to be something other
than UTF-8. Now, a library is used to detect the character set
before parsing.
Change-Id: I2ea041701de59f0e72fd18288b0f62cb2beb74e6
|
|
studio-master-dev
|
|
Bug 24538724
Change-Id: I39a72fd701abf9d2368d2a0a7fc5a4c1ac63c0a0
|
|
|
|
When loading methods from the SDK, we would only load
methods that have since > Application.minApi. This
way, we would keep the hash very small. On the other
hand, this algorithm break if a newer API version adds
a method that has the same signature with a subclass.
This case happened when we added setForeground to
View at API 23 but it has been in FrameLayout since 1.
Bug:24509802
Change-Id: I7ac7ca5d1aac142a9afe8cd57ab9497dfb649650
|
|
This also uses a non-arbitrary ordering for name clashes.
Bug 24407912
Change-Id: Ibd96adfb979af86370889acb7b60c1b6953b190d
|
|
|
|
Change-Id: I92a80a21ef5f466e84b22c3bbf1132ea56819f4b
|
|
Bug 24136218
Change-Id: I0996ac8d3b42d29fbfe1c14da1343e05954c3bef
|
|
Change-Id: Iec30be0e153f7354d4909970be4292fcf11988bf
|
|
This CL fixes local builds where some deps were not
downloaded but they were coming from maven (by mistake).
Bug: 24000910
Change-Id: Id188b30a6ac94c14e382dcedab1906bfb7a7e4f0
|
|
Bug: 23979611
Change-Id: I7825a718dddd1c15d598f19a4fe8722ddc5a5763
|
|
|
|
Release versions of the gradle plugin and annotation processor
now contain all of their dependencies, repackaged.
Change-Id: I93fba3eed150aafa8a88d439103b90d270e71cdf
|