TextClassifier: API rename
getTextClassificationResult() -> classifyText()
TextClassificationResult -> TextClassification
Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest
Bug: 37769880
Change-Id: I2d926e89058babf06bcff390bee3a45e965984e8
diff --git a/api/current.txt b/api/current.txt
index fc23b36..e30720c 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -48212,12 +48212,7 @@
package android.view.textclassifier {
- public final class TextClassificationManager {
- method public android.view.textclassifier.TextClassifier getTextClassifier();
- method public void setTextClassifier(android.view.textclassifier.TextClassifier);
- }
-
- public final class TextClassificationResult {
+ public final class TextClassification {
method public float getConfidenceScore(java.lang.String);
method public java.lang.String getEntity(int);
method public int getEntityCount();
@@ -48228,19 +48223,24 @@
method public java.lang.String getText();
}
- public static final class TextClassificationResult.Builder {
- ctor public TextClassificationResult.Builder();
- method public android.view.textclassifier.TextClassificationResult build();
- method public android.view.textclassifier.TextClassificationResult.Builder setEntityType(java.lang.String, float);
- method public android.view.textclassifier.TextClassificationResult.Builder setIcon(android.graphics.drawable.Drawable);
- method public android.view.textclassifier.TextClassificationResult.Builder setIntent(android.content.Intent);
- method public android.view.textclassifier.TextClassificationResult.Builder setLabel(java.lang.String);
- method public android.view.textclassifier.TextClassificationResult.Builder setOnClickListener(android.view.View.OnClickListener);
- method public android.view.textclassifier.TextClassificationResult.Builder setText(java.lang.String);
+ public static final class TextClassification.Builder {
+ ctor public TextClassification.Builder();
+ method public android.view.textclassifier.TextClassification build();
+ method public android.view.textclassifier.TextClassification.Builder setEntityType(java.lang.String, float);
+ method public android.view.textclassifier.TextClassification.Builder setIcon(android.graphics.drawable.Drawable);
+ method public android.view.textclassifier.TextClassification.Builder setIntent(android.content.Intent);
+ method public android.view.textclassifier.TextClassification.Builder setLabel(java.lang.String);
+ method public android.view.textclassifier.TextClassification.Builder setOnClickListener(android.view.View.OnClickListener);
+ method public android.view.textclassifier.TextClassification.Builder setText(java.lang.String);
+ }
+
+ public final class TextClassificationManager {
+ method public android.view.textclassifier.TextClassifier getTextClassifier();
+ method public void setTextClassifier(android.view.textclassifier.TextClassifier);
}
public abstract interface TextClassifier {
- method public abstract android.view.textclassifier.TextClassificationResult getTextClassificationResult(java.lang.CharSequence, int, int, android.os.LocaleList);
+ method public abstract android.view.textclassifier.TextClassification classifyText(java.lang.CharSequence, int, int, android.os.LocaleList);
method public abstract android.view.textclassifier.TextSelection suggestSelection(java.lang.CharSequence, int, int, android.os.LocaleList);
field public static final android.view.textclassifier.TextClassifier NO_OP;
field public static final java.lang.String TYPE_ADDRESS = "address";
diff --git a/api/system-current.txt b/api/system-current.txt
index 1fe7288..bc1bd62 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -51800,12 +51800,7 @@
package android.view.textclassifier {
- public final class TextClassificationManager {
- method public android.view.textclassifier.TextClassifier getTextClassifier();
- method public void setTextClassifier(android.view.textclassifier.TextClassifier);
- }
-
- public final class TextClassificationResult {
+ public final class TextClassification {
method public float getConfidenceScore(java.lang.String);
method public java.lang.String getEntity(int);
method public int getEntityCount();
@@ -51816,19 +51811,24 @@
method public java.lang.String getText();
}
- public static final class TextClassificationResult.Builder {
- ctor public TextClassificationResult.Builder();
- method public android.view.textclassifier.TextClassificationResult build();
- method public android.view.textclassifier.TextClassificationResult.Builder setEntityType(java.lang.String, float);
- method public android.view.textclassifier.TextClassificationResult.Builder setIcon(android.graphics.drawable.Drawable);
- method public android.view.textclassifier.TextClassificationResult.Builder setIntent(android.content.Intent);
- method public android.view.textclassifier.TextClassificationResult.Builder setLabel(java.lang.String);
- method public android.view.textclassifier.TextClassificationResult.Builder setOnClickListener(android.view.View.OnClickListener);
- method public android.view.textclassifier.TextClassificationResult.Builder setText(java.lang.String);
+ public static final class TextClassification.Builder {
+ ctor public TextClassification.Builder();
+ method public android.view.textclassifier.TextClassification build();
+ method public android.view.textclassifier.TextClassification.Builder setEntityType(java.lang.String, float);
+ method public android.view.textclassifier.TextClassification.Builder setIcon(android.graphics.drawable.Drawable);
+ method public android.view.textclassifier.TextClassification.Builder setIntent(android.content.Intent);
+ method public android.view.textclassifier.TextClassification.Builder setLabel(java.lang.String);
+ method public android.view.textclassifier.TextClassification.Builder setOnClickListener(android.view.View.OnClickListener);
+ method public android.view.textclassifier.TextClassification.Builder setText(java.lang.String);
+ }
+
+ public final class TextClassificationManager {
+ method public android.view.textclassifier.TextClassifier getTextClassifier();
+ method public void setTextClassifier(android.view.textclassifier.TextClassifier);
}
public abstract interface TextClassifier {
- method public abstract android.view.textclassifier.TextClassificationResult getTextClassificationResult(java.lang.CharSequence, int, int, android.os.LocaleList);
+ method public abstract android.view.textclassifier.TextClassification classifyText(java.lang.CharSequence, int, int, android.os.LocaleList);
method public abstract android.view.textclassifier.TextSelection suggestSelection(java.lang.CharSequence, int, int, android.os.LocaleList);
field public static final android.view.textclassifier.TextClassifier NO_OP;
field public static final java.lang.String TYPE_ADDRESS = "address";
diff --git a/api/test-current.txt b/api/test-current.txt
index 68f69ad..044deea 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -48591,12 +48591,7 @@
package android.view.textclassifier {
- public final class TextClassificationManager {
- method public android.view.textclassifier.TextClassifier getTextClassifier();
- method public void setTextClassifier(android.view.textclassifier.TextClassifier);
- }
-
- public final class TextClassificationResult {
+ public final class TextClassification {
method public float getConfidenceScore(java.lang.String);
method public java.lang.String getEntity(int);
method public int getEntityCount();
@@ -48607,19 +48602,24 @@
method public java.lang.String getText();
}
- public static final class TextClassificationResult.Builder {
- ctor public TextClassificationResult.Builder();
- method public android.view.textclassifier.TextClassificationResult build();
- method public android.view.textclassifier.TextClassificationResult.Builder setEntityType(java.lang.String, float);
- method public android.view.textclassifier.TextClassificationResult.Builder setIcon(android.graphics.drawable.Drawable);
- method public android.view.textclassifier.TextClassificationResult.Builder setIntent(android.content.Intent);
- method public android.view.textclassifier.TextClassificationResult.Builder setLabel(java.lang.String);
- method public android.view.textclassifier.TextClassificationResult.Builder setOnClickListener(android.view.View.OnClickListener);
- method public android.view.textclassifier.TextClassificationResult.Builder setText(java.lang.String);
+ public static final class TextClassification.Builder {
+ ctor public TextClassification.Builder();
+ method public android.view.textclassifier.TextClassification build();
+ method public android.view.textclassifier.TextClassification.Builder setEntityType(java.lang.String, float);
+ method public android.view.textclassifier.TextClassification.Builder setIcon(android.graphics.drawable.Drawable);
+ method public android.view.textclassifier.TextClassification.Builder setIntent(android.content.Intent);
+ method public android.view.textclassifier.TextClassification.Builder setLabel(java.lang.String);
+ method public android.view.textclassifier.TextClassification.Builder setOnClickListener(android.view.View.OnClickListener);
+ method public android.view.textclassifier.TextClassification.Builder setText(java.lang.String);
+ }
+
+ public final class TextClassificationManager {
+ method public android.view.textclassifier.TextClassifier getTextClassifier();
+ method public void setTextClassifier(android.view.textclassifier.TextClassifier);
}
public abstract interface TextClassifier {
- method public abstract android.view.textclassifier.TextClassificationResult getTextClassificationResult(java.lang.CharSequence, int, int, android.os.LocaleList);
+ method public abstract android.view.textclassifier.TextClassification classifyText(java.lang.CharSequence, int, int, android.os.LocaleList);
method public abstract android.view.textclassifier.TextSelection suggestSelection(java.lang.CharSequence, int, int, android.os.LocaleList);
field public static final android.view.textclassifier.TextClassifier NO_OP;
field public static final java.lang.String TYPE_ADDRESS = "address";
diff --git a/core/java/android/view/textclassifier/TextClassificationResult.java b/core/java/android/view/textclassifier/TextClassification.java
similarity index 93%
rename from core/java/android/view/textclassifier/TextClassificationResult.java
rename to core/java/android/view/textclassifier/TextClassification.java
index e188d11a..b6dd0b9 100644
--- a/core/java/android/view/textclassifier/TextClassificationResult.java
+++ b/core/java/android/view/textclassifier/TextClassification.java
@@ -33,12 +33,12 @@
/**
* Information for generating a widget to handle classified text.
*/
-public final class TextClassificationResult {
+public final class TextClassification {
/**
* @hide
*/
- static final TextClassificationResult EMPTY = new TextClassificationResult.Builder().build();
+ static final TextClassification EMPTY = new TextClassification.Builder().build();
@NonNull private final String mText;
@Nullable private final Drawable mIcon;
@@ -49,7 +49,7 @@
@NonNull private final List<String> mEntities;
private int mLogType;
- private TextClassificationResult(
+ private TextClassification(
@NonNull String text,
Drawable icon,
String label,
@@ -147,7 +147,7 @@
@Override
public String toString() {
- return String.format("TextClassificationResult {"
+ return String.format("TextClassification {"
+ "text=%s, entities=%s, label=%s, intent=%s}",
mText, mEntityConfidence, mLabel, mIntent);
}
@@ -167,7 +167,7 @@
}
/**
- * Builder for building {@link TextClassificationResult}s.
+ * Builder for building {@link TextClassification} objects.
*/
public static final class Builder {
@@ -244,10 +244,10 @@
}
/**
- * Builds an returns a {@link TextClassificationResult}.
+ * Builds and returns a {@link TextClassification} object.
*/
- public TextClassificationResult build() {
- return new TextClassificationResult(
+ public TextClassification build() {
+ return new TextClassification(
mText, mIcon, mLabel, mIntent, mOnClickListener, mEntityConfidence, mLogType);
}
}
diff --git a/core/java/android/view/textclassifier/TextClassifier.java b/core/java/android/view/textclassifier/TextClassifier.java
index 46fed43..1f3be84 100644
--- a/core/java/android/view/textclassifier/TextClassifier.java
+++ b/core/java/android/view/textclassifier/TextClassifier.java
@@ -20,6 +20,7 @@
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.StringDef;
+import android.annotation.WorkerThread;
import android.os.LocaleList;
import java.lang.annotation.Retention;
@@ -62,9 +63,9 @@
}
@Override
- public TextClassificationResult getTextClassificationResult(
+ public TextClassification classifyText(
CharSequence text, int startIndex, int endIndex, LocaleList defaultLocales) {
- return TextClassificationResult.EMPTY;
+ return TextClassification.EMPTY;
}
@Override
@@ -89,6 +90,7 @@
* @throws IllegalArgumentException if text is null; selectionStartIndex is negative;
* selectionEndIndex is greater than text.length() or not greater than selectionStartIndex
*/
+ @WorkerThread
@NonNull
TextSelection suggestSelection(
@NonNull CharSequence text,
@@ -97,8 +99,8 @@
@Nullable LocaleList defaultLocales);
/**
- * Returns a {@link TextClassificationResult} object that can be used to generate a widget for
- * handling the classified text.
+ * Classifies the specified text and returns a {@link TextClassification} object that can be
+ * used to generate a widget for handling the classified text.
*
* @param text text providing context for the text to classify (which is specified
* by the sub sequence starting at startIndex and ending at endIndex)
@@ -112,8 +114,9 @@
* @throws IllegalArgumentException if text is null; startIndex is negative;
* endIndex is greater than text.length() or not greater than startIndex
*/
+ @WorkerThread
@NonNull
- TextClassificationResult getTextClassificationResult(
+ TextClassification classifyText(
@NonNull CharSequence text,
@IntRange(from = 0) int startIndex,
@IntRange(from = 0) int endIndex,
@@ -134,6 +137,7 @@
* @throws IllegalArgumentException if text is null
* @hide
*/
+ @WorkerThread
LinksInfo getLinks(
@NonNull CharSequence text, int linkMask, @Nullable LocaleList defaultLocales);
}
diff --git a/core/java/android/view/textclassifier/TextClassifierImpl.java b/core/java/android/view/textclassifier/TextClassifierImpl.java
index 9c4fc3c..108107e 100644
--- a/core/java/android/view/textclassifier/TextClassifierImpl.java
+++ b/core/java/android/view/textclassifier/TextClassifierImpl.java
@@ -130,7 +130,7 @@
}
@Override
- public TextClassificationResult getTextClassificationResult(
+ public TextClassification classifyText(
@NonNull CharSequence text, int startIndex, int endIndex,
@Nullable LocaleList defaultLocales) {
validateInput(text, startIndex, endIndex);
@@ -141,7 +141,7 @@
.classifyText(string, startIndex, endIndex,
getHintFlags(string, startIndex, endIndex));
if (results.length > 0) {
- final TextClassificationResult classificationResult =
+ final TextClassification classificationResult =
createClassificationResult(
results, string.subSequence(startIndex, endIndex));
// TODO: Added this log for debug only. Remove before release.
@@ -155,7 +155,7 @@
Log.e(LOG_TAG, "Error getting assist info.", t);
}
// Getting here means something went wrong, return a NO_OP result.
- return TextClassifier.NO_OP.getTextClassificationResult(
+ return TextClassifier.NO_OP.classifyText(
text, startIndex, endIndex, defaultLocales);
}
@@ -316,9 +316,9 @@
}
}
- private TextClassificationResult createClassificationResult(
+ private TextClassification createClassificationResult(
SmartSelection.ClassificationResult[] classifications, CharSequence text) {
- final TextClassificationResult.Builder builder = new TextClassificationResult.Builder()
+ final TextClassification.Builder builder = new TextClassification.Builder()
.setText(text.toString());
final int size = classifications.length;
@@ -341,7 +341,7 @@
}
if (resolveInfo != null && resolveInfo.activityInfo != null) {
builder.setIntent(intent)
- .setOnClickListener(TextClassificationResult.createStartActivityOnClickListener(
+ .setOnClickListener(TextClassification.createStartActivityOnClickListener(
mContext, intent));
final String packageName = resolveInfo.activityInfo.packageName;
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index 27e3fe5..481c160 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -106,7 +106,7 @@
import android.view.inputmethod.ExtractedTextRequest;
import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputMethodManager;
-import android.view.textclassifier.TextClassificationResult;
+import android.view.textclassifier.TextClassification;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TextView.Drawables;
import android.widget.TextView.OnEditorActionListener;
@@ -3886,14 +3886,14 @@
private void updateAssistMenuItem(Menu menu) {
menu.removeItem(TextView.ID_ASSIST);
- final TextClassificationResult textClassificationResult =
- getSelectionActionModeHelper().getTextClassificationResult();
- if (textClassificationResult != null) {
- final Drawable icon = textClassificationResult.getIcon();
- final CharSequence label = textClassificationResult.getLabel();
+ final TextClassification textClassification =
+ getSelectionActionModeHelper().getTextClassification();
+ if (textClassification != null) {
+ final Drawable icon = textClassification.getIcon();
+ final CharSequence label = textClassification.getLabel();
final OnClickListener onClickListener =
- textClassificationResult.getOnClickListener();
- final Intent intent = textClassificationResult.getIntent();
+ textClassification.getOnClickListener();
+ final Intent intent = textClassification.getIntent();
if ((icon != null || !TextUtils.isEmpty(label))
&& (onClickListener != null || intent != null)) {
menu.add(TextView.ID_ASSIST, TextView.ID_ASSIST, MENU_ITEM_ORDER_ASSIST, label)
@@ -3902,7 +3902,7 @@
mMetricsLogger.write(
new LogMaker(MetricsEvent.TEXT_SELECTION_MENU_ITEM_ASSIST)
.setType(MetricsEvent.TYPE_OPEN)
- .setSubtype(textClassificationResult.getLogType()));
+ .setSubtype(textClassification.getLogType()));
}
}
}
@@ -3916,24 +3916,24 @@
if (customCallback != null && customCallback.onActionItemClicked(mode, item)) {
return true;
}
- final TextClassificationResult textClassificationResult =
- getSelectionActionModeHelper().getTextClassificationResult();
- if (TextView.ID_ASSIST == item.getItemId() && textClassificationResult != null) {
+ final TextClassification textClassification =
+ getSelectionActionModeHelper().getTextClassification();
+ if (TextView.ID_ASSIST == item.getItemId() && textClassification != null) {
final OnClickListener onClickListener =
- textClassificationResult.getOnClickListener();
+ textClassification.getOnClickListener();
if (onClickListener != null) {
onClickListener.onClick(mTextView);
} else {
- final Intent intent = textClassificationResult.getIntent();
+ final Intent intent = textClassification.getIntent();
if (intent != null) {
- TextClassificationResult.createStartActivityOnClickListener(
+ TextClassification.createStartActivityOnClickListener(
mTextView.getContext(), intent)
.onClick(mTextView);
}
}
mMetricsLogger.action(
MetricsEvent.ACTION_TEXT_SELECTION_MENU_ITEM_ASSIST,
- textClassificationResult.getLogType());
+ textClassification.getLogType());
stopTextActionMode();
return true;
}
diff --git a/core/java/android/widget/SelectionActionModeHelper.java b/core/java/android/widget/SelectionActionModeHelper.java
index 003db06..beff1b0 100644
--- a/core/java/android/widget/SelectionActionModeHelper.java
+++ b/core/java/android/widget/SelectionActionModeHelper.java
@@ -26,7 +26,7 @@
import android.text.Spannable;
import android.text.TextUtils;
import android.view.ActionMode;
-import android.view.textclassifier.TextClassificationResult;
+import android.view.textclassifier.TextClassification;
import android.view.textclassifier.TextClassifier;
import android.view.textclassifier.TextSelection;
import android.widget.Editor.SelectionModifierCursorController;
@@ -52,7 +52,7 @@
private final Editor mEditor;
private final TextClassificationHelper mTextClassificationHelper;
- private TextClassificationResult mTextClassificationResult;
+ private TextClassification mTextClassification;
private AsyncTask mTextClassificationAsyncTask;
private final SelectionInfo mSelectionInfo = new SelectionInfo();
@@ -107,8 +107,8 @@
}
@Nullable
- public TextClassificationResult getTextClassificationResult() {
- return mTextClassificationResult;
+ public TextClassification getTextClassification() {
+ return mTextClassification;
}
public void onDestroyActionMode() {
@@ -121,7 +121,7 @@
mTextClassificationAsyncTask.cancel(true);
mTextClassificationAsyncTask = null;
}
- mTextClassificationResult = null;
+ mTextClassification = null;
}
private boolean isNoOpTextClassifier() {
@@ -140,9 +140,9 @@
textView.getSelectionStart(), textView.getSelectionEnd());
if (result != null && text instanceof Spannable) {
Selection.setSelection((Spannable) text, result.mStart, result.mEnd);
- mTextClassificationResult = result.mResult;
+ mTextClassification = result.mClassification;
} else {
- mTextClassificationResult = null;
+ mTextClassification = null;
}
if (mEditor.startSelectionActionModeInternal()) {
final SelectionModifierCursorController controller = mEditor.getSelectionController();
@@ -158,7 +158,7 @@
}
private void invalidateActionMode(@Nullable SelectionResult result) {
- mTextClassificationResult = result != null ? result.mResult : null;
+ mTextClassification = result != null ? result.mClassification : null;
final ActionMode actionMode = mEditor.getTextActionMode();
if (actionMode != null) {
actionMode.invalidate();
@@ -332,7 +332,7 @@
return new SelectionResult(
mSelectionStart,
mSelectionEnd,
- mTextClassifier.getTextClassificationResult(
+ mTextClassifier.classifyText(
mTrimmedText, mRelativeStart, mRelativeEnd, mLocales));
}
@@ -361,12 +361,12 @@
private static final class SelectionResult {
private final int mStart;
private final int mEnd;
- private final TextClassificationResult mResult;
+ private final TextClassification mClassification;
- SelectionResult(int start, int end, TextClassificationResult result) {
+ SelectionResult(int start, int end, TextClassification classification) {
mStart = start;
mEnd = end;
- mResult = Preconditions.checkNotNull(result);
+ mClassification = Preconditions.checkNotNull(classification);
}
}
}
diff --git a/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java b/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java
index 39b999d..f59e4fc 100644
--- a/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java
+++ b/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java
@@ -102,31 +102,31 @@
}
@Test
- public void testTextClassificationResult() {
+ public void testClassifyText() {
if (isTextClassifierDisabled()) return;
String text = "Contact me at droid@android.com";
String classifiedText = "droid@android.com";
int startIndex = text.indexOf(classifiedText);
int endIndex = startIndex + classifiedText.length();
- assertThat(mClassifier.getTextClassificationResult(text, startIndex, endIndex, LOCALES),
- isTextClassificationResult(classifiedText, TextClassifier.TYPE_EMAIL));
+ assertThat(mClassifier.classifyText(text, startIndex, endIndex, LOCALES),
+ isTextClassification(classifiedText, TextClassifier.TYPE_EMAIL));
}
@Test
- public void testTextClassificationResult_url() {
+ public void testTextClassifyText_url() {
if (isTextClassifierDisabled()) return;
String text = "Visit http://www.android.com for more information";
String classifiedText = "http://www.android.com";
int startIndex = text.indexOf(classifiedText);
int endIndex = startIndex + classifiedText.length();
- assertThat(mClassifier.getTextClassificationResult(text, startIndex, endIndex, LOCALES),
- isTextClassificationResult(classifiedText, TextClassifier.TYPE_URL));
+ assertThat(mClassifier.classifyText(text, startIndex, endIndex, LOCALES),
+ isTextClassification(classifiedText, TextClassifier.TYPE_URL));
}
@Test
- public void testTextClassificationResult_nullLocaleList() {
+ public void testTextClassifyText_nullLocaleList() {
if (isTextClassifierDisabled()) return;
String text = "Contact me at droid@android.com";
@@ -134,8 +134,8 @@
int startIndex = text.indexOf(classifiedText);
int endIndex = startIndex + classifiedText.length();
LocaleList nullLocales = null;
- assertThat(mClassifier.getTextClassificationResult(text, startIndex, endIndex, nullLocales),
- isTextClassificationResult(classifiedText, TextClassifier.TYPE_EMAIL));
+ assertThat(mClassifier.classifyText(text, startIndex, endIndex, nullLocales),
+ isTextClassification(classifiedText, TextClassifier.TYPE_EMAIL));
}
@Test
@@ -186,13 +186,13 @@
};
}
- private static Matcher<TextClassificationResult> isTextClassificationResult(
+ private static Matcher<TextClassification> isTextClassification(
final String text, final String type) {
- return new BaseMatcher<TextClassificationResult>() {
+ return new BaseMatcher<TextClassification>() {
@Override
public boolean matches(Object o) {
- if (o instanceof TextClassificationResult) {
- TextClassificationResult result = (TextClassificationResult) o;
+ if (o instanceof TextClassification) {
+ TextClassification result = (TextClassification) o;
return text.equals(result.getText())
&& result.getEntityCount() > 0
&& type.equals(result.getEntity(0));