History log of /frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a4d7ad8663e624d46f53ac0e5948348348d82204 06-Apr-2016 Diego Perez <diegoperez@google.com> Fix rect shadow detection

ViewGroup_Delegate was trying to use a rect shadow even in cases where
we needed to use a path. This caused that using a ToggleButton would
throw an exception with radius < 0.
Also, changed the tests so we can detect certain render errors and
ignore other (like known fidelity warnings).

Change-Id: I900d45f9efa892ad0aebc8f4ef73fc9f21ab9d92
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
2605f91f705fbf51800c6fde8ee8cd5f199447b4 04-Apr-2016 Diego Perez <diegoperez@google.com> Separate inflate from render step

Up until now, createSession will always do a first render. With the new
embedded layoutlib we might want to actually call objects from the
inflated view before doing a render or even do it between renders.
This allows to avoid the first initial render unless needed.

This CL also fixes a bug that would only happen when multiple render
calls are issued. When scrolling, use scrollTo since we likely want
absolute positions, not relative.

Change-Id: I4b1d8388d7218a8de33e25cd546fd965fcb07dc7
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
fc970ab65ad8c860dd0654d59b70bbe271f95784 26-Feb-2016 Diego Perez <diegoperez@google.com> Implement VirtualRefBasePtr native methods

The VirtualRefBasePtr is used to track the usage of native objects from
the java side by reference counting. Implementing the class delegate to
make sure we dispose the objects correctly.

Change-Id: I3dd4717944b0dbe79f30e49b3083bf65c6e5276d
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
ceb1ab1d2a71c6d4e0cccf110a198ff83cb97e5a 24-Mar-2016 Deepanshu Gupta <deepanshu@google.com> Add tests for getResource*Name()

Change-Id: I02170b2b68c76f817aa0771a5333abf2aee456c0
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
d15459197f71f8cc940e2b057b399117df282f2c 04-Mar-2016 Diego Perez <diegoperez@google.com> Account for parent scroll position

When calculating the ViewInfo bounding box, account for the parent
scroll position.
Also make renderAndVerify return a RenderResult to verify some data
about the result layout.

Change-Id: I965e393c49b5030c80083daf5e058fa31400ce93
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
52c2030f422c05ebec1aeb3a7476b0ecb72fb935 01-Mar-2016 Diego Perez <diegoperez@google.com> Fix layoutlib expand unit test

Changing the theme used to "Light" since currently the "Dark" theme
seems to be missing at least one value. This test doesn't visually
depend on the theme so just changing it to "Light" to make it pass.

Change-Id: Ibb885bf3948dcf587de08896540dda622f86e8b3
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
f5650cf3a3a1a8d6ced9fc7b0f399689c9adc1b8 01-Feb-2016 Diego Perez <diegoperez@google.com> Fix Canvas memory leak

Every RenderSession would call the AttachInfo.setAttachInfo but wouldn't
issue a View.dispatchDetachedFromWindow.
This caused some Canvas to be slowly leaked in the DelegateManager in
every session.

Change-Id: Iec418a86f5c5e55c2a2860ef945268c51c0e8173
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
cf935728897e9f208e250d3bb57296c84cfa0ef9 19-Feb-2016 Diego Perez <diegoperez@google.com> Revert "Fix Canvas memory leak"

This reverts commit e82bd72b6e7ab3135d3b28fc2c2694d08af45c3d.

Change-Id: Ie9ef25b17d5f725d5054c039992a8cd2912868a6
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
e82bd72b6e7ab3135d3b28fc2c2694d08af45c3d 01-Feb-2016 Diego Perez <diegoperez@google.com> Fix Canvas memory leak

Every RenderSession would call the AttachInfo.setAttachInfo but wouldn't
issue a View.dispatchDetachedFromWindow.
This caused some Canvas to be slowly leaked in the DelegateManager in
every session.

