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); }); } } core/java/android/view/textclassifier/TextClassification.java +209 −69 File changed.Preview size limit exceeded, changes collapsed. Show changes core/java/android/view/textclassifier/TextClassifier.java +34 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.annotation.Nullable; import android.annotation.StringDef; import android.annotation.WorkerThread; import android.os.LocaleList; import android.os.Parcel; import android.os.Parcelable; import android.util.ArraySet; import com.android.internal.util.Preconditions; Loading Loading @@ -305,7 +307,7 @@ public interface TextClassifier { * * Configs are initially based on a predefined preset, and can be modified from there. */ final class EntityConfig { final class EntityConfig implements Parcelable { private final @TextClassifier.EntityPreset int mEntityPreset; private final Collection<String> mExcludedEntityTypes; private final Collection<String> mIncludedEntityTypes; Loading Loading @@ -355,6 +357,37 @@ public interface TextClassifier { } return Collections.unmodifiableList(entities); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mEntityPreset); dest.writeStringList(new ArrayList<>(mExcludedEntityTypes)); dest.writeStringList(new ArrayList<>(mIncludedEntityTypes)); } public static final Parcelable.Creator<EntityConfig> CREATOR = new Parcelable.Creator<EntityConfig>() { @Override public EntityConfig createFromParcel(Parcel in) { return new EntityConfig(in); } @Override public EntityConfig[] newArray(int size) { return new EntityConfig[size]; } }; private EntityConfig(Parcel in) { mEntityPreset = in.readInt(); mExcludedEntityTypes = new ArraySet<>(in.createStringArrayList()); mIncludedEntityTypes = new ArraySet<>(in.createStringArrayList()); } } /** Loading core/java/android/view/textclassifier/TextClassifierImpl.java +2 −5 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.provider.ContactsContract; import android.provider.Settings; import android.text.util.Linkify; import android.util.Patterns; import android.view.View.OnClickListener; import com.android.internal.annotations.GuardedBy; import com.android.internal.logging.MetricsLogger; Loading Loading @@ -457,12 +456,10 @@ final class TextClassifierImpl implements TextClassifier { } } final String labelString = (label != null) ? label.toString() : null; final OnClickListener onClickListener = TextClassification.createStartActivityOnClickListener(mContext, intent); if (i == 0) { builder.setPrimaryAction(intent, labelString, icon, onClickListener); builder.setPrimaryAction(intent, labelString, icon); } else { builder.addSecondaryAction(intent, labelString, icon, onClickListener); builder.addSecondaryAction(intent, labelString, icon); } } } Loading 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); }); } }
core/java/android/view/textclassifier/TextClassification.java +209 −69 File changed.Preview size limit exceeded, changes collapsed. Show changes
core/java/android/view/textclassifier/TextClassifier.java +34 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.annotation.Nullable; import android.annotation.StringDef; import android.annotation.WorkerThread; import android.os.LocaleList; import android.os.Parcel; import android.os.Parcelable; import android.util.ArraySet; import com.android.internal.util.Preconditions; Loading Loading @@ -305,7 +307,7 @@ public interface TextClassifier { * * Configs are initially based on a predefined preset, and can be modified from there. */ final class EntityConfig { final class EntityConfig implements Parcelable { private final @TextClassifier.EntityPreset int mEntityPreset; private final Collection<String> mExcludedEntityTypes; private final Collection<String> mIncludedEntityTypes; Loading Loading @@ -355,6 +357,37 @@ public interface TextClassifier { } return Collections.unmodifiableList(entities); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mEntityPreset); dest.writeStringList(new ArrayList<>(mExcludedEntityTypes)); dest.writeStringList(new ArrayList<>(mIncludedEntityTypes)); } public static final Parcelable.Creator<EntityConfig> CREATOR = new Parcelable.Creator<EntityConfig>() { @Override public EntityConfig createFromParcel(Parcel in) { return new EntityConfig(in); } @Override public EntityConfig[] newArray(int size) { return new EntityConfig[size]; } }; private EntityConfig(Parcel in) { mEntityPreset = in.readInt(); mExcludedEntityTypes = new ArraySet<>(in.createStringArrayList()); mIncludedEntityTypes = new ArraySet<>(in.createStringArrayList()); } } /** Loading
core/java/android/view/textclassifier/TextClassifierImpl.java +2 −5 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.provider.ContactsContract; import android.provider.Settings; import android.text.util.Linkify; import android.util.Patterns; import android.view.View.OnClickListener; import com.android.internal.annotations.GuardedBy; import com.android.internal.logging.MetricsLogger; Loading Loading @@ -457,12 +456,10 @@ final class TextClassifierImpl implements TextClassifier { } } final String labelString = (label != null) ? label.toString() : null; final OnClickListener onClickListener = TextClassification.createStartActivityOnClickListener(mContext, intent); if (i == 0) { builder.setPrimaryAction(intent, labelString, icon, onClickListener); builder.setPrimaryAction(intent, labelString, icon); } else { builder.addSecondaryAction(intent, labelString, icon, onClickListener); builder.addSecondaryAction(intent, labelString, icon); } } } Loading