From 86bd4769fa2c011c33d6608504fbd864d1e5babf 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 ecfdbaa73556..a1df8c2ee541 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -1390,6 +1390,14 @@ public class CarrierConfigManager { public static final String IMSI_KEY_EXPIRATION_DAYS_TIME_INT = "imsi_key_expiration_days_time_int"; + /** + * 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; @@ -1630,6 +1638,7 @@ public class CarrierConfigManager { sDefaults.putStringArray(KEY_ROAMING_OPERATOR_STRING_ARRAY, null); sDefaults.putInt(IMSI_KEY_EXPIRATION_DAYS_TIME_INT, IMSI_ENCRYPTION_DAYS_TIME_DISABLED); sDefaults.putString(IMSI_KEY_DOWNLOAD_URL_STRING, 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 add4f03cddb1..db73a0afecb0 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -5675,6 +5675,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 63e7abf8ec04..855fe0f652cd 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -1080,6 +1080,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