Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac6ab035 authored by Maurice Lam's avatar Maurice Lam
Browse files

Set LinkMovementMethod in LinkTextView

With ag/899084 TextView no longer automatically sets the
LinkMovementMethod when setText is called with a ClickableSpan.
So in LinkTextView we do that manually instead.

Bug: 27973982
Change-Id: I86626bd71bf2ca41cb7e73d479ba764e809b0190
parent 8143d2ad
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -16,25 +16,21 @@

package com.android.settings.fingerprint;

import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.hardware.fingerprint.FingerprintManager;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
import android.os.UserHandle;
import android.text.Annotation;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.URLSpan;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;

import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.ChooseLockGeneric;
+15 −0
Original line number Diff line number Diff line
@@ -18,6 +18,9 @@ package com.android.settings.widget;

import android.content.Context;
import android.support.annotation.NonNull;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.TextView;
@@ -39,6 +42,18 @@ public class LinkTextView extends TextView {
        setAccessibilityDelegate(mAccessibilityHelper);
    }

    @Override
    public void setText(CharSequence text, BufferType type) {
        super.setText(text, type);
        if (text instanceof Spanned) {
            final ClickableSpan[] spans =
                    ((Spanned) text).getSpans(0, text.length(), ClickableSpan.class);
            if (spans.length > 0) {
                setMovementMethod(LinkMovementMethod.getInstance());
            }
        }
    }

    @Override
    protected boolean dispatchHoverEvent(@NonNull MotionEvent event) {
        if (mAccessibilityHelper.dispatchHoverEvent(event)) {