From 9a3dcc559e7dbbe34cacf773d663f7d988d2dc95 Mon Sep 17 00:00:00 2001 From: Ta-wei Yen Date: Mon, 6 Mar 2017 14:57:47 -0800 Subject: [PATCH] Update VVM API + TelephonyManager.getVisualVoicemailPackageName() uses pinned subId from the manager. + TelephonyManager.getNetworkSpecifier() updated doc to explain what a network specifier is. + TelephonyManager.getCarrierConfig() Annotated with @WorkerThread specified failure behavior. + VisualVoicemailSms.getFields() Doc specified values are carrier dependent. - Hide DEFAULT_* from VisualVociemaliSmsFitelrSettings Test: CTS TelephonyManagerTest Bug: 35766748 Fixes: 35766370 Fixes: 35766489 Change-Id: If48d48a0cf588bcb59c7b77ce6a452d2fda7bfa5 Merged-in: If48d48a0cf588bcb59c7b77ce6a452d2fda7bfa5 --- api/current.txt | 5 +--- api/system-current.txt | 5 +--- api/test-current.txt | 5 +--- .../android/telephony/TelephonyManager.java | 25 ++++++++++++++----- .../android/telephony/VisualVoicemailSms.java | 3 ++- .../VisualVoicemailSmsFilterSettings.java | 10 +++++++- .../internal/telephony/ITelephony.aidl | 3 +-- 7 files changed, 34 insertions(+), 22 deletions(-) diff --git a/api/current.txt b/api/current.txt index f51b81cabc54b..530d8702c41b8 100644 --- a/api/current.txt +++ b/api/current.txt @@ -38154,7 +38154,7 @@ package android.telephony { method public int getSimState(); method public int getSimState(int); method public java.lang.String getSubscriberId(); - method public java.lang.String getVisualVoicemailPackageName(android.telecom.PhoneAccountHandle); + method public java.lang.String getVisualVoicemailPackageName(); method public java.lang.String getVoiceMailAlphaTag(); method public java.lang.String getVoiceMailNumber(); method public int getVoiceNetworkType(); @@ -38290,9 +38290,6 @@ package android.telephony { method public int describeContents(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator CREATOR; - field public static final java.lang.String DEFAULT_CLIENT_PREFIX = "//VVM"; - field public static final int DEFAULT_DESTINATION_PORT = -1; // 0xffffffff - field public static final java.util.List DEFAULT_ORIGINATING_NUMBERS; field public static final int DESTINATION_PORT_ANY = -1; // 0xffffffff field public static final int DESTINATION_PORT_DATA_SMS = -2; // 0xfffffffe field public final java.lang.String clientPrefix; diff --git a/api/system-current.txt b/api/system-current.txt index 193706c714ee6..7fe8c1a2a1775 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -41368,7 +41368,7 @@ package android.telephony { method public int getSimState(int); method public java.lang.String getSubscriberId(); method public java.util.List getTelephonyHistograms(); - method public java.lang.String getVisualVoicemailPackageName(android.telecom.PhoneAccountHandle); + method public java.lang.String getVisualVoicemailPackageName(); method public java.lang.String getVoiceMailAlphaTag(); method public java.lang.String getVoiceMailNumber(); method public int getVoiceNetworkType(); @@ -41535,9 +41535,6 @@ package android.telephony { method public int describeContents(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator CREATOR; - field public static final java.lang.String DEFAULT_CLIENT_PREFIX = "//VVM"; - field public static final int DEFAULT_DESTINATION_PORT = -1; // 0xffffffff - field public static final java.util.List DEFAULT_ORIGINATING_NUMBERS; field public static final int DESTINATION_PORT_ANY = -1; // 0xffffffff field public static final int DESTINATION_PORT_DATA_SMS = -2; // 0xfffffffe field public final java.lang.String clientPrefix; diff --git a/api/test-current.txt b/api/test-current.txt index c4737f78a2d6a..c60adf13f654e 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -38253,7 +38253,7 @@ package android.telephony { method public int getSimState(); method public int getSimState(int); method public java.lang.String getSubscriberId(); - method public java.lang.String getVisualVoicemailPackageName(android.telecom.PhoneAccountHandle); + method public java.lang.String getVisualVoicemailPackageName(); method public java.lang.String getVoiceMailAlphaTag(); method public java.lang.String getVoiceMailNumber(); method public int getVoiceNetworkType(); @@ -38389,9 +38389,6 @@ package android.telephony { method public int describeContents(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator CREATOR; - field public static final java.lang.String DEFAULT_CLIENT_PREFIX = "//VVM"; - field public static final int DEFAULT_DESTINATION_PORT = -1; // 0xffffffff - field public static final java.util.List DEFAULT_ORIGINATING_NUMBERS; field public static final int DESTINATION_PORT_ANY = -1; // 0xffffffff field public static final int DESTINATION_PORT_DATA_SMS = -2; // 0xfffffffe field public final java.lang.String clientPrefix; diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index acdfa051811ce..36c2eabac2253 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -24,6 +24,8 @@ import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; +import android.annotation.WorkerThread; +import android.annotation.SystemApi; import android.app.ActivityThread; import android.app.PendingIntent; import android.content.ContentResolver; @@ -1508,7 +1510,10 @@ public class TelephonyManager { /** - * Returns the network specifier of the subscription ID pinned to the TelephonyManager. + * Returns the network specifier of the subscription ID pinned to the TelephonyManager. The + * network specifier is used by {@link + * android.net.NetworkRequest.Builder#setNetworkSpecifier(String)} to create a {@link + * android.net.NetworkRequest} that connects through the subscription. * * @see android.net.NetworkRequest.Builder#setNetworkSpecifier(String) * @see #createForSubscriptionId(int) @@ -1519,7 +1524,9 @@ public class TelephonyManager { } /** - * Returns the carrier config of the subscription ID pinned to the TelephonyManager. + * Returns the carrier config of the subscription ID pinned to the TelephonyManager. If an + * invalid subscription ID is pinned to the TelephonyManager, the returned config will contain + * default values. * *

Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE * READ_PHONE_STATE} @@ -1528,6 +1535,7 @@ public class TelephonyManager { * @see #createForSubscriptionId(int) * @see #createForPhoneAccountHandle(PhoneAccountHandle) */ + @WorkerThread public PersistableBundle getCarrierConfig() { CarrierConfigManager carrierConfigManager = mContext .getSystemService(CarrierConfigManager.class); @@ -2714,19 +2722,24 @@ public class TelephonyManager { /** - * Returns the package responsible of processing visual voicemail for the phone account. + * Returns the package responsible of processing visual voicemail for the subscription ID pinned + * to the TelephonyManager. Returns {@code null} when there is no package responsible for + * processing visual voicemail for the subscription. * *

Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE * READ_PHONE_STATE} + * + * @see #createForSubscriptionId(int) + * @see #createForPhoneAccountHandle(PhoneAccountHandle) + * @see VisualVoicemailService */ @Nullable - public String getVisualVoicemailPackageName(PhoneAccountHandle phoneAccountHandle) { + public String getVisualVoicemailPackageName() { try { ITelephony telephony = getITelephony(); if (telephony != null) { return telephony - .getVisualVoicemailPackageName(mContext.getOpPackageName(), - phoneAccountHandle); + .getVisualVoicemailPackageName(mContext.getOpPackageName(), mSubId); } } catch (RemoteException ex) { } catch (NullPointerException ex) { diff --git a/telephony/java/android/telephony/VisualVoicemailSms.java b/telephony/java/android/telephony/VisualVoicemailSms.java index 6235c10ab12af..1e6ea4bfa0016 100644 --- a/telephony/java/android/telephony/VisualVoicemailSms.java +++ b/telephony/java/android/telephony/VisualVoicemailSms.java @@ -63,7 +63,8 @@ public final class VisualVoicemailSms implements Parcelable { /** * The key-value pairs sent by the SMS, or {@code null} if the framework cannot parse the SMS as - * voicemail but the carrier pattern indicates it is. + * voicemail but the carrier pattern indicates it is. The interpretation of the fields is + * carrier dependent. */ public Bundle getFields() { return mFields; diff --git a/telephony/java/android/telephony/VisualVoicemailSmsFilterSettings.java b/telephony/java/android/telephony/VisualVoicemailSmsFilterSettings.java index 9d19d08604077..56a8c62558243 100644 --- a/telephony/java/android/telephony/VisualVoicemailSmsFilterSettings.java +++ b/telephony/java/android/telephony/VisualVoicemailSmsFilterSettings.java @@ -16,7 +16,6 @@ package android.telephony; import android.content.Context; -import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -55,8 +54,17 @@ public final class VisualVoicemailSmsFilterSettings implements Parcelable { */ public static final int DESTINATION_PORT_DATA_SMS = -2; + /** + * @hide + */ public static final String DEFAULT_CLIENT_PREFIX = "//VVM"; + /** + * @hide + */ public static final List DEFAULT_ORIGINATING_NUMBERS = Collections.emptyList(); + /** + * @hide + */ public static final int DEFAULT_DESTINATION_PORT = DESTINATION_PORT_ANY; /** diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 454ab40ab66f3..f2e1e2691c8fc 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -504,8 +504,7 @@ interface ITelephony { boolean isVisualVoicemailEnabled(String callingPackage, in PhoneAccountHandle accountHandle); - String getVisualVoicemailPackageName(String callingPackage, - in PhoneAccountHandle phoneAccountHandle); + String getVisualVoicemailPackageName(String callingPackage, int subId); // Not oneway, caller needs to make sure the vaule is set before receiving a SMS void enableVisualVoicemailSmsFilter(String callingPackage, int subId,