流利说-英语 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));
        }
    }
}