diff options
| -rw-r--r-- | core/java/android/provider/VoicemailContract.java | 22 | ||||
| -rw-r--r-- | telephony/java/android/telephony/VisualVoicemailSmsFilterSettings.java | 27 |
2 files changed, 41 insertions, 8 deletions
diff --git a/core/java/android/provider/VoicemailContract.java b/core/java/android/provider/VoicemailContract.java index 6a3c55efda8a..9db8af743018 100644 --- a/core/java/android/provider/VoicemailContract.java +++ b/core/java/android/provider/VoicemailContract.java @@ -106,9 +106,12 @@ public class VoicemailContract { /** * Broadcast intent to inform a new visual voicemail SMS has been received. This intent will - * only be delivered to the telephony service. {@link #EXTRA_VOICEMAIL_SMS} will be included. - */ - /** @hide */ + * only be delivered to the telephony service. + * + * @see #EXTRA_VOICEMAIL_SMS + * @see #EXTRA_TARGET_PACKAGE + * + * @hide */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_VOICEMAIL_SMS_RECEIVED = "com.android.internal.provider.action.VOICEMAIL_SMS_RECEIVED"; @@ -121,6 +124,19 @@ public class VoicemailContract { public static final String EXTRA_VOICEMAIL_SMS = "android.provider.extra.VOICEMAIL_SMS"; /** + * Extra in {@link #ACTION_VOICEMAIL_SMS_RECEIVED} indicating the target package to bind {@link + * android.telephony.VisualVoicemailService}. + * + * <p>This extra should be set to android.telephony.VisualVoicemailSmsFilterSettings#packageName + * while performing filtering. Since the default dialer might change between the filter sending + * it and telephony binding to the service, this ensures the service will not receive SMS + * filtered by the previous app. + * + * @hide + */ + public static final String EXTRA_TARGET_PACKAGE = "android.provider.extra.TARGET_PACAKGE"; + + /** * Extra included in {@link Intent#ACTION_PROVIDER_CHANGED} broadcast intents to indicate if the * receiving package made this change. */ diff --git a/telephony/java/android/telephony/VisualVoicemailSmsFilterSettings.java b/telephony/java/android/telephony/VisualVoicemailSmsFilterSettings.java index 8ed96a3a4f36..7eeb1ce7991c 100644 --- a/telephony/java/android/telephony/VisualVoicemailSmsFilterSettings.java +++ b/telephony/java/android/telephony/VisualVoicemailSmsFilterSettings.java @@ -15,12 +15,10 @@ */ package android.telephony; -import android.content.Context; import android.os.Parcel; import android.os.Parcelable; - -import android.telecom.PhoneAccountHandle; import android.telephony.VisualVoicemailService.VisualVoicemailTask; + import java.util.Collections; import java.util.List; @@ -75,6 +73,7 @@ public final class VisualVoicemailSmsFilterSettings implements Parcelable { private String mClientPrefix = DEFAULT_CLIENT_PREFIX; private List<String> mOriginatingNumbers = DEFAULT_ORIGINATING_NUMBERS; private int mDestinationPort = DEFAULT_DESTINATION_PORT; + private String mPackageName; public VisualVoicemailSmsFilterSettings build() { return new VisualVoicemailSmsFilterSettings(this); @@ -116,6 +115,15 @@ public final class VisualVoicemailSmsFilterSettings implements Parcelable { return this; } + /** + * The package that registered this filter. + * + * @hide + */ + public Builder setPackageName(String packageName) { + mPackageName = packageName; + return this; + } } /** @@ -138,12 +146,20 @@ public final class VisualVoicemailSmsFilterSettings implements Parcelable { public final int destinationPort; /** + * The package that registered this filter. + * + * @hide + */ + public final String packageName; + + /** * Use {@link Builder} to construct */ private VisualVoicemailSmsFilterSettings(Builder builder) { clientPrefix = builder.mClientPrefix; originatingNumbers = builder.mOriginatingNumbers; destinationPort = builder.mDestinationPort; + packageName = builder.mPackageName; } public static final Creator<VisualVoicemailSmsFilterSettings> CREATOR = @@ -154,7 +170,7 @@ public final class VisualVoicemailSmsFilterSettings implements Parcelable { builder.setClientPrefix(in.readString()); builder.setOriginatingNumbers(in.createStringArrayList()); builder.setDestinationPort(in.readInt()); - + builder.setPackageName(in.readString()); return builder.build(); } @@ -174,10 +190,11 @@ public final class VisualVoicemailSmsFilterSettings implements Parcelable { dest.writeString(clientPrefix); dest.writeStringList(originatingNumbers); dest.writeInt(destinationPort); + dest.writeString(packageName); } @Override - public String toString(){ + public String toString() { return "[VisualVoicemailSmsFilterSettings " + "clientPrefix=" + clientPrefix + ", originatingNumbers=" + originatingNumbers |