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
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
index 7a805cb..5be9865 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
@@ -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;
diff --git a/src/com/android/settings/widget/LinkTextView.java b/src/com/android/settings/widget/LinkTextView.java
index ab72fcf..9142e39 100644
--- a/src/com/android/settings/widget/LinkTextView.java
+++ b/src/com/android/settings/widget/LinkTextView.java
@@ -18,6 +18,9 @@
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;
@@ -40,6 +43,18 @@
}
@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)) {
return true;