From 9cc898007a171059a22ccc7b6f567cf49bf62f6c Mon Sep 17 00:00:00 2001 From: Ta-wei Yen Date: Fri, 24 Feb 2017 18:22:16 -0800 Subject: [PATCH] Add EXTRA_PHONE_ACCOUNT_HANDLE for ACTION_SHOW_VOICEMAIL_NOTIFICATION Dialer needs the PhoneAccountHandle to determine the ringtone and whether to ignore the notification because of visual voicemail. Bug: 32884372 Test: CTS Verifier Test - Voicemail Broadcast Test Change-Id: Ic58ade9bc29ad284ee18437aba826b317a46dd11 --- api/current.txt | 1 + api/system-current.txt | 1 + api/test-current.txt | 1 + .../android/telephony/TelephonyManager.java | 22 +++++++++++++------ 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/api/current.txt b/api/current.txt index 27fd66964c5a1..02f33dc920d00 100644 --- a/api/current.txt +++ b/api/current.txt @@ -39358,6 +39358,7 @@ package android.telephony { field public static final java.lang.String EXTRA_INCOMING_NUMBER = "incoming_number"; field public static final java.lang.String EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT = "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT"; field public static final java.lang.String EXTRA_NOTIFICATION_COUNT = "android.telephony.extra.NOTIFICATION_COUNT"; + field public static final java.lang.String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telephony.extra.PHONE_ACCOUNT_HANDLE"; field public static final java.lang.String EXTRA_STATE = "state"; field public static final java.lang.String EXTRA_STATE_IDLE; field public static final java.lang.String EXTRA_STATE_OFFHOOK; diff --git a/api/system-current.txt b/api/system-current.txt index a06c91395290a..931270d1b3531 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -42667,6 +42667,7 @@ package android.telephony { field public static final java.lang.String EXTRA_INCOMING_NUMBER = "incoming_number"; field public static final java.lang.String EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT = "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT"; field public static final java.lang.String EXTRA_NOTIFICATION_COUNT = "android.telephony.extra.NOTIFICATION_COUNT"; + field public static final java.lang.String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telephony.extra.PHONE_ACCOUNT_HANDLE"; field public static final java.lang.String EXTRA_STATE = "state"; field public static final java.lang.String EXTRA_STATE_IDLE; field public static final java.lang.String EXTRA_STATE_OFFHOOK; diff --git a/api/test-current.txt b/api/test-current.txt index a590e45cf903a..00fb7b6f7d9a1 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -39542,6 +39542,7 @@ package android.telephony { field public static final java.lang.String EXTRA_INCOMING_NUMBER = "incoming_number"; field public static final java.lang.String EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT = "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT"; field public static final java.lang.String EXTRA_NOTIFICATION_COUNT = "android.telephony.extra.NOTIFICATION_COUNT"; + field public static final java.lang.String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telephony.extra.PHONE_ACCOUNT_HANDLE"; field public static final java.lang.String EXTRA_STATE = "state"; field public static final java.lang.String EXTRA_STATE_IDLE; field public static final java.lang.String EXTRA_STATE_OFFHOOK; diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index a4235d79a2144..37cee1e2de8c3 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -21,9 +21,9 @@ import static com.android.internal.util.Preconditions.checkNotNull; import android.annotation.IntDef; import android.annotation.Nullable; import android.annotation.RequiresPermission; -import android.annotation.SystemApi; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; +import android.annotation.SystemApi; import android.app.ActivityThread; import android.app.PendingIntent; import android.content.ContentResolver; @@ -32,9 +32,6 @@ import android.content.Intent; import android.net.ConnectivityManager; import android.net.Uri; import android.os.BatteryStats; -import android.os.Binder; -import android.provider.Settings; -import android.provider.Settings.SettingNotFoundException; import android.os.Bundle; import android.os.Handler; import android.os.PersistableBundle; @@ -42,11 +39,11 @@ import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceManager; import android.os.SystemProperties; +import android.provider.Settings; +import android.provider.Settings.SettingNotFoundException; import android.service.carrier.CarrierIdentifier; import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; -import android.telephony.ClientRequestStats; -import android.telephony.TelephonyHistogram; import android.telephony.ims.feature.ImsFeature; import android.util.Log; @@ -64,7 +61,6 @@ import com.android.internal.telephony.TelephonyProperties; import java.io.FileInputStream; import java.io.IOException; -import java.io.UnsupportedEncodingException; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; @@ -733,6 +729,8 @@ public class TelephonyManager { * notification. * *

+ * The {@link #EXTRA_PHONE_ACCOUNT_HANDLE} extra indicates which {@link PhoneAccountHandle} the + * voicemail is received on. * The {@link #EXTRA_NOTIFICATION_COUNT} extra indicates the total numbers of unheard * voicemails. * The {@link #EXTRA_VOICEMAIL_NUMBER} extra indicates the voicemail number if available. @@ -743,6 +741,7 @@ public class TelephonyManager { * {@link android.app.PendingIntent} that will launch the voicemail settings. This extra is only * available when the voicemail number is not set. * + * @see #EXTRA_PHONE_ACCOUNT_HANDLE * @see #EXTRA_NOTIFICATION_COUNT * @see #EXTRA_VOICEMAIL_NUMBER * @see #EXTRA_CALL_VOICEMAIL_INTENT @@ -751,6 +750,15 @@ public class TelephonyManager { public static final String ACTION_SHOW_VOICEMAIL_NOTIFICATION = "android.telephony.action.SHOW_VOICEMAIL_NOTIFICATION"; + /** + * The extra used with an {@link #ACTION_SHOW_VOICEMAIL_NOTIFICATION} {@code Intent} to specify + * the {@link PhoneAccountHandle} the notification is for. + *

+ * Retrieve with {@link android.content.Intent#getParcelableExtra(String)}. + */ + public static final String EXTRA_PHONE_ACCOUNT_HANDLE = + "android.telephony.extra.PHONE_ACCOUNT_HANDLE"; + /** * The number of voice messages associated with the notification. */