diff options
| author | Abodunrinwa Toki <toki@google.com> | 2018-03-27 00:04:06 +0100 |
|---|---|---|
| committer | Abodunrinwa Toki <toki@google.com> | 2018-04-01 20:04:47 +0100 |
| commit | 080c8542b68cf17a0441862c404cb49ce0e86cfe (patch) | |
| tree | 673eb1f9a99b63b42f615f60c23a9c46aee8848f /core/java/android/widget/TextView.java | |
| parent | 7a33063b39c0a48e57d7146adfc4640a8944adec (diff) | |
TextClassifier API updates.
1. Wraps TC queries in Request objects
2. Adds create/destroyTextClassificationSession system APIs
3. Adds the session Ids to system API calls
4. Change setSignature() to setId() on result objects
5. Plumbing to make the API updates work as things currently work
6. Hide Linkify.addLinksAsync APIs
Bug: 74461129
Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest
Test: bit CtsViewTestCases:android.view.textclassifier.cts.TextClassificationManagerTest
Test: bit CtsWidgetTestCases:android.widget.cts.TextViewTest
Test: bit FrameworksCoreTests:android.widget.TextViewActivityTest
Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationTest
Test: bit FrameworksCoreTests:android.view.textclassifier.TextSelectionTest
Test: bit FrameworksCoreTests:android.view.textclassifier.TextLinksTest
Change-Id: I933ada8b37ef9893331a265e3b4fc08e043f1029
Diffstat (limited to 'core/java/android/widget/TextView.java')
| -rw-r--r-- | core/java/android/widget/TextView.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 8bf497e0e90d..11db6b650583 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; @@ -11541,6 +11542,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() { @@ -11623,15 +11625,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"); } |
