diff options
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/view/textclassifier/TextClassifier.java | 25 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/view/textclassifier/TextLinksTest.java | 3 |
3 files changed, 13 insertions, 17 deletions
diff --git a/api/current.txt b/api/current.txt index 607109d31228..03d09940bff1 100644 --- a/api/current.txt +++ b/api/current.txt @@ -50538,7 +50538,7 @@ package android.view.textclassifier { method public static android.view.textclassifier.TextClassifier.EntityConfig createWithHints(java.util.Collection<java.lang.String>); method public int describeContents(); method public java.util.Collection<java.lang.String> getHints(); - method public java.util.List<java.lang.String> resolveEntityListModifications(java.util.Collection<java.lang.String>); + method public java.util.Collection<java.lang.String> resolveEntityListModifications(java.util.Collection<java.lang.String>); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextClassifier.EntityConfig> CREATOR; } diff --git a/core/java/android/view/textclassifier/TextClassifier.java b/core/java/android/view/textclassifier/TextClassifier.java index 54261be33607..12c88b5d89e5 100644 --- a/core/java/android/view/textclassifier/TextClassifier.java +++ b/core/java/android/view/textclassifier/TextClassifier.java @@ -41,8 +41,9 @@ import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.List; +import java.util.HashSet; import java.util.Map; +import java.util.Set; /** * Interface for providing text classification related features. @@ -413,21 +414,15 @@ public interface TextClassifier { * * This method is intended for use by TextClassifier implementations. */ - public List<String> resolveEntityListModifications(@NonNull Collection<String> entities) { - final ArrayList<String> finalList = new ArrayList<>(); + public Collection<String> resolveEntityListModifications( + @NonNull Collection<String> entities) { + final Set<String> finalSet = new HashSet(); if (mUseHints) { - for (String entity : entities) { - if (!mExcludedEntityTypes.contains(entity)) { - finalList.add(entity); - } - } - } - for (String entity : mIncludedEntityTypes) { - if (!mExcludedEntityTypes.contains(entity) && !finalList.contains(entity)) { - finalList.add(entity); - } + finalSet.addAll(entities); } - return finalList; + finalSet.addAll(mIncludedEntityTypes); + finalSet.removeAll(mExcludedEntityTypes); + return finalSet; } /** @@ -508,7 +503,7 @@ public interface TextClassifier { final String string = request.getText().toString(); final TextLinks.Builder links = new TextLinks.Builder(string); - final List<String> entities = request.getEntityConfig() + final Collection<String> entities = request.getEntityConfig() .resolveEntityListModifications(Collections.emptyList()); if (entities.contains(TextClassifier.TYPE_URL)) { addLinks(links, string, TextClassifier.TYPE_URL); diff --git a/core/tests/coretests/src/android/view/textclassifier/TextLinksTest.java b/core/tests/coretests/src/android/view/textclassifier/TextLinksTest.java index fb09e3ee8c9f..fff723fc544c 100644 --- a/core/tests/coretests/src/android/view/textclassifier/TextLinksTest.java +++ b/core/tests/coretests/src/android/view/textclassifier/TextLinksTest.java @@ -30,6 +30,7 @@ import org.junit.runner.RunWith; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -105,7 +106,7 @@ public class TextLinksTest { assertEquals("en-US,de-DE", result.getDefaultLocales().toLanguageTags()); assertEquals(new String[]{TextClassifier.HINT_TEXT_IS_EDITABLE}, result.getEntityConfig().getHints().toArray()); - assertEquals(Arrays.asList("a", "c"), + assertEquals(new HashSet<String>(Arrays.asList("a", "c")), result.getEntityConfig().resolveEntityListModifications(Collections.emptyList())); } } |