From: Richard Ledley Date: Tue, 3 Apr 2018 14:15:43 +0000 (+0100) Subject: Use Collection instead of List for entity list X-Git-Tag: android-x86-9.0-r1~149^2^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ab669a01a7cbb77107e4335f4940f4e39da0e2d7;p=android-x86%2Fframeworks-base.git Use Collection instead of List for entity list Test: bit CtsViewTestCases:android.view.textclassifier.cts.TextClassificationManagerTest FrameworksCoreTests:android.view.textclassifier.TextLinksTest Bug: 76448224 Change-Id: I354fa05f14b22075c2172624925f5b953956f3a4 --- 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); method public int describeContents(); method public java.util.Collection getHints(); - method public java.util.List resolveEntityListModifications(java.util.Collection); + method public java.util.Collection resolveEntityListModifications(java.util.Collection); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator 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 resolveEntityListModifications(@NonNull Collection entities) { - final ArrayList finalList = new ArrayList<>(); + public Collection resolveEntityListModifications( + @NonNull Collection entities) { + final Set 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 entities = request.getEntityConfig() + final Collection 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(Arrays.asList("a", "c")), result.getEntityConfig().resolveEntityListModifications(Collections.emptyList())); } }