f0a53435f14d23d9555fc46014352ee6a7baa647 |
|
24-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Add debug mode. Change-Id: If4263c7dba63a063f84e0c6988c270eb6d291ac3
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/Region_Delegate.java
|
cc4977d0fdaf657907912fd6cc2f9426dc8d2e36 |
|
22-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Hold onto delegate references. When an object is given a delegate to hold onto, keep the reference to the delegate instead of its native integer. Also change the way the finalizer works by not explicitely deleting the delegate. Instead we want the delegate to be deleted when nothing holds a reference to it. To do this, instead of using a regular SparseArray, we use a SparseArray of WeakReferences. Because the main Java object that "owns" the delegate does not actually holds a reference to the delegate, we fake this by having the delegate manager hold a reference to delegates for the main object. This is added/removed as the object is created and the native finalized is called. This makes layoutlib behave more like the JNI code where the native objects are reference counted, and where the Java object can be deleted but the delegate it owns is kept around (usually because another type of delegates hold a reference on it.) To properly handle the WeakReferences, we need to be able to regularly clear the SparseArray of WeakReference that were referencing objects that have been GC'ed. Since the SparseArray is regularly being compacted (actually only when items are removed), we use a custom SparseWeakArray (started as a straight copy of SparseArray) that handles the WeakReference and takes care of compacting the array by removing deleted indices and WeakReference that returns null. Since our specific use case doesn't call actually delete() or remove(), the compacting only happens when the array needs to be resized. Change-Id: Iacc5c1ff5b21732b8816fda87eb090da12d034e0
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/Region_Delegate.java
|
9a4fe29c8d92014d2d9a848e9116b8cc9d0842f9 |
|
10-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Annotate the custom delegate methods. Every method implementing a delegate needed by the layoutlib_create bytecode modification must now be annotated with LayoutlibDelegate. The methods in the original source code that are delegated are already automatically annotated. Now with the implementations being annotated we can do bi-directional tests and find not only missing implementations but also dead obsolete code. This will be useful when backporting to earlier versions of Android, or when native (non public) method disappear. In fact, the new test detected one such method in Shader. Change-Id: I491708b68ac2736ca5669aa86cd5e930a00f9db3
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/Region_Delegate.java
|
7d7016e72431ad7ee595d857a19231c69efeb6de |
|
26-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: return ViewInfo for all merged items + Build init. android.os.Build is now initialized from the build properties parsed from the SDK build.prop file. Change-Id: If16953215ca90fb0beacb51bf405b89a5c8a34fa
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/Region_Delegate.java
|
51a7e5447de94791c464cda5cc6ebbf616d73c80 |
|
15-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: update logs to use new data bundle Also change some resource.resolve tags to resource.format Change-Id: I3f0b0d2eb69a5ec98375e4014a3bb1bfceb8c855
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/Region_Delegate.java
|
918aaa5717fce6081557c82ce1c439b6922737d5 |
|
13-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Use the new log tag constants from LayoutLog Change-Id: I29dd578ae16405358d3673caf13528be393f0967
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/Region_Delegate.java
|
56222cfbe9973c518f7e8c9113c614de80b5a4b2 |
|
13-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: use tags in logs. Change-Id: Ib85272249d285ecef409bf063903bcd91514a424
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/Region_Delegate.java
|
0de16070935adb8656d646b8c69a362652db7443 |
|
11-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: fix XmlUtils.convertValueToInt It looks like the device implementation of Integer.parseInt is able to handle converting hexa value > 80000000 while the desktop VM cannot. This patch provide a fix for this. While implementing it and running the TestDegates test I realized that some delegate methods for Region were mising, so this adds them too. Change-Id: Ifee1efd47c8c52adc2f4658ec4fc8bd55adb84b4
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/Region_Delegate.java
|
a7cac5e0542779cadf0f5ccf71584e4b4425f7a6 |
|
07-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: fix clipping issues. There were two issues: - Graphics2D.setClip only works on rectangular shapes. This means doing a setClip on a non rectangular shape should basically reset the clip and intersect with the new shape. - the current clip can be null, so the combineShape method must handle it. Change-Id: Id2cd7475e991d8b533ff2e8850cc2c27663f9e52
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/Region_Delegate.java
|
b44b43b1579486ff7ecd0f7528f17711acdeae98 |
|
23-Dec-2010 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Support Region through delegates. also finish supporting some clip operation on the canvas. Change-Id: I743b9e52a7aa6e9340506f1c904cc1cfbf3ff81f
/frameworks/base/tools/layoutlib/bridge/src/android/graphics/Region_Delegate.java
|