[android] Fix text onPress handling, improve caching #941

This commit is contained in:
Mikael Sand
2019-02-16 03:08:01 +02:00
parent bc6f46c713
commit ccb8026462
@@ -48,6 +48,7 @@ class TSpanView extends TextView {
private static final String OTF = ".otf";
private static final String TTF = ".ttf";
private Path mCachedPath;
@Nullable String mContent;
private TextPathView textPath;
ArrayList<String> emoji = new ArrayList<>();
@@ -63,6 +64,12 @@ class TSpanView extends TextView {
invalidate();
}
@Override
public void invalidate() {
mCachedPath = null;
super.invalidate();
}
@Override
void draw(Canvas canvas, Paint paint, float opacity) {
if (mContent != null) {
@@ -89,21 +96,22 @@ class TSpanView extends TextView {
@Override
Path getPath(Canvas canvas, Paint paint) {
if (mPath != null) {
return mPath;
if (mCachedPath != null) {
return mCachedPath;
}
if (mContent == null) {
return getGroupPath(canvas, paint);
mCachedPath = getGroupPath(canvas, paint);
return mCachedPath;
}
setupTextPath();
pushGlyphContext();
Path path = getLinePath(mContent, paint, canvas);
mCachedPath = getLinePath(mContent, paint, canvas);
popGlyphContext();
return path;
return mCachedPath;
}
double getSubtreeTextChunksTotalAdvance(Paint paint) {