diff options
| author | Deepanshu Gupta <deepanshu@google.com> | 2013-05-23 15:20:04 -0700 |
|---|---|---|
| committer | Deepanshu Gupta <deepanshu@google.com> | 2013-05-23 16:44:01 -0700 |
| commit | 279c00e8e0abb20f7e10577c77937c058da080bf (patch) | |
| tree | e7feb31b205abba693e7f3ba49a8f99088176bea /tools/layoutlib/bridge/src/android/graphics | |
| parent | d6619ed89ff7e10b0b66aadc353cfea171929344 (diff) | |
| download | frameworks_base-279c00e8e0abb20f7e10577c77937c058da080bf.zip frameworks_base-279c00e8e0abb20f7e10577c77937c058da080bf.tar.gz frameworks_base-279c00e8e0abb20f7e10577c77937c058da080bf.tar.bz2 | |
Add missing native methods.
Change-Id: I7b34e2ec0164520efc658053a80f307791a992b1
Diffstat (limited to 'tools/layoutlib/bridge/src/android/graphics')
3 files changed, 63 insertions, 35 deletions
diff --git a/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java index b76b8cf..96616aa 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java +++ b/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java @@ -61,6 +61,7 @@ public final class Bitmap_Delegate { private final Config mConfig; private BufferedImage mImage; private boolean mHasAlpha = true; + private boolean mHasMipMap = false; // TODO: check the default. private int mGenerationId = 0; @@ -185,6 +186,10 @@ public final class Bitmap_Delegate { return mHasAlpha && mConfig != Config.RGB_565; } + public boolean hasMipMap() { + // TODO: check if more checks are required as in hasAlpha. + return mHasMipMap; + } /** * Update the generationId. * @@ -336,6 +341,17 @@ public final class Bitmap_Delegate { } @LayoutlibDelegate + /*package*/ static boolean nativeHasMipMap(int nativeBitmap) { + // get the delegate from the native int. + Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap); + if (delegate == null) { + return true; + } + + return delegate.mHasMipMap; + } + + @LayoutlibDelegate /*package*/ static int nativeGetPixel(int nativeBitmap, int x, int y) { // get the delegate from the native int. Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap); @@ -469,6 +485,17 @@ public final class Bitmap_Delegate { } @LayoutlibDelegate + /*package*/ static void nativeSetHasMipMap(int nativeBitmap, boolean hasMipMap) { + // get the delegate from the native int. + Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap); + if (delegate == null) { + return; + } + + delegate.mHasMipMap = hasMipMap; + } + + @LayoutlibDelegate /*package*/ static boolean nativeSameAs(int nb0, int nb1) { Bitmap_Delegate delegate1 = sManager.getDelegate(nb0); if (delegate1 == null) { @@ -524,7 +551,7 @@ public final class Bitmap_Delegate { int nativeInt = sManager.addNewDelegate(delegate); // and create/return a new Bitmap with it - return new Bitmap(nativeInt, null /* buffer */, isMutable, null /*ninePatchChunk*/, + return new Bitmap(nativeInt, null /* buffer */, isMutable, null /*ninePatchChunk*/, density); } diff --git a/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java index 9aed8c8..4171bb5 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java +++ b/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java @@ -330,20 +330,19 @@ public final class Canvas_Delegate { } @LayoutlibDelegate - /*package*/ static void native_setBitmap(int nativeCanvas, int bitmap) { + /*package*/ static void copyNativeCanvasState(int srcCanvas, int dstCanvas) { // get the delegate from the native int. - Canvas_Delegate canvasDelegate = sManager.getDelegate(nativeCanvas); - if (canvasDelegate == null) { + Canvas_Delegate srcCanvasDelegate = sManager.getDelegate(srcCanvas); + if (srcCanvasDelegate == null) { return; } // get the delegate from the native int. - Bitmap_Delegate bitmapDelegate = Bitmap_Delegate.getDelegate(bitmap); - if (bitmapDelegate == null) { + Canvas_Delegate dstCanvasDelegate = sManager.getDelegate(dstCanvas); + if (dstCanvasDelegate == null) { return; } - - canvasDelegate.setBitmap(bitmapDelegate); + // TODO: actually copy the canvas state. } @LayoutlibDelegate @@ -572,16 +571,14 @@ public final class Canvas_Delegate { @LayoutlibDelegate /*package*/ static boolean native_quickReject(int nativeCanvas, - RectF rect, - int native_edgeType) { + RectF rect) { // FIXME properly implement quickReject return false; } @LayoutlibDelegate /*package*/ static boolean native_quickReject(int nativeCanvas, - int path, - int native_edgeType) { + int path) { // FIXME properly implement quickReject return false; } @@ -589,8 +586,7 @@ public final class Canvas_Delegate { @LayoutlibDelegate /*package*/ static boolean native_quickReject(int nativeCanvas, float left, float top, - float right, float bottom, - int native_edgeType) { + float right, float bottom) { // FIXME properly implement quickReject return false; } @@ -994,7 +990,8 @@ public final class Canvas_Delegate { float x = startX; float y = startY; if (paintDelegate.getTextAlign() != Paint.Align.LEFT.nativeInt) { - float m = paintDelegate.measureText(text, index, count); + // TODO: check the value of bidiFlags. + float m = paintDelegate.measureText(text, index, count, 0); if (paintDelegate.getTextAlign() == Paint.Align.CENTER.nativeInt) { x -= m / 2; } else if (paintDelegate.getTextAlign() == Paint.Align.RIGHT.nativeInt) { diff --git a/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java index 1382641..c9c9800 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java +++ b/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java @@ -569,29 +569,30 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static float native_measureText(Paint thisPaint, char[] text, int index, - int count) { + int count, int bidiFlags) { // get the delegate Paint_Delegate delegate = sManager.getDelegate(thisPaint.mNativePaint); if (delegate == null) { return 0; } - return delegate.measureText(text, index, count); + return delegate.measureText(text, index, count, bidiFlags); } @LayoutlibDelegate - /*package*/ static float native_measureText(Paint thisPaint, String text, int start, int end) { - return native_measureText(thisPaint, text.toCharArray(), start, end - start); + /*package*/ static float native_measureText(Paint thisPaint, String text, int start, int end, + int bidiFlags) { + return native_measureText(thisPaint, text.toCharArray(), start, end - start, bidiFlags); } @LayoutlibDelegate - /*package*/ static float native_measureText(Paint thisPaint, String text) { - return native_measureText(thisPaint, text.toCharArray(), 0, text.length()); + /*package*/ static float native_measureText(Paint thisPaint, String text, int bidiFlags) { + return native_measureText(thisPaint, text.toCharArray(), 0, text.length(), bidiFlags); } @LayoutlibDelegate /*package*/ static int native_breakText(Paint thisPaint, char[] text, int index, int count, - float maxWidth, float[] measuredWidth) { + float maxWidth, int bidiFlags, float[] measuredWidth) { // get the delegate Paint_Delegate delegate = sManager.getDelegate(thisPaint.mNativePaint); @@ -614,7 +615,7 @@ public class Paint_Delegate { } // measure from start to end - float res = delegate.measureText(text, start, end - start + 1); + float res = delegate.measureText(text, start, end - start + 1, bidiFlags); if (measuredWidth != null) { measuredWidth[measureIndex] = res; @@ -634,9 +635,9 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static int native_breakText(Paint thisPaint, String text, boolean measureForwards, - float maxWidth, float[] measuredWidth) { + float maxWidth, int bidiFlags, float[] measuredWidth) { return native_breakText(thisPaint, text.toCharArray(), 0, text.length(), maxWidth, - measuredWidth); + bidiFlags, measuredWidth); } @LayoutlibDelegate @@ -921,7 +922,7 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static int native_getTextWidths(int native_object, char[] text, int index, - int count, float[] widths) { + int count, int bidiFlags, float[] widths) { // get the delegate from the native int. Paint_Delegate delegate = sManager.getDelegate(native_object); if (delegate == null) { @@ -963,8 +964,9 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static int native_getTextWidths(int native_object, String text, int start, - int end, float[] widths) { - return native_getTextWidths(native_object, text.toCharArray(), start, end - start, widths); + int end, int bidiFlags, float[] widths) { + return native_getTextWidths(native_object, text.toCharArray(), start, end - start, + bidiFlags, widths); } @LayoutlibDelegate @@ -977,7 +979,7 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static float native_getTextRunAdvances(int native_object, char[] text, int index, int count, int contextIndex, int contextCount, - int flags, float[] advances, int advancesIndex, int reserved) { + int flags, float[] advances, int advancesIndex) { // get the delegate from the native int. Paint_Delegate delegate = sManager.getDelegate(native_object); if (delegate == null) { @@ -1021,14 +1023,14 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static float native_getTextRunAdvances(int native_object, String text, int start, int end, int contextStart, int contextEnd, - int flags, float[] advances, int advancesIndex, int reserved) { + int flags, float[] advances, int advancesIndex) { // FIXME: support contextStart, contextEnd and direction flag int count = end - start; char[] buffer = TemporaryBuffer.obtain(count); TextUtils.getChars(text, start, end, buffer, 0); return native_getTextRunAdvances(native_object, buffer, 0, count, contextStart, - contextEnd - contextStart, flags, advances, advancesIndex, reserved); + contextEnd - contextStart, flags, advances, advancesIndex); } @LayoutlibDelegate @@ -1067,13 +1069,14 @@ public class Paint_Delegate { @LayoutlibDelegate /*package*/ static void nativeGetStringBounds(int nativePaint, String text, int start, - int end, Rect bounds) { - nativeGetCharArrayBounds(nativePaint, text.toCharArray(), start, end - start, bounds); + int end, int bidiFlags, Rect bounds) { + nativeGetCharArrayBounds(nativePaint, text.toCharArray(), start, end - start, bidiFlags, + bounds); } @LayoutlibDelegate /*package*/ static void nativeGetCharArrayBounds(int nativePaint, char[] text, int index, - int count, Rect bounds) { + int count, int bidiFlags, Rect bounds) { // get the delegate from the native int. Paint_Delegate delegate = sManager.getDelegate(nativePaint); @@ -1182,7 +1185,8 @@ public class Paint_Delegate { } } - /*package*/ float measureText(char[] text, int index, int count) { + /*package*/ float measureText(char[] text, int index, int count, int bidiFlags) { + // TODO: find out what bidiFlags actually does. // WARNING: the logic in this method is similar to Canvas_Delegate.native_drawText // Any change to this method should be reflected there as well |
