diff --git a/app/src/main/java/com/hippo/nimingban/widget/LinkifyTextView.java b/app/src/main/java/com/hippo/nimingban/widget/LinkifyTextView.java index 9a9f16b..e0c4770 100644 --- a/app/src/main/java/com/hippo/nimingban/widget/LinkifyTextView.java +++ b/app/src/main/java/com/hippo/nimingban/widget/LinkifyTextView.java @@ -20,11 +20,21 @@ import android.support.annotation.NonNull; import android.text.Layout; import android.text.Spanned; +import android.text.style.URLSpan; import android.util.AttributeSet; import android.view.MotionEvent; +import com.hippo.nimingban.client.ReferenceSpan; +import com.hippo.nimingban.client.ac.data.ACItemUtils; +import com.hippo.yorozuya.Utilities; public class LinkifyTextView extends FontTextView { + private static final Class[] SUPPORTED_SPAN_TYPE = { + URLSpan.class, + ReferenceSpan.class, + ACItemUtils.HideSpan.class, + }; + private Object mCurrentSpan; public LinkifyTextView(Context context) { @@ -75,8 +85,11 @@ public boolean onTouchEvent(@NonNull MotionEvent event) { Object[] spans = ((Spanned)getText()).getSpans(off, off, Object.class); - if (spans.length > 0) { - mCurrentSpan = spans[0]; + for (Object span : spans) { + if (Utilities.contain(SUPPORTED_SPAN_TYPE, span.getClass())) { + mCurrentSpan = span; + break; + } } } }