diff options
author | Xavier Ducrohet <xav@android.com> | 2010-12-07 12:10:51 -0800 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2010-12-07 12:10:51 -0800 |
commit | 8d74c978bbf3da4095ef8e40c005a6fdf0637071 (patch) | |
tree | 2d797124a70d8619a1f97460c0d4600c5ad30d5c /tools | |
parent | 5151b325a4d7e28d4739fb7113a2575991f1eb97 (diff) | |
download | frameworks_base-8d74c978bbf3da4095ef8e40c005a6fdf0637071.zip frameworks_base-8d74c978bbf3da4095ef8e40c005a6fdf0637071.tar.gz frameworks_base-8d74c978bbf3da4095ef8e40c005a6fdf0637071.tar.bz2 |
LayoutLib: explicitely override PropertyValuesHolder native code.
Change-Id: Ic7dd9efc990d01b20db144117cb11eb130349048
Diffstat (limited to 'tools')
3 files changed, 55 insertions, 6 deletions
diff --git a/tools/layoutlib/bridge/src/android/animation/PropertyValuesHolder_Delegate.java b/tools/layoutlib/bridge/src/android/animation/PropertyValuesHolder_Delegate.java new file mode 100644 index 0000000..7d41d1c --- /dev/null +++ b/tools/layoutlib/bridge/src/android/animation/PropertyValuesHolder_Delegate.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.animation; + +import com.android.layoutlib.bridge.impl.DelegateManager; + +/** + * Delegate implementing the native methods of android.animation.PropertyValuesHolder + * + * Through the layoutlib_create tool, the original native methods of PropertyValuesHolder have been + * replaced by calls to methods of the same name in this delegate class. + * + * Because it's a stateless class to start with, there's no need to keep a {@link DelegateManager} + * around to map int to instance of the delegate. + * + * The main goal of this class' methods are to provide a native way to access setters and getters + * on some object. In this case we want to default to using Java reflection instead so the native + * methods do nothing. + * + */ +/*package*/ class PropertyValuesHolder_Delegate { + + /*package*/ static int nGetIntMethod(Class<?> targetClass, String methodName) { + // return 0 to force PropertyValuesHolder to use Java reflection. + return 0; + } + + /*package*/ static int nGetFloatMethod(Class<?> targetClass, String methodName) { + // return 0 to force PropertyValuesHolder to use Java reflection. + return 0; + } + + /*package*/ static void nCallIntMethod(Object target, int methodID, int arg) { + // do nothing + } + + /*package*/ static void nCallFloatMethod(Object target, int methodID, float arg) { + // do nothing + } +} diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java index d58cde8..0130970 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java @@ -458,16 +458,10 @@ public class LayoutSceneImpl { mCanvas.setDensity(mParams.getDensity()); } - long preDrawTime = System.currentTimeMillis(); - mViewRoot.draw(mCanvas); - long drawTime = System.currentTimeMillis(); - mViewInfo = visit(((ViewGroup)mViewRoot).getChildAt(0), mContext); - System.out.println(String.format("rendering (ms): %03d", drawTime - preDrawTime)); - // success! return SceneStatus.SUCCESS.createResult(); } catch (Throwable e) { diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java index 4440685..1d40d33 100644 --- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java +++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java @@ -105,6 +105,7 @@ public final class CreateInfo implements ICreateInfo { * The list of classes on which to delegate all native methods. */ private final static String[] DELEGATE_CLASS_NATIVES = new String[] { + "android.animation.PropertyValuesHolder", "android.graphics.Bitmap", "android.graphics.Canvas", "android.graphics.DashPathEffect", |