summaryrefslogtreecommitdiff
path: root/core/java/android/widget/TextView.java
diff options
context:
space:
mode:
authorAbodunrinwa Toki <toki@google.com>2018-04-02 22:20:45 +0000
committerandroid-build-merger <android-build-merger@google.com>2018-04-02 22:20:45 +0000
commitdd5bc6f1274b0cb6ea422a50a1a0579f881a261f (patch)
tree689c568aa3143b1cf6ea51fbfc11c50fd42c087e /core/java/android/widget/TextView.java
parent02fe46286057d34d23f165502a7189bbc408f96a (diff)
parent008a5d01af57886f0f96bd2aa903c81c2fca2bfc (diff)
Merge "Merge "TextClassifier API updates." into pi-dev am: bf9dfb16be" into pi-dev-plus-aosp
am: 008a5d01af Change-Id: I4efb43ab74ac98244c6f4145855a75480e2c85b0
Diffstat (limited to 'core/java/android/widget/TextView.java')
-rw-r--r--core/java/android/widget/TextView.java19
1 files changed, 13 insertions, 6 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 4b20570a34c9..a120e9b15498 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -36,6 +36,7 @@ import android.annotation.StringRes;
import android.annotation.StyleRes;
import android.annotation.XmlRes;
import android.app.Activity;
+import android.app.PendingIntent;
import android.app.assist.AssistStructure;
import android.content.ClipData;
import android.content.ClipDescription;
@@ -11557,6 +11558,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
/**
* Returns a session-aware text classifier.
+ * This method creates one if none already exists or the current one is destroyed.
*/
@NonNull
TextClassifier getTextClassificationSession() {
@@ -11639,15 +11641,20 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
final int start = spanned.getSpanStart(clickedSpan);
final int end = spanned.getSpanEnd(clickedSpan);
if (start >= 0 && end <= mText.length() && start < end) {
- final TextClassification.Options options = new TextClassification.Options()
- .setDefaultLocales(getTextLocales());
+ final TextClassification.Request request = new TextClassification.Request.Builder(
+ mText, start, end)
+ .setDefaultLocales(getTextLocales())
+ .build();
final Supplier<TextClassification> supplier = () ->
- getTextClassifier().classifyText(mText, start, end, options);
+ getTextClassifier().classifyText(request);
final Consumer<TextClassification> consumer = classification -> {
if (classification != null) {
- final Intent intent = classification.getIntent();
- if (intent != null) {
- TextClassification.fireIntent(mContext, intent);
+ if (!classification.getActions().isEmpty()) {
+ try {
+ classification.getActions().get(0).getActionIntent().send();
+ } catch (PendingIntent.CanceledException e) {
+ Log.e(LOG_TAG, "Error sending PendingIntent", e);
+ }
} else {
Log.d(LOG_TAG, "No link action to perform");
}