diff options
Diffstat (limited to 'tools/layoutlib/bridge')
5 files changed, 89 insertions, 28 deletions
diff --git a/tools/layoutlib/bridge/src/android/graphics/Canvas.java b/tools/layoutlib/bridge/src/android/graphics/Canvas.java index d5d315e..1e1aba9 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Canvas.java +++ b/tools/layoutlib/bridge/src/android/graphics/Canvas.java @@ -69,11 +69,6 @@ public class Canvas extends _Original_Canvas { throw new UnsupportedOperationException("Can't create Canvas(int)"); } - public Canvas(javax.microedition.khronos.opengles.GL gl) { - mLogger = null; - throw new UnsupportedOperationException("Can't create Canvas(javax.microedition.khronos.opengles.GL)"); - } - // custom constructors for our use. public Canvas(int width, int height, ILayoutLog logger) { mLogger = logger; @@ -1174,15 +1169,6 @@ public class Canvas extends _Original_Canvas { } /* (non-Javadoc) - * @see android.graphics.Canvas#getGL() - */ - @Override - public GL getGL() { - // TODO Auto-generated method stub - return super.getGL(); - } - - /* (non-Javadoc) * @see android.graphics.Canvas#getMatrix() */ @Override @@ -1257,15 +1243,6 @@ public class Canvas extends _Original_Canvas { } /* (non-Javadoc) - * @see android.graphics.Canvas#setViewport(int, int) - */ - @Override - public void setViewport(int width, int height) { - // TODO Auto-generated method stub - super.setViewport(width, height); - } - - /* (non-Javadoc) * @see android.graphics.Canvas#skew(float, float) */ @Override diff --git a/tools/layoutlib/bridge/src/android/view/BridgeInflater.java b/tools/layoutlib/bridge/src/android/view/BridgeInflater.java index 0910d79..4bc8855 100644 --- a/tools/layoutlib/bridge/src/android/view/BridgeInflater.java +++ b/tools/layoutlib/bridge/src/android/view/BridgeInflater.java @@ -116,10 +116,10 @@ public final class BridgeInflater extends LayoutInflater { } @Override - public View createViewFromTag(String name, AttributeSet attrs) { + public View createViewFromTag(View parent, String name, AttributeSet attrs) { View view = null; try { - view = super.createViewFromTag(name, attrs); + view = super.createViewFromTag(parent, name, attrs); } catch (InflateException e) { // try to load the class from using the custom view loader try { diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java index f91f601..eb0eba2 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java @@ -30,6 +30,8 @@ import com.android.ninepatch.NinePatch; import com.android.tools.layoutlib.create.MethodAdapter; import com.android.tools.layoutlib.create.OverrideMethod; +import android.content.ClipData; +import android.content.ClipDescription; import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -46,6 +48,7 @@ import android.os.RemoteException; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.BridgeInflater; +import android.view.DragEvent; import android.view.InputChannel; import android.view.IWindow; import android.view.IWindowSession; @@ -1073,6 +1076,38 @@ public final class Bridge implements ILayoutBridge { } @SuppressWarnings("unused") + public IBinder prepareDrag(IWindow window, boolean localOnly, + int thumbnailWidth, int thumbnailHeight, Surface outSurface) + throws RemoteException { + // pass for now + return null; + } + + @SuppressWarnings("unused") + public boolean performDrag(IWindow window, IBinder dragToken, + float touchX, float touchY, float thumbCenterX, float thumbCenterY, + ClipData data) + throws RemoteException { + // pass for now + return false; + } + + @SuppressWarnings("unused") + public void reportDropResult(IWindow window, boolean consumed) throws RemoteException { + // pass for now + } + + @SuppressWarnings("unused") + public void dragRecipientEntered(IWindow window) throws RemoteException { + // pass for now + } + + @SuppressWarnings("unused") + public void dragRecipientExited(IWindow window) throws RemoteException { + // pass for now + } + + @SuppressWarnings("unused") public void setWallpaperPosition(IBinder window, float x, float y, float xStep, float yStep) { // pass for now. @@ -1170,6 +1205,11 @@ public final class Bridge implements ILayoutBridge { // pass for now. } + @SuppressWarnings("unused") + public void dispatchDragEvent(DragEvent event) { + // pass for now. + } + public IBinder asBinder() { // pass for now. return null; diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeContext.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeContext.java index d5a90e6..f501459 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeContext.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeContext.java @@ -37,6 +37,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.Resources.Theme; +import android.database.DatabaseErrorHandler; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.graphics.Bitmap; @@ -1065,6 +1066,13 @@ public final class BridgeContext extends Context { } @Override + public SQLiteDatabase openOrCreateDatabase(String arg0, int arg1, + CursorFactory arg2, DatabaseErrorHandler arg3) { + // TODO Auto-generated method stub + return null; + } + + @Override public Drawable peekWallpaper() { // TODO Auto-generated method stub return null; diff --git a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/TestClassReplacement.java b/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/TestClassReplacement.java index e0dc55f..adb693d 100644 --- a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/TestClassReplacement.java +++ b/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/TestClassReplacement.java @@ -17,6 +17,8 @@ package com.android.layoutlib.bridge; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.lang.reflect.Type; import junit.framework.TestCase; @@ -26,7 +28,8 @@ public class TestClassReplacement extends TestCase { // TODO: we want to test all the classes. For now only Paint passes the tests. // final String[] classes = CreateInfo.RENAMED_CLASSES; final String[] classes = new String[] { - "android.graphics.Paint", "android.graphics._Original_Paint" + "android.graphics.Paint", "android.graphics._Original_Paint", + "android.graphics.Canvas", "android.graphics._Original_Canvas", }; final int count = classes.length; for (int i = 0 ; i < count ; i += 2) { @@ -52,12 +55,21 @@ public class TestClassReplacement extends TestCase { Method[] oldClassMethods = oldClass.getDeclaredMethods(); for (Method oldMethod : oldClassMethods) { - // we ignore anything that starts with native + // we ignore anything that starts with native. This is because the class we are looking + // at has already been modified to remove the native modifiers. if (oldMethod.getName().startsWith("native")) { continue; } + + // or static and private + int privateStatic = Modifier.STATIC | Modifier.PRIVATE; + if ((oldMethod.getModifiers() & privateStatic) == privateStatic) { + continue; + } + boolean found = false; for (Method newMethod : newClassMethods) { + if (compareMethods(newClass, newMethod, oldClass, oldMethod)) { found = true; break; @@ -65,7 +77,31 @@ public class TestClassReplacement extends TestCase { } if (found == false) { - fail(String.format("Unable to find %1$s", oldMethod.toGenericString())); + // compute a full class name that's long but not too long. + StringBuilder sb = new StringBuilder(oldMethod.getName() + "("); + Type[] params = oldMethod.getGenericParameterTypes(); + for (int j = 0; j < params.length; j++) { + if (params[j] instanceof Class) { + Class theClass = (Class)params[j]; + sb.append(theClass.getName()); + int dimensions = 0; + while (theClass.isArray()) { + dimensions++; + theClass = theClass.getComponentType(); + } + for (int i = 0; i < dimensions; i++) { + sb.append("[]"); + } + + } else { + sb.append(params[j].toString()); + } + if (j < (params.length - 1)) + sb.append(","); + } + sb.append(")"); + + fail(String.format("Missing %1$s.%2$s", newClass.getName(), sb.toString())); } } |
