diff --git a/api/current.txt b/api/current.txt index 1ff88cf38a81d..e4c722c5364a1 100644 --- a/api/current.txt +++ b/api/current.txt @@ -38786,6 +38786,7 @@ package android.telephony { field public static final int DATA_DISCONNECTED = 0; // 0x0 field public static final int DATA_SUSPENDED = 3; // 0x3 field public static final java.lang.String EXTRA_CALL_VOICEMAIL_INTENT = "android.telephony.extra.CALL_VOICEMAIL_INTENT"; + field public static final java.lang.String EXTRA_HIDE_PUBLIC_SETTINGS = "android.telephony.extra.HIDE_PUBLIC_SETTINGS"; 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"; @@ -38794,6 +38795,7 @@ package android.telephony { field public static final java.lang.String EXTRA_STATE_OFFHOOK; field public static final java.lang.String EXTRA_STATE_RINGING; field public static final java.lang.String EXTRA_VOICEMAIL_NUMBER = "android.telephony.extra.VOICEMAIL_NUMBER"; + field public static final java.lang.String METADATA_HIDE_VOICEMAIL_SETTINGS_MENU = "android.telephony.HIDE_VOICEMAIL_SETTINGS_MENU"; field public static final int NETWORK_TYPE_1xRTT = 7; // 0x7 field public static final int NETWORK_TYPE_CDMA = 4; // 0x4 field public static final int NETWORK_TYPE_EDGE = 2; // 0x2 diff --git a/api/system-current.txt b/api/system-current.txt index b90779eafa35b..8ca38e6d20835 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -42148,6 +42148,7 @@ package android.telephony { field public static final int DATA_DISCONNECTED = 0; // 0x0 field public static final int DATA_SUSPENDED = 3; // 0x3 field public static final java.lang.String EXTRA_CALL_VOICEMAIL_INTENT = "android.telephony.extra.CALL_VOICEMAIL_INTENT"; + field public static final java.lang.String EXTRA_HIDE_PUBLIC_SETTINGS = "android.telephony.extra.HIDE_PUBLIC_SETTINGS"; 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"; @@ -42156,6 +42157,7 @@ package android.telephony { field public static final java.lang.String EXTRA_STATE_OFFHOOK; field public static final java.lang.String EXTRA_STATE_RINGING; field public static final java.lang.String EXTRA_VOICEMAIL_NUMBER = "android.telephony.extra.VOICEMAIL_NUMBER"; + field public static final java.lang.String METADATA_HIDE_VOICEMAIL_SETTINGS_MENU = "android.telephony.HIDE_VOICEMAIL_SETTINGS_MENU"; field public static final int NETWORK_TYPE_1xRTT = 7; // 0x7 field public static final int NETWORK_TYPE_CDMA = 4; // 0x4 field public static final int NETWORK_TYPE_EDGE = 2; // 0x2 diff --git a/api/test-current.txt b/api/test-current.txt index 4cc4532d28973..28654726341c5 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -38920,6 +38920,7 @@ package android.telephony { field public static final int DATA_DISCONNECTED = 0; // 0x0 field public static final int DATA_SUSPENDED = 3; // 0x3 field public static final java.lang.String EXTRA_CALL_VOICEMAIL_INTENT = "android.telephony.extra.CALL_VOICEMAIL_INTENT"; + field public static final java.lang.String EXTRA_HIDE_PUBLIC_SETTINGS = "android.telephony.extra.HIDE_PUBLIC_SETTINGS"; 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"; @@ -38928,6 +38929,7 @@ package android.telephony { field public static final java.lang.String EXTRA_STATE_OFFHOOK; field public static final java.lang.String EXTRA_STATE_RINGING; field public static final java.lang.String EXTRA_VOICEMAIL_NUMBER = "android.telephony.extra.VOICEMAIL_NUMBER"; + field public static final java.lang.String METADATA_HIDE_VOICEMAIL_SETTINGS_MENU = "android.telephony.HIDE_VOICEMAIL_SETTINGS_MENU"; field public static final int NETWORK_TYPE_1xRTT = 7; // 0x7 field public static final int NETWORK_TYPE_CDMA = 4; // 0x4 field public static final int NETWORK_TYPE_EDGE = 2; // 0x2 diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index b28627bf3f74b..33e9b1653cdcb 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -372,13 +372,46 @@ public class TelephonyManager { public static final String ACTION_EMERGENCY_ASSISTANCE = "android.telephony.action.EMERGENCY_ASSISTANCE"; + /** + * A boolean meta-data value indicating whether the voicemail settings should be hidden in the + * call settings page launched by + * {@link android.telecom.TelecomManager#ACTION_SHOW_CALL_SETTINGS}. + * Dialer implementations (see {@link android.telecom.TelecomManager#getDefaultDialerPackage()}) + * which would also like to manage voicemail settings should set this meta-data to {@code true} + * in the manifest registration of their application. + * + * @see android.telecom.TelecomManager#ACTION_SHOW_CALL_SETTINGS + * @see #ACTION_CONFIGURE_VOICEMAIL + * @see #EXTRA_HIDE_PUBLIC_SETTINGS + */ + public static final String METADATA_HIDE_VOICEMAIL_SETTINGS_MENU = + "android.telephony.HIDE_VOICEMAIL_SETTINGS_MENU"; + /** * Open the voicemail settings activity to make changes to voicemail configuration. + * + *
+ * The {@link #EXTRA_HIDE_PUBLIC_SETTINGS} hides settings the dialer will modify through public + * API if set. + * + * @see #EXTRA_HIDE_PUBLIC_SETTINGS */ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) public static final String ACTION_CONFIGURE_VOICEMAIL = "android.telephony.action.CONFIGURE_VOICEMAIL"; + /** + * The boolean value indicating whether the voicemail settings activity launched by {@link + * #ACTION_CONFIGURE_VOICEMAIL} should hide settings accessible through public API. This is + * used by dialer implementations which provides their own voicemail settings UI, but still + * needs to expose device specific voicemail settings to the user. + * + * @see #ACTION_CONFIGURE_VOICEMAIL + * @see #METADATA_HIDE_VOICEMAIL_SETTINGS_MENU + */ + public static final String EXTRA_HIDE_PUBLIC_SETTINGS = + "android.telephony.extra.HIDE_PUBLIC_SETTINGS"; + /** * @hide */