From eaec9b9988a007b21dfbf4e71ecff237c9097933 Mon Sep 17 00:00:00 2001 From: Mikael Sand Date: Thu, 21 Mar 2019 02:49:36 +0200 Subject: [PATCH] [android] Fix calculation / clearing of cached glyph advance #977 --- android/src/main/java/com/horcrux/svg/TSpanView.java | 5 +++++ android/src/main/java/com/horcrux/svg/TextView.java | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/horcrux/svg/TSpanView.java b/android/src/main/java/com/horcrux/svg/TSpanView.java index 2663b153..6aff115f 100644 --- a/android/src/main/java/com/horcrux/svg/TSpanView.java +++ b/android/src/main/java/com/horcrux/svg/TSpanView.java @@ -70,6 +70,11 @@ class TSpanView extends TextView { super.invalidate(); } + void clearCache() { + mCachedPath = null; + super.clearCache(); + } + @Override void draw(Canvas canvas, Paint paint, float opacity) { if (mContent != null) { diff --git a/android/src/main/java/com/horcrux/svg/TextView.java b/android/src/main/java/com/horcrux/svg/TextView.java index 5aa98ec9..f4485d97 100644 --- a/android/src/main/java/com/horcrux/svg/TextView.java +++ b/android/src/main/java/com/horcrux/svg/TextView.java @@ -51,7 +51,7 @@ class TextView extends GroupView { return; } super.invalidate(); - clearChildCache(); + getTextContainer().clearChildCache(); } void clearCache() { @@ -246,4 +246,13 @@ class TextView extends GroupView { return advance; } + TextView getTextContainer() { + TextView node = this; + ViewParent parent = this.getParent(); + while (parent instanceof TextView) { + node = (TextView) parent; + parent = node.getParent(); + } + return node; + } }