From d199113e97a266cb8ae4f1cb262ab022c62f41d0 Mon Sep 17 00:00:00 2001 From: shuoq Date: Tue, 10 Jan 2017 13:14:02 -0800 Subject: [PATCH] ECBM SystemProperty cleanup - Add getEmergencyCallbackMode() method in the TelephonyManager.java to get the boolean value for ECBM callback mode from the phone through ITelephony.aidl/java interface - Use the added TelephonyManager Api to replace the 'get' of PROPERTY_INECM_MODE system property in the framework/base Test: manual Bug: 30361624 Change-Id: I355d69820b157f23e077a95a13f8509ee0fa5874 --- .../location/GpsNetInitiatedHandler.java | 3 +- .../android/telephony/TelephonyManager.java | 28 +++++++++++++++++++ .../internal/telephony/ITelephony.aidl | 8 ++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java index 93e86afe2589c..5b0390719571d 100644 --- a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java +++ b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java @@ -245,8 +245,7 @@ public class GpsNetInitiatedHandler { } public boolean getInEmergency() { - boolean isInEmergencyCallback = Boolean.parseBoolean( - SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE)); + boolean isInEmergencyCallback = mTelephonyManager.getEmergencyCallbackMode(); return mIsInEmergency || isInEmergencyCallback; } diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 26d46ac9cb0c5..63aab023e541c 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -6150,5 +6150,33 @@ public class TelephonyManager { return null; } + + /** + * Check if phone is in emergency callback mode + * @return true if phone is in emergency callback mode + * @hide + */ + public boolean getEmergencyCallbackMode() { + return getEmergencyCallbackMode(getSubId()); + } + + /** + * Check if phone is in emergency callback mode + * @return true if phone is in emergency callback mode + * @param subId the subscription ID that this action applies to. + * @hide + */ + public boolean getEmergencyCallbackMode(int subId) { + try { + ITelephony telephony = getITelephony(); + if (telephony == null) { + return false; + } + return telephony.getEmergencyCallbackMode(subId); + } catch (RemoteException e) { + Log.e(TAG, "Error calling ITelephony#getEmergencyCallbackMode", e); + } + return false; + } } diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 5c3782287e1cb..f3c6793d42078 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -1256,4 +1256,12 @@ interface ITelephony { * @param appType the icc application type, like {@link #APPTYPE_USIM} */ String[] getForbiddenPlmns(int subId, int appType); + + /** + * Check if phone is in emergency callback mode + * @return true if phone is in emergency callback mode + * @param subId the subscription ID that this action applies to. + * @hide + */ + boolean getEmergencyCallbackMode(int subId); }