Change-Id: I0322767e5fffc6053ce1be852dd8ca904dfaa137
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
b9c48d8f49d35e2682c7205a9d8d5fcc25d7c736 18-Dec-2015 Diego Perez <diegoperez@google.com> New path interpolation to paint vector drawables

Before this CL, PathMeasure_Delegate would use Path_Delegate.approximate
to get a path segment to draw. Path_Delegate.approximate uses a
flattening iterator to do the path approximation.
Unfortunately, because we do not control the stroke mode while painting,
in some cases the approximation would draw unwanted artifacts caused by
the rough approximation and the use of wrong miter values.
This CL does a much better calculation of the path and interpolates the
segments of the curves instead of replacing them with line segments.

This also fixes an issue with the calculation of empty paths.

Bug: http://b.android.com/187256

Change-Id: I450f7aa4c3d9efcbf902a40c3b4d6d388546893f
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
1665a621da2d503d405fb784bd50b5a8596539a1 05-Jan-2016 Deepanshu Gupta <deepanshu@google.com> LayoutLib: Fix device used comments in intensive tests

Change-Id: I65ee2f8bdf096ea991e72c99777c8981da7b5ae2
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
0c08fc0fc58be4f52527d7a0529960752056e83b 11-Jan-2016 Deepanshu Gupta <deepanshu@google.com> Merge "Fix ninepatch scaling." into mnc-ub-dev
95e58deaa2ab56de3df827ad615f5b7799506edc 07-Dec-2015 Deepanshu Gupta <deepanshu@google.com> Fix ninepatch scaling.

Really fix the bug now. Also add tests for the same and update
allwidgets golden file for M.

Bug: http://b.android.com/187939
Change-Id: I98cd55da0561fef9d47d8759bcd287ee36d03cc2
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
29ed07524ce0fc2e5950f5340d306247145d0efa 14-Oct-2015 Diego Perez <diegoperez@google.com> Add support for Choreographer animations

First step to add support for Choreographer based animations. The
Choreographer_Delegate avoid using a handler so the animation callbacks
can be called on-demand (by using doFrame). This allows things like
frame by frame animation or selecting a specific frame, and doesn't need
a separate thread to run.

The CL also changes the System and SystemClock implementations to allow
to set specific times. Because animations heavily rely on the system
time, this allows controlling it. It can also be useful to ensure that
the rendering produces a deterministic result when using controls like
the Calendar widget.

Change-Id: Iff221d2698a82075cafbb60f341be01741f7aa13
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
89a045c31f4f08bc0d9d533ef47f321e6423f656 03-Aug-2015 Deepanshu Gupta <deepanshu@google.com> Revert to using AppTheme for LayoutLib tests.

Use AppTheme for all tests other than testExpand. AppTheme contains an
attribute needed by testArrayCheck. Also, since the AppTheme extends
Theme.Material.Light.DarkActionBar, other tests should be unaffected.

Also, update the golden image for the testArrayCheck.

Change-Id: Ib5f53f3b029c5aceef2b622e5ac63952d6b1972a
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
4a6ee98d39ab2300b2cd17c60221e43bf4ade8e7 29-Jul-2015 Deepanshu Gupta <deepanshu@google.com> Fix theme namespace in tests.

The tests used framework theme (Material), but the ResourceResolver was
created with project theme. This caused tests to fail becasue of missing
resources.

Change-Id: Ia17ee19054f6689f85e3423e83c1f47a2cc4364f
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
b9935889b1be2aac4a47d1acbf7547a832edf9f3 21-Jul-2015 Diego Perez <diegoperez@google.com> resolved conflicts for merge of 112d8a36 to mnc-dev

Change-Id: Ic9511a57db8a96f54dba0704800789a8602b9dd2
4362443cd9a5df6c5cc012881a0aaf96c927b923 02-Jun-2015 Diego Perez <diegoperez@google.com> Render to measured size when using expand mode

