流利说-英语 v8.47.26版本的 MD5 值为:0079dce5ff96e6cdbc95c261b3f51387
以下内容为反编译后的 DFxTextView.java 源代码,内容仅作参考
package com.liulishuo.lingodarwin.exercise.base.ui.view.widget;
import android.content.Context;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.style.URLSpan;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;
import androidx.core.content.ContextCompat;
import com.liulishuo.lingodarwin.exercise.e;
import com.liulishuo.lingodarwin.ui.widget.AutoResizeTextView;
import com.sensorsdata.analytics.android.autotrack.aop.SensorsDataAutoTrackHelper;
import com.sensorsdata.analytics.android.sdk.SensorsDataInstrumented;
import kotlin.i;
import kotlin.jvm.a.s;
import kotlin.jvm.internal.o;
import kotlin.jvm.internal.t;
import kotlin.u;
@i
public final class DFxTextView extends AutoResizeTextView {
private s<? super TextView, ? super String, ? super Integer, ? super Integer, ? super String, u> ebb;
public DFxTextView(Context context) {
this(context, null, 0, 6, null);
}
public DFxTextView(Context context, AttributeSet attributeSet) {
this(context, attributeSet, 0, 4, null);
}
public DFxTextView(Context context, AttributeSet attributeSet, int i, int i2, o oVar) {
this(context, (i2 & 2) != 0 ? (AttributeSet) null : attributeSet, (i2 & 4) != 0 ? 0 : i);
}
public DFxTextView(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
t.g(context, "context");
}
public final s<TextView, String, Integer, Integer, String, u> getOnShow() {
return this.ebb;
}
public final void setOnShow(s<? super TextView, ? super String, ? super Integer, ? super Integer, ? super String, u> sVar) {
this.ebb = sVar;
}
public final void setDFxText(CharSequence spanned) {
t.g(spanned, "spanned");
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(spanned);
URLSpan[] spans = (URLSpan[]) spannableStringBuilder.getSpans(0, spanned.length(), URLSpan.class);
t.e(spans, "spans");
for (URLSpan it : spans) {
t.e(it, "it");
a(spannableStringBuilder, it);
}
super.setText(spannableStringBuilder, TextView.BufferType.SPANNABLE);
}
private final void a(SpannableStringBuilder spannableStringBuilder, URLSpan uRLSpan) {
int spanStart = spannableStringBuilder.getSpanStart(uRLSpan);
int spanEnd = spannableStringBuilder.getSpanEnd(uRLSpan);
int spanFlags = spannableStringBuilder.getSpanFlags(uRLSpan);
Context context = getContext();
t.e(context, "context");
spannableStringBuilder.setSpan(new a(spanStart, spanEnd, uRLSpan, context), spanStart, spanEnd, spanFlags);
spannableStringBuilder.removeSpan(uRLSpan);
}
@i
public static final class a extends b {
final int $end;
final int $start;
final URLSpan dss;
a(int i, int i2, URLSpan uRLSpan, Context context) {
super(context);
this.$start = i;
this.$end = i2;
this.dss = uRLSpan;
DFxTextView.this.setHighlightColor(ContextCompat.getColor(getContext(), e.c.transparent));
}
@Override
@SensorsDataInstrumented
public void onClick(View view) {
t.g(view, "view");
s<TextView, String, Integer, Integer, String, u> onShow = DFxTextView.this.getOnShow();
if (onShow != null) {
DFxTextView dFxTextView = DFxTextView.this;
CharSequence text = dFxTextView.getText();
t.e(text, "this@DFxTextView.text");
String obj = text.subSequence(this.$start, this.$end).toString();
Integer valueOf = Integer.valueOf(this.$start);
Integer valueOf2 = Integer.valueOf(this.$end);
String url = this.dss.getURL();
t.e(url, "span.url");
onShow.invoke(dFxTextView, obj, valueOf, valueOf2, url);
}
SensorsDataAutoTrackHelper.trackViewOnClick(view);
}
@Override
public void updateDrawState(TextPaint ds) {
t.g(ds, "ds");
ds.setUnderlineText(false);
ds.setColor(ContextCompat.getColor(getContext(), e.c.level_test_yellow));
}
}
}