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;
}
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.
*
* 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;
}
/**
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);
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;
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()));
}
}