When using RenderingMode.V_SCROLL or RenderingMode.H_SCROLL, if the
screen size is smaller than the measured size but as large as the
desired size, the layout will render incorrectly and won't expand.
This changes that to expand to at least the size of the screen.

Added tests for the V_SCROLL and H_SCROLL modes.

Bug: http://b.android.com/174928
Change-Id: I22686903560775e2e4f362af1d7b50c9b985467d
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
642cff50f8f7a67eed09eac1e56d7133b26a192c 23-May-2015 Deepanshu Gupta <deepanshu@google.com> LayoutLib: Support getting resource arrays.

- Don't crash when Resources.get<Type>Array() is called.
- If the IDE supports it, actually return the value.
- Add tests for getArray.
- Update test app to latest gradle plugin version.
- Switch to using AppTheme for tests, since the tests depend on some
custom theme attributes. The AppTheme now inherits from
Material.Light.DarkActionBar, so other tests should be unaffected.

Depends on a newer version of sdk-common, which fixes the parsing of
array resource in value files.

Bug: 12372031
Change-Id: I313b61511e98ac1402d75056ebfdeeb005ebb96d
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
476e582d2ffdf25102d4c55f8c242baa3d21d37f 22-May-2015 Deepanshu Gupta <deepanshu@google.com> LayoutLib: Change nullity annotations.

Switch from using tools nullity annotations (com.android.annotations)
to android framework annotations (android.annotation).

A new sdk-common prebuilt is required for LayoutLib tests. The new
sdk-common requires an updated tools-common. The updated tools-common
doesn't have nullity annotations. So, instead of adding the annotation
dependency, just reuse the platform ones. This also paves the way to
include other platform annotations like IdRes etc.

Change-Id: I87b8f767d3681d914abe7d1329e26a87f49f50a7
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
612a05e7e15184b21437731b9aa5db2d1d4fc54c 20-May-2015 Deepanshu Gupta <deepanshu@google.com> Update platformDir search in tests.

When trying to find the SDK Platform Dir for LayoutLib tests, also
test if the dir from which the tests are run is module dir.

Change-Id: Id5c6038d07ebbb122e38f907ad488ed1f2bcde32
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
d77b9ed7dcc42efca33b225c4594a30aab9e709c 12-May-2015 Deepanshu Gupta <deepanshu@google.com> Add missing delegates for M preview.

- Remove ICU dependency (use the version bundled with platform).
- Restructure intelliJ project to move dependencies to module.
- Minor fixes to layoutlib tests.

TODO:
- Load ICU data.
- Hyphenator doesn't work.
- High quality line breaker not present.

Change-Id: I965e096e17bfc97ee995a649c3f4f6f64bb4f70d
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
a12ec8f1e28cb5a8601bf606852f1d34d7c91996 09-May-2015 Deepanshu Gupta <deepanshu@google.com> Run setup for full tests only once.

Change-Id: Iee64dbd88d473b7be08581f26ccddf649aed8e56
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
a035dfbf8ddfc8d301dd96088eb50e8c2e63e487 17-Apr-2015 Deepanshu Gupta <deepanshu@google.com> More layoutlib tests.

- Add another layout including more widgets and thus testing layoutlib
better.
- Update targetSdk Version to 22.
- Handling of dynamic ids (@+id/) in LayoutLibTestCallback is buggy.
Since this is not a problem in Studio, and this is not testing the
callback, work around the issue by declaring the ids in
values/ids.xml.

Change-Id: I457c105e8556c4df13cd86da2250fe5fd37843a8
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
eca0b3d9ec1cff4ee1d1a0dc41ef4c0f482033f8 16-Apr-2015 Deepanshu Gupta <deepanshu@google.com> Nullity annotations to some tests.

Change-Id: I2939d7fab30f3b8fe32f2fdf720c630d677373ff
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
5bc625d83d60fbb27ab2297051971be91fb3e415 25-Mar-2015 Deepanshu Gupta <deepanshu@google.com> am a62a18e3: am 311a0f54: Merge "Fix layoutlib tests." into lmp-dev

