From 816f93ed9f31558bdff97a151b9635d41587934e Mon Sep 17 00:00:00 2001 From: Ping Sun Date: Wed, 2 Mar 2016 19:09:27 +0800 Subject: Add ims registration status Changes the below to display the "IMS registration status" menu in Status Info setting. 1. Add a new API "isImsRegistered(int subId)" so that IMS registration status for specific subscription is acquired. 2. Add a carrier config for the customization. Test: manual Checked "IMS registration state" in Status Info setting Bug: 28806101 Merged-In: I6c452c512f03cf41704b91331e44141ed3050cf9 Change-Id: I6c452c512f03cf41704b91331e44141ed3050cf9 --- .../java/android/telephony/CarrierConfigManager.java | 9 +++++++++ .../java/android/telephony/TelephonyManager.java | 19 +++++++++++++++++++ .../com/android/internal/telephony/ITelephony.aidl | 9 +++++++++ 3 files changed, 37 insertions(+) diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 855d19cafa73..b8388992d22c 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -1539,6 +1539,14 @@ public class CarrierConfigManager { */ public static final String KEY_CONVERT_CDMA_CALLER_ID_MMI_CODES_WHILE_ROAMING_ON_3GPP_BOOL = "convert_cdma_caller_id_mmi_codes_while_roaming_on_3gpp_bool"; + + /** + * Flag specifying whether IMS registration state menu is shown in Status Info setting, + * default to false. + * @hide + */ + public static final String KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL = + "show_ims_registration_status_bool"; /** The default value for every variable. */ private final static PersistableBundle sDefaults; @@ -1807,6 +1815,7 @@ public class CarrierConfigManager { false); sDefaults.putStringArray(KEY_NON_ROAMING_OPERATOR_STRING_ARRAY, null); sDefaults.putStringArray(KEY_ROAMING_OPERATOR_STRING_ARRAY, null); + sDefaults.putBoolean(KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL, false); } /** diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index aa3b6120cd8e..4c2cbd1a4310 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -5795,6 +5795,25 @@ public class TelephonyManager { } } + /** + * Returns the IMS Registration Status for a particular Subscription ID + * + * @param subId Subscription ID + * @return true if IMS status is registered, false if the IMS status is not registered or a + * RemoteException occurred. + * + * @hide + */ + public boolean isImsRegistered(int subId) { + try { + return getITelephony().isImsRegisteredForSubscriber(subId); + } catch (RemoteException ex) { + return false; + } catch (NullPointerException ex) { + return false; + } + } + /** * Returns the Status of Volte * @hide diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 9262ec5ed53b..2ac11b55d4fd 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -1088,6 +1088,15 @@ interface ITelephony { */ boolean isImsRegistered(); + /** + * Get IMS Registration Status on a particular subid. + * + * @param subId user preferred subId. + * + * @return {@code true} if the IMS status is registered. + */ + boolean isImsRegisteredForSubscriber(int subId); + /** * Returns the Status of Wi-Fi Calling */ -- cgit v1.2.3-59-g8ed1b