From cf2000020eca422c5844c6f88629ce118fca4d87 Mon Sep 17 00:00:00 2001 From: Jerome Gaillard Date: Tue, 31 May 2016 17:15:38 +0100 Subject: [PATCH] Update layoutlib following platform change in VectorDrawable Commit 028029730b copies tree properties when mutating a vector drawable. Layoutlib does the same. Bug: 28974071 Change-Id: I5075b35e517df4ce32a91e2926d9caa02a0c2606 (cherry picked from commit 5ee73b3466090828acdc87fffd95247b6ace6440) --- .../drawable/VectorDrawable_Delegate.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tools/layoutlib/bridge/src/android/graphics/drawable/VectorDrawable_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/drawable/VectorDrawable_Delegate.java index 49f8691986bef..34db24e4f4f48 100644 --- a/tools/layoutlib/bridge/src/android/graphics/drawable/VectorDrawable_Delegate.java +++ b/tools/layoutlib/bridge/src/android/graphics/drawable/VectorDrawable_Delegate.java @@ -95,6 +95,14 @@ public class VectorDrawable_Delegate { return sPathManager.addNewDelegate(new VPathRenderer_Delegate(rootGroup)); } + @LayoutlibDelegate + static long nCreateTreeFromCopy(long rendererToCopyPtr, long rootGroupPtr) { + VGroup_Delegate rootGroup = VNativeObject.getDelegate(rootGroupPtr); + VPathRenderer_Delegate rendererToCopy = VNativeObject.getDelegate(rendererToCopyPtr); + return sPathManager.addNewDelegate(new VPathRenderer_Delegate(rendererToCopy, + rootGroup)); + } + @LayoutlibDelegate static void nSetRendererViewportSize(long rendererPtr, float viewportWidth, float viewportHeight) { @@ -1035,6 +1043,14 @@ public class VectorDrawable_Delegate { mRenderPath = new Path(); } + private VPathRenderer_Delegate(VPathRenderer_Delegate rendererToCopy, + VGroup_Delegate rootGroup) { + this(rootGroup); + mViewportWidth = rendererToCopy.mViewportWidth; + mViewportHeight = rendererToCopy.mViewportHeight; + mRootAlpha = rendererToCopy.mRootAlpha; + } + private float getRootAlpha() { return mRootAlpha; }