* commit 'a62a18e341180ccf6f5379a7d753584f6cee2e7c':
Fix layoutlib tests.
84e550f5e6b286f6f2194d0a01b460df331dae03 18-Mar-2015 Deepanshu Gupta <deepanshu@google.com> Fix layoutlib tests.

The date picker and calendar widgets show the current date. Comparing
widgets showing current date with a static golden image wasn't the best
idea.

- Change the widgets to custom widgets that set a predefined date/time
so that the rendering is independent of the system date.
- Change the layout slightly to make it look nicer.
- Update gradle plugin version.

Change-Id: Ia3fb4965a372a28087a0d8c9df40fd6779df6050
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
565b6b415a18ee0b99af8cb693b980e57136282b 08-Jan-2015 Deepanshu Gupta <deepanshu@google.com> Merge "Update platform.dir search in tests." into lmp-mr1-dev
0359b4b19962a4e3c44925907dedb4a9bfd916d0 07-Jan-2015 Deepanshu Gupta <deepanshu@google.com> Update platform.dir search in tests.

The tests search for a built sdk using some heuristics. The default path
of the built sdk has changed now, and this updates the search
accordingly.

Change-Id: I36d465d8c5f6cfd971bbdf95878fb144de233c6c
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
d657b149274aeba0561e68f7172907b300d1b452 07-Jan-2015 Deepanshu Gupta <deepanshu@google.com> Fix tests on jenkins, take 2.

Change-Id: I67386c34a7abd7c3afdf9f0768f36f4786399be0
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
48603a39d4dd721d231c99e10908f4f00c4ec6b9 07-Jan-2015 Deepanshu Gupta <deepanshu@google.com> Fix tests on jenkins

When the tests are run on the build server, they are run from the jar,
as opposed to the extracted build, which is default when run from an
IDE. Thus, when class.getResourceAsStream() is called with ".." in the
path, it is not resolved properly. This change explicitly resolves the
relative path, so that the test is run properly on the server.

Change-Id: Ib5fabd617dca4052220e5173a8bf4fb4234254ff
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
58df125bbc76fd71a9c056c6b6108fc149733b0e 07-Dec-2014 Deepanshu Gupta <deepanshu@google.com> Add image comparison to LayoutLib tests.

The LayoutLib rendering tests now compares the rendered image with a
golden file from a previous execution. This will help catch any
unexpected changes in the final rendering.

Change-Id: I80251a778e89df7d7ec13863a8f299967f3d747d
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
0774bc4605fdd47178cc38258d1b4c40ae113b2f 25-Aug-2014 Deepanshu Gupta <deepanshu@google.com> Remove ANDROID_BUILD_TOP from intelliJ path variables.

The variable is not actually needed and it makes working with different
API levels a lot easier since everything now depends on $PROJECT_DIR$.

This change also makes the tests more robust by improving the way it
tries to find the SDK.

Change-Id: I3502ad4a0ba85fd88b497e47964fddb2a89e520c
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
70d1574db986610232d59ee1406d7532f71812f5 04-Aug-2014 Deepanshu Gupta <deepanshu@google.com> Get filename from File faster

Use the direct call from a File object to get the filename instead of
going through Path which depends on Java 7 making the LayoutLib tests
incompatible with Java 6.

Change-Id: I815895eedbc10245ee09bdb53b11e5548b076aad
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java
86eb8b4e29b1ad889fc814bae723d4d6e491f53f 31-Jul-2014 Deepanshu Gupta <deepanshu@google.com> Add testing framework to LayoutLib.

This change adds an end to end test which loads the framework resources
and a test app and ensures that no exceptions or warnings are thrown.

The change also adds project configuration for intelliJ.

Change-Id: I7b67c0f1a2af2dac95df7f3231cab537b9826d7d
/frameworks/base/tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/intensive/Main.java