Commit Graph

29 Commits

Author SHA1 Message Date
Deepanshu Gupta
2385e2184a Merge "Revert "Switch LayoutLib to Java 8"" into nyc-dev 2016-04-29 20:05:39 +00:00
Deepanshu Gupta
a9de835c17 Add StubMethodAdapterTest
This tests the bugfix in StubMethodAdapter made in the change with id
I098996e43e330e995d33f12df1c16355bbc02f0f (commit 491523d)

Change-Id: I1ac897a49071dd9558bdc6b8abec29df913a6047
2016-03-02 13:30:31 +00:00
Deepanshu Gupta
621c43d8e5 Revert "Switch LayoutLib to Java 8"
This reverts commit 7914e4ca03.

Change-Id: I0f7c40199e4c31c4f321d40d4d4dfe60a0fda299
2016-02-18 04:53:55 +00:00
Deepanshu Gupta
7914e4ca03 Switch LayoutLib to Java 8
The main build hasn't swtiched to java 8, but lambdas are already used
in layoutlib. This fixes the build break.

Change-Id: I4dd69ebd736179067899f5d86d3608d5fdb03d93
2016-02-17 20:50:00 -08:00
Deepanshu Gupta
23e47f5621 Java 8 in layoutlib-create
Upgrade to ASM 5 and diamond operators.

Also minor fixes here and there.

Bug: 26442940
Change-Id: I5611ed0889aa94cca8655fec47799e1ddccb0150
2016-01-08 08:03:06 -08:00
Deepanshu Gupta
cbb1ba7f49 Add ability to promote fields.
This adds the ability to promote private fields to public ones to
enable layoutlib to access them. This was first added in change
b556decf75, but reverted in
847b0d3ad2. This is essentially a revert
of the change again, but without the SimpleMonthView related stuff.

Also, promote the Choreographer's field as is needed to support
animations.

Change-Id: Iee45a465c7a1cadd362c1841385941e6232e4900
2015-12-01 21:49:12 -08:00
Diego Perez
865ad592fe Merge "Fix delegation of methods within inner static classes" into mnc-ub-dev am: 603544d4c4 am: 14a826380d am: 0b76d094c6
am: f9281b6dfe

* commit 'f9281b6dfe94f1df0fac3ddbad846012b0a6fb7d':
  Fix delegation of methods within inner static classes
2015-11-19 03:19:00 +00:00
Diego Perez
6777f54fa4 Fix delegation of methods within inner static classes
Currently, delegation of inner static classes methods is broken since
the rewritten method tries to pass an instance to the outer class. This
updates the method generation to only pass the reference if the inner
class is not static.

Change-Id: I8493929cafdbd80968989b422af0f956fa65681a
2015-11-13 14:06:50 +00:00
Deepanshu Gupta
847b0d3ad2 Revert "LayoutLib: Switch SimpleDateFormat to icu."
This reverts commit b556decf75.

This is no longer needed as the SimpleDateFormat has been switched in
the framework. Also, the revert leaves the change to intellij inspection
profiles as is, because that change was independent of the main issue.

Change-Id: I6f4d7d9ddc10262b087ad6a2604fa50562fac043
2015-08-07 10:31:54 -07:00
Deepanshu Gupta
b556decf75 LayoutLib: Switch SimpleDateFormat to icu.
Use ICU's implementation of SimpleDateFormat in LayoutLib. The format
patterns used are not supported by java.text.SimpleDateFormat.

The change required adding a mechanism for promoting visibility of
fields in the framework in the create tool.
TODO: Add additional tests in the create tool for this new
functionality.

Change-Id: Id0f4be41f9731c42a28919c32cc5ef271a656982
2015-08-06 16:04:04 -07:00
Deepanshu Gupta
f8ea750455 Make Context.getClassLoader() work.
Context.getClassLoader() is used by the LayoutInflater and can be used
by custom views. However, when called from the LayoutInflater, this
needs to return only the Framework classes. This is so that the IDE gets
a chance to instantiate the custom views, which helps in better error
reporting and better fallback in case of exceptions, like MockView.

To workaround this need of the same method returning different results
based on where it's called from, the method call in LayoutInflater is
renamed to getFrameworkClassLoader() and the new method is injected in
Context. The implementation of getFrameworkClassLoader() maintains the
existing behaviour of getClassLoader().

Context.getClassLoader() is now modified to return classes from both
Framework and the app namespace.

Also, update the list of packages to search for Framework views.

Change-Id: I1a6be4aa1fc5c1c5520b5440a348a52f10b6eb3b
2015-05-19 19:56:20 -07:00
Deepanshu Gupta
908a4f9a43 am 4f133894: Exclude KXmlParser from LayoutLib.
* commit '4f133894a6e98d8d30557ea42cec92cfb21fa5c9':
  Exclude KXmlParser from LayoutLib.
2014-10-08 17:34:12 +00:00
Deepanshu Gupta
4f133894a6 Exclude KXmlParser from LayoutLib.
The class was incorrectly being included in the LayoutLib.

Change-Id: I3c86662efa068019fe9165f2fc49a00d0a1b7f2d
2014-10-08 10:12:11 -07:00
Deepanshu Gupta
6fb5fdc233 Add layoutlib tests to DIST_DIR [DO NOT MERGE]
Add the layoutlib and layoutlib-create tests to DIST_DIR for sdk
targets. These can be used for continuous testing on the build server.

Change-Id: I747dddcddfd8009937668bec4d75cb99bf63235f
(cherry picked from commit f9c749c9901c459f77ffc6f4fbbc15f4142c6e0a)
2014-10-01 12:43:52 -07:00
Deepanshu Gupta
bd4133133a Build layoutlib_create tests. [DO NOT MERGE]
Change-Id: Ia13a090f8ec29b2b2a107825b6a13d7db77e6d61
(cherry picked from commit 2294f939bc79ce902a40db37def64cc28394d56b)
2014-10-01 12:43:43 -07:00
Deepanshu Gupta
a0904bf7aa Add layoutlib tests to DIST_DIR
Add the layoutlib and layoutlib-create tests to DIST_DIR for sdk
targets. These can be used for continuous testing on the build server.

Change-Id: I747dddcddfd8009937668bec4d75cb99bf63235f
2014-09-05 14:01:27 -07:00
Deepanshu Gupta
b988c8fa66 Build layoutlib_create tests.
Change-Id: Ia13a090f8ec29b2b2a107825b6a13d7db77e6d61
2014-09-03 12:57:12 -07:00
Deepanshu Gupta
d2a411840c Fix LayoutLib Create tests.
Change-Id: Ica3efe417d54da7dc74b21d28215199d37600744
2014-08-04 22:59:38 +00:00
Deepanshu Gupta
c5a58437e6 Style improvements to LayoutLib create.
This change doesn't change the functionality but removes dead code and
simplifies various places to remove warnings.

Change-Id: I371e06bfbd587dbf0eeafc69787b9805f7008f62
2014-07-11 21:40:46 +00:00
Deepanshu Gupta
6f9baea477 Fix visitFieldInsn in layoutlib_create. [DO NOT MERGE]
The bug caused some classes to be missed when computing the dependencies
of the existing classes.

Change-Id: I7285ff67e016ce5d73a8550501f49acc73cfadfa
(cherry-picked from 4a0f93bd32)
2014-04-23 16:11:57 -07:00
Deepanshu Gupta
4a0f93bd32 Fix visitFieldInsn in layoutlib_create.
The bug caused some classes to be missed when computing the dependencies
of the existing classes.

Change-Id: I7285ff67e016ce5d73a8550501f49acc73cfadfa
2014-03-31 19:06:53 -07:00
Deepanshu Gupta
58037a4404 Add missing files to fix libphonenumber for layoutlib.
Change-Id: I8102da6c1c4625e887293a8823770d199521c53f
2014-01-17 18:26:38 -08:00
Deepanshu Gupta
1cf5df38f4 Layoutlib Create: Remove references to non-std Java classes.
Do not add the non-standard Java classes. Updates the references to all
non-standard classes to new classes in
com.android.tools.layoulib.create package. This also treats
java.lang.AutoCloseable which is part of Java 7 similarly so that we can
still run on Java 6.

Change-Id: Iac5b272652e2780c9bb72d19f415d150948ca589
2013-10-16 15:09:50 -07:00
Xavier Ducrohet
46d43ccfd8 Make Layoutlib compile on Java 6.
Change-Id: Ic8f0e321c6c218de83664fc01f253a07fa80852c
2012-02-02 17:45:45 -08:00
Raphael Moll
865c3bef54 Laoutlib_creator: keep original of delegate methods.
For specific methods, Layoublib_create can rewrite the implementation
of a method to invoke a delegate instead of the original code. This
allows layoutlib to implement native code or override existing behavior.

This patch also 'saves' the original implementation of a rewritten
method so that the delegate can access the original implementation
as needed. Obviously this is only done for non-native methods.

Given a non-native SomeClass.MethodName, we generate 2 methods:
- A copy of the original method named "SomeClass.MethodName_original".
  The content is the original method as-is from the reader.
- A brand new implementation of SomeClass.MethodName which calls to a
  non-existing method named "SomeClass_delegate.MethodName".
  The implementation of this 'delegate' method is done in layoutlib_brigde.

Change-Id: I5ca2cd3ac55991a8e8a51c417e75ee447bf9e9e6
2011-06-17 19:07:13 -07:00
Xavier Ducrohet
4b52ec49fe LayoutLib: Original import of Honeycomb's layoutlib. do not merge.
frameworks/base.git @ f0a53435f1

Change-Id: Ibc215751693dc7650683b61bb458f7c8beaf8060
2011-02-23 19:47:02 -08:00
The Android Open Source Project
9066cfe988 auto import from //depot/cupcake/@135843 2009-03-03 19:31:44 -08:00
The Android Open Source Project
d83a98f4ce auto import from //depot/cupcake/@135843 2009-03-03 18:28:45 -08:00
The Android Open Source Project
54b6cfa9a9 Initial Contribution 2008-10-21 07:00:00 -07:00