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
This commit is contained in:
Richard Ledley
2018-04-03 15:15:43 +01:00
parent de3569ef84
commit ab669a01a7
3 changed files with 13 additions and 17 deletions

View File

@@ -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;
}

View File

@@ -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);
}
}
finalSet.addAll(entities);
}
for (String entity : mIncludedEntityTypes) {
if (!mExcludedEntityTypes.contains(entity) && !finalList.contains(entity)) {
finalList.add(entity);
}
}
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);

View File

@@ -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()));
}
}