Loading api/current.txt +26 −9 Original line number Diff line number Diff line Loading @@ -49261,14 +49261,13 @@ package android.view.textclassifier { method public android.graphics.drawable.Drawable getSecondaryIcon(int); method public android.content.Intent getSecondaryIntent(int); method public java.lang.CharSequence getSecondaryLabel(int); method public android.view.View.OnClickListener getSecondaryOnClickListener(int); method public java.lang.String getSignature(); method public java.lang.String getText(); } public static final class TextClassification.Builder { ctor public TextClassification.Builder(); method public android.view.textclassifier.TextClassification.Builder addSecondaryAction(android.content.Intent, java.lang.String, android.graphics.drawable.Drawable, android.view.View.OnClickListener); method public android.view.textclassifier.TextClassification.Builder addSecondaryAction(android.content.Intent, java.lang.String, android.graphics.drawable.Drawable); method public android.view.textclassifier.TextClassification build(); method public android.view.textclassifier.TextClassification.Builder clearSecondaryActions(); method public android.view.textclassifier.TextClassification.Builder setEntityType(java.lang.String, float); Loading @@ -49276,15 +49275,18 @@ package android.view.textclassifier { 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 setPrimaryAction(android.content.Intent, java.lang.String, android.graphics.drawable.Drawable, android.view.View.OnClickListener); method public android.view.textclassifier.TextClassification.Builder setPrimaryAction(android.content.Intent, java.lang.String, android.graphics.drawable.Drawable); method public android.view.textclassifier.TextClassification.Builder setSignature(java.lang.String); method public android.view.textclassifier.TextClassification.Builder setText(java.lang.String); } public static final class TextClassification.Options { public static final class TextClassification.Options implements android.os.Parcelable { ctor public TextClassification.Options(); method public int describeContents(); method public android.os.LocaleList getDefaultLocales(); method public android.view.textclassifier.TextClassification.Options setDefaultLocales(android.os.LocaleList); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextClassification.Options> CREATOR; } public final class TextClassificationManager { Loading Loading @@ -49314,16 +49316,22 @@ package android.view.textclassifier { field public static final java.lang.String TYPE_URL = "url"; } public static final class TextClassifier.EntityConfig { public static final class TextClassifier.EntityConfig implements android.os.Parcelable { ctor public TextClassifier.EntityConfig(int); method public int describeContents(); method public android.view.textclassifier.TextClassifier.EntityConfig excludeEntities(java.lang.String...); method public java.util.List<java.lang.String> getEntities(android.view.textclassifier.TextClassifier); method public android.view.textclassifier.TextClassifier.EntityConfig includeEntities(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; } public final class TextLinks { public final class TextLinks implements android.os.Parcelable { method public boolean apply(android.text.SpannableString, java.util.function.Function<android.view.textclassifier.TextLinks.TextLink, android.text.style.ClickableSpan>); method public int describeContents(); method public java.util.Collection<android.view.textclassifier.TextLinks.TextLink> getLinks(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextLinks> CREATOR; } public static final class TextLinks.Builder { Loading @@ -49332,21 +49340,27 @@ package android.view.textclassifier { method public android.view.textclassifier.TextLinks build(); } public static final class TextLinks.Options { public static final class TextLinks.Options implements android.os.Parcelable { ctor public TextLinks.Options(); method public int describeContents(); method public android.os.LocaleList getDefaultLocales(); method public android.view.textclassifier.TextClassifier.EntityConfig getEntityConfig(); method public android.view.textclassifier.TextLinks.Options setDefaultLocales(android.os.LocaleList); method public android.view.textclassifier.TextLinks.Options setEntityConfig(android.view.textclassifier.TextClassifier.EntityConfig); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextLinks.Options> CREATOR; } public static final class TextLinks.TextLink { public static final class TextLinks.TextLink implements android.os.Parcelable { ctor public TextLinks.TextLink(java.lang.String, int, int, java.util.Map<java.lang.String, java.lang.Float>); method public int describeContents(); method public float getConfidenceScore(java.lang.String); method public int getEnd(); method public java.lang.String getEntity(int); method public int getEntityCount(); method public int getStart(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextLinks.TextLink> CREATOR; } public final class TextSelection { Loading @@ -49365,10 +49379,13 @@ package android.view.textclassifier { method public android.view.textclassifier.TextSelection.Builder setSignature(java.lang.String); } public static final class TextSelection.Options { public static final class TextSelection.Options implements android.os.Parcelable { ctor public TextSelection.Options(); method public int describeContents(); method public android.os.LocaleList getDefaultLocales(); method public android.view.textclassifier.TextSelection.Options setDefaultLocales(android.os.LocaleList); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextSelection.Options> CREATOR; } } core/java/android/view/textclassifier/EntityConfidence.java +58 −18 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package android.view.textclassifier; import android.annotation.FloatRange; import android.annotation.NonNull; import android.os.Parcel; import android.os.Parcelable; import android.util.ArrayMap; import com.android.internal.util.Preconditions; Loading @@ -30,17 +32,16 @@ import java.util.Map; /** * Helper object for setting and getting entity scores for classified text. * * @param <T> the entity type. * @hide */ final class EntityConfidence<T> { final class EntityConfidence implements Parcelable { private final ArrayMap<T, Float> mEntityConfidence = new ArrayMap<>(); private final ArrayList<T> mSortedEntities = new ArrayList<>(); private final ArrayMap<String, Float> mEntityConfidence = new ArrayMap<>(); private final ArrayList<String> mSortedEntities = new ArrayList<>(); EntityConfidence() {} EntityConfidence(@NonNull EntityConfidence<T> source) { EntityConfidence(@NonNull EntityConfidence source) { Preconditions.checkNotNull(source); mEntityConfidence.putAll(source.mEntityConfidence); mSortedEntities.addAll(source.mSortedEntities); Loading @@ -54,24 +55,16 @@ final class EntityConfidence<T> { * @param source a map from entity to a confidence value in the range 0 (low confidence) to * 1 (high confidence). */ EntityConfidence(@NonNull Map<T, Float> source) { EntityConfidence(@NonNull Map<String, Float> source) { Preconditions.checkNotNull(source); // Prune non-existent entities and clamp to 1. mEntityConfidence.ensureCapacity(source.size()); for (Map.Entry<T, Float> it : source.entrySet()) { for (Map.Entry<String, Float> it : source.entrySet()) { if (it.getValue() <= 0) continue; mEntityConfidence.put(it.getKey(), Math.min(1, it.getValue())); } // Create a list of entities sorted by decreasing confidence for getEntities(). mSortedEntities.ensureCapacity(mEntityConfidence.size()); mSortedEntities.addAll(mEntityConfidence.keySet()); mSortedEntities.sort((e1, e2) -> { float score1 = mEntityConfidence.get(e1); float score2 = mEntityConfidence.get(e2); return Float.compare(score2, score1); }); resetSortedEntitiesFromMap(); } /** Loading @@ -79,7 +72,7 @@ final class EntityConfidence<T> { * high confidence to low confidence. */ @NonNull public List<T> getEntities() { public List<String> getEntities() { return Collections.unmodifiableList(mSortedEntities); } Loading @@ -89,7 +82,7 @@ final class EntityConfidence<T> { * classified text. */ @FloatRange(from = 0.0, to = 1.0) public float getConfidenceScore(T entity) { public float getConfidenceScore(String entity) { if (mEntityConfidence.containsKey(entity)) { return mEntityConfidence.get(entity); } Loading @@ -100,4 +93,51 @@ final class EntityConfidence<T> { public String toString() { return mEntityConfidence.toString(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mEntityConfidence.size()); for (Map.Entry<String, Float> entry : mEntityConfidence.entrySet()) { dest.writeString(entry.getKey()); dest.writeFloat(entry.getValue()); } } public static final Parcelable.Creator<EntityConfidence> CREATOR = new Parcelable.Creator<EntityConfidence>() { @Override public EntityConfidence createFromParcel(Parcel in) { return new EntityConfidence(in); } @Override public EntityConfidence[] newArray(int size) { return new EntityConfidence[size]; } }; private EntityConfidence(Parcel in) { final int numEntities = in.readInt(); mEntityConfidence.ensureCapacity(numEntities); for (int i = 0; i < numEntities; ++i) { mEntityConfidence.put(in.readString(), in.readFloat()); } resetSortedEntitiesFromMap(); } private void resetSortedEntitiesFromMap() { mSortedEntities.clear(); mSortedEntities.ensureCapacity(mEntityConfidence.size()); mSortedEntities.addAll(mEntityConfidence.keySet()); mSortedEntities.sort((e1, e2) -> { float score1 = mEntityConfidence.get(e1); float score2 = mEntityConfidence.get(e2); return Float.compare(score2, score1); }); } } Loading
api/current.txt +26 −9 Original line number Diff line number Diff line Loading @@ -49261,14 +49261,13 @@ package android.view.textclassifier { method public android.graphics.drawable.Drawable getSecondaryIcon(int); method public android.content.Intent getSecondaryIntent(int); method public java.lang.CharSequence getSecondaryLabel(int); method public android.view.View.OnClickListener getSecondaryOnClickListener(int); method public java.lang.String getSignature(); method public java.lang.String getText(); } public static final class TextClassification.Builder { ctor public TextClassification.Builder(); method public android.view.textclassifier.TextClassification.Builder addSecondaryAction(android.content.Intent, java.lang.String, android.graphics.drawable.Drawable, android.view.View.OnClickListener); method public android.view.textclassifier.TextClassification.Builder addSecondaryAction(android.content.Intent, java.lang.String, android.graphics.drawable.Drawable); method public android.view.textclassifier.TextClassification build(); method public android.view.textclassifier.TextClassification.Builder clearSecondaryActions(); method public android.view.textclassifier.TextClassification.Builder setEntityType(java.lang.String, float); Loading @@ -49276,15 +49275,18 @@ package android.view.textclassifier { 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 setPrimaryAction(android.content.Intent, java.lang.String, android.graphics.drawable.Drawable, android.view.View.OnClickListener); method public android.view.textclassifier.TextClassification.Builder setPrimaryAction(android.content.Intent, java.lang.String, android.graphics.drawable.Drawable); method public android.view.textclassifier.TextClassification.Builder setSignature(java.lang.String); method public android.view.textclassifier.TextClassification.Builder setText(java.lang.String); } public static final class TextClassification.Options { public static final class TextClassification.Options implements android.os.Parcelable { ctor public TextClassification.Options(); method public int describeContents(); method public android.os.LocaleList getDefaultLocales(); method public android.view.textclassifier.TextClassification.Options setDefaultLocales(android.os.LocaleList); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextClassification.Options> CREATOR; } public final class TextClassificationManager { Loading Loading @@ -49314,16 +49316,22 @@ package android.view.textclassifier { field public static final java.lang.String TYPE_URL = "url"; } public static final class TextClassifier.EntityConfig { public static final class TextClassifier.EntityConfig implements android.os.Parcelable { ctor public TextClassifier.EntityConfig(int); method public int describeContents(); method public android.view.textclassifier.TextClassifier.EntityConfig excludeEntities(java.lang.String...); method public java.util.List<java.lang.String> getEntities(android.view.textclassifier.TextClassifier); method public android.view.textclassifier.TextClassifier.EntityConfig includeEntities(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; } public final class TextLinks { public final class TextLinks implements android.os.Parcelable { method public boolean apply(android.text.SpannableString, java.util.function.Function<android.view.textclassifier.TextLinks.TextLink, android.text.style.ClickableSpan>); method public int describeContents(); method public java.util.Collection<android.view.textclassifier.TextLinks.TextLink> getLinks(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextLinks> CREATOR; } public static final class TextLinks.Builder { Loading @@ -49332,21 +49340,27 @@ package android.view.textclassifier { method public android.view.textclassifier.TextLinks build(); } public static final class TextLinks.Options { public static final class TextLinks.Options implements android.os.Parcelable { ctor public TextLinks.Options(); method public int describeContents(); method public android.os.LocaleList getDefaultLocales(); method public android.view.textclassifier.TextClassifier.EntityConfig getEntityConfig(); method public android.view.textclassifier.TextLinks.Options setDefaultLocales(android.os.LocaleList); method public android.view.textclassifier.TextLinks.Options setEntityConfig(android.view.textclassifier.TextClassifier.EntityConfig); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextLinks.Options> CREATOR; } public static final class TextLinks.TextLink { public static final class TextLinks.TextLink implements android.os.Parcelable { ctor public TextLinks.TextLink(java.lang.String, int, int, java.util.Map<java.lang.String, java.lang.Float>); method public int describeContents(); method public float getConfidenceScore(java.lang.String); method public int getEnd(); method public java.lang.String getEntity(int); method public int getEntityCount(); method public int getStart(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextLinks.TextLink> CREATOR; } public final class TextSelection { Loading @@ -49365,10 +49379,13 @@ package android.view.textclassifier { method public android.view.textclassifier.TextSelection.Builder setSignature(java.lang.String); } public static final class TextSelection.Options { public static final class TextSelection.Options implements android.os.Parcelable { ctor public TextSelection.Options(); method public int describeContents(); method public android.os.LocaleList getDefaultLocales(); method public android.view.textclassifier.TextSelection.Options setDefaultLocales(android.os.LocaleList); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextSelection.Options> CREATOR; } }
core/java/android/view/textclassifier/EntityConfidence.java +58 −18 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package android.view.textclassifier; import android.annotation.FloatRange; import android.annotation.NonNull; import android.os.Parcel; import android.os.Parcelable; import android.util.ArrayMap; import com.android.internal.util.Preconditions; Loading @@ -30,17 +32,16 @@ import java.util.Map; /** * Helper object for setting and getting entity scores for classified text. * * @param <T> the entity type. * @hide */ final class EntityConfidence<T> { final class EntityConfidence implements Parcelable { private final ArrayMap<T, Float> mEntityConfidence = new ArrayMap<>(); private final ArrayList<T> mSortedEntities = new ArrayList<>(); private final ArrayMap<String, Float> mEntityConfidence = new ArrayMap<>(); private final ArrayList<String> mSortedEntities = new ArrayList<>(); EntityConfidence() {} EntityConfidence(@NonNull EntityConfidence<T> source) { EntityConfidence(@NonNull EntityConfidence source) { Preconditions.checkNotNull(source); mEntityConfidence.putAll(source.mEntityConfidence); mSortedEntities.addAll(source.mSortedEntities); Loading @@ -54,24 +55,16 @@ final class EntityConfidence<T> { * @param source a map from entity to a confidence value in the range 0 (low confidence) to * 1 (high confidence). */ EntityConfidence(@NonNull Map<T, Float> source) { EntityConfidence(@NonNull Map<String, Float> source) { Preconditions.checkNotNull(source); // Prune non-existent entities and clamp to 1. mEntityConfidence.ensureCapacity(source.size()); for (Map.Entry<T, Float> it : source.entrySet()) { for (Map.Entry<String, Float> it : source.entrySet()) { if (it.getValue() <= 0) continue; mEntityConfidence.put(it.getKey(), Math.min(1, it.getValue())); } // Create a list of entities sorted by decreasing confidence for getEntities(). mSortedEntities.ensureCapacity(mEntityConfidence.size()); mSortedEntities.addAll(mEntityConfidence.keySet()); mSortedEntities.sort((e1, e2) -> { float score1 = mEntityConfidence.get(e1); float score2 = mEntityConfidence.get(e2); return Float.compare(score2, score1); }); resetSortedEntitiesFromMap(); } /** Loading @@ -79,7 +72,7 @@ final class EntityConfidence<T> { * high confidence to low confidence. */ @NonNull public List<T> getEntities() { public List<String> getEntities() { return Collections.unmodifiableList(mSortedEntities); } Loading @@ -89,7 +82,7 @@ final class EntityConfidence<T> { * classified text. */ @FloatRange(from = 0.0, to = 1.0) public float getConfidenceScore(T entity) { public float getConfidenceScore(String entity) { if (mEntityConfidence.containsKey(entity)) { return mEntityConfidence.get(entity); } Loading @@ -100,4 +93,51 @@ final class EntityConfidence<T> { public String toString() { return mEntityConfidence.toString(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mEntityConfidence.size()); for (Map.Entry<String, Float> entry : mEntityConfidence.entrySet()) { dest.writeString(entry.getKey()); dest.writeFloat(entry.getValue()); } } public static final Parcelable.Creator<EntityConfidence> CREATOR = new Parcelable.Creator<EntityConfidence>() { @Override public EntityConfidence createFromParcel(Parcel in) { return new EntityConfidence(in); } @Override public EntityConfidence[] newArray(int size) { return new EntityConfidence[size]; } }; private EntityConfidence(Parcel in) { final int numEntities = in.readInt(); mEntityConfidence.ensureCapacity(numEntities); for (int i = 0; i < numEntities; ++i) { mEntityConfidence.put(in.readString(), in.readFloat()); } resetSortedEntitiesFromMap(); } private void resetSortedEntitiesFromMap() { mSortedEntities.clear(); mSortedEntities.ensureCapacity(mEntityConfidence.size()); mSortedEntities.addAll(mEntityConfidence.keySet()); mSortedEntities.sort((e1, e2) -> { float score1 = mEntityConfidence.get(e1); float score2 = mEntityConfidence.get(e2); return Float.compare(score2, score1); }); } }