diff options
| author | 2018-04-02 23:25:38 -0700 | |
|---|---|---|
| committer | 2018-04-04 18:25:12 +0000 | |
| commit | fb0abe1feb2cadcee2a3edb2028e1da04bb8a8d5 (patch) | |
| tree | da29e520ba382f9eda4bef0d874faca223a39560 | |
| parent | 3e57c9f52573fdf15414fdda50bd988776e8ea3d (diff) | |
Update JNI interface of GetBounds in PrecomputedText
Bug: 77495049
Test: atest CtsWidgetTestCases:EditTextTest
CtsWidgetTestCases:TextViewFadingEdgeTest
FrameworksCoreTests:TextViewFallbackLineSpacingTest
FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest
CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest
CtsTextTestCases FrameworksCoreTests:android.text
CtsWidgetTestCases:TextViewPrecomputedTextTest
Change-Id: I54a70a91f6fba90720b702b52ed6ad430e17c87d
| -rw-r--r-- | core/java/android/text/MeasuredParagraph.java | 11 | ||||
| -rw-r--r-- | core/java/android/text/PrecomputedText.java | 3 | ||||
| -rw-r--r-- | core/jni/android_text_MeasuredParagraph.cpp | 17 |
3 files changed, 11 insertions, 20 deletions
diff --git a/core/java/android/text/MeasuredParagraph.java b/core/java/android/text/MeasuredParagraph.java index 96edfa31f541..c2c3182c2abd 100644 --- a/core/java/android/text/MeasuredParagraph.java +++ b/core/java/android/text/MeasuredParagraph.java @@ -303,10 +303,9 @@ public class MeasuredParagraph { * * This is available only if the MeasuredParagraph is computed with buildForStaticLayout. */ - public void getBounds(@NonNull Paint paint, @IntRange(from = 0) int start, - @IntRange(from = 0) int end, @NonNull Rect bounds) { - nGetBounds(mNativePtr, mCopiedBuffer, paint.getNativeInstance(), start, end, - paint.getBidiFlags(), bounds); + public void getBounds(@IntRange(from = 0) int start, @IntRange(from = 0) int end, + @NonNull Rect bounds) { + nGetBounds(mNativePtr, mCopiedBuffer, start, end, bounds); } /** @@ -743,6 +742,6 @@ public class MeasuredParagraph { @CriticalNative private static native int nGetMemoryUsage(/* Non Zero */ long nativePtr); - private static native void nGetBounds(long nativePtr, char[] buf, long paintPtr, int start, - int end, int bidiFlag, Rect rect); + private static native void nGetBounds(long nativePtr, char[] buf, int start, int end, + Rect rect); } diff --git a/core/java/android/text/PrecomputedText.java b/core/java/android/text/PrecomputedText.java index 44789d6bb76a..369f357d60d8 100644 --- a/core/java/android/text/PrecomputedText.java +++ b/core/java/android/text/PrecomputedText.java @@ -515,8 +515,7 @@ public class PrecomputedText implements Spannable { + "para: (" + paraStart + ", " + paraEnd + "), " + "request: (" + start + ", " + end + ")"); } - getMeasuredParagraph(paraIndex).getBounds(mParams.mPaint, - start - paraStart, end - paraStart, bounds); + getMeasuredParagraph(paraIndex).getBounds(start - paraStart, end - paraStart, bounds); } /** diff --git a/core/jni/android_text_MeasuredParagraph.cpp b/core/jni/android_text_MeasuredParagraph.cpp index 9d794175de18..41a81accf72c 100644 --- a/core/jni/android_text_MeasuredParagraph.cpp +++ b/core/jni/android_text_MeasuredParagraph.cpp @@ -111,20 +111,13 @@ static jfloat nGetWidth(jlong ptr, jint start, jint end) { } // Regular JNI -static void nGetBounds(JNIEnv* env, jobject, jlong ptr, jcharArray javaText, jlong paintPtr, - jint start, jint end, jint bidiFlags, jobject bounds) { +static void nGetBounds(JNIEnv* env, jobject, jlong ptr, jcharArray javaText, jint start, jint end, + jobject bounds) { ScopedCharArrayRO text(env, javaText); const minikin::U16StringPiece textBuffer(text.get(), text.size()); + const minikin::Range range(start, end); - minikin::MeasuredText* mt = toMeasuredParagraph(ptr); - Paint* paint = toPaint(paintPtr); - const Typeface* typeface = Typeface::resolveDefault(paint->getAndroidTypeface()); - minikin::Layout layout = MinikinUtils::doLayout(paint, - static_cast<minikin::Bidi>(bidiFlags), typeface, textBuffer.data(), start, end - start, - textBuffer.size(), mt); - - minikin::MinikinRect rect; - layout.getBounds(&rect); + minikin::MinikinRect rect = toMeasuredParagraph(ptr)->getBounds(textBuffer, range); SkRect r; r.fLeft = rect.mLeft; @@ -156,7 +149,7 @@ static const JNINativeMethod gMethods[] = { // MeasuredParagraph native functions. {"nGetWidth", "(JII)F", (void*) nGetWidth}, // Critical Natives - {"nGetBounds", "(J[CJIIILandroid/graphics/Rect;)V", (void*) nGetBounds}, // Regular JNI + {"nGetBounds", "(J[CIILandroid/graphics/Rect;)V", (void*) nGetBounds}, // Regular JNI {"nGetReleaseFunc", "()J", (void*) nGetReleaseFunc}, // Critical Natives {"nGetMemoryUsage", "(J)I", (void*) nGetMemoryUsage}, // Critical Native }; |