Loading src/java/com/android/internal/telephony/GsmCdmaCallTracker.java +2 −0 Original line number Diff line number Diff line Loading @@ -353,6 +353,7 @@ public class GsmCdmaCallTracker extends CallTracker { mIsInEmergencyCall = true; mPhone.mDcTracker.setInternalDataEnabled(false); mPhone.notifyEmergencyCallRegistrants(true); mPhone.sendEmergencyCallStateChange(true); } //CDMA Loading Loading @@ -1523,6 +1524,7 @@ public class GsmCdmaCallTracker extends CallTracker { mPhone.mDcTracker.setInternalDataEnabled(true); mPhone.notifyEmergencyCallRegistrants(false); } mPhone.sendEmergencyCallStateChange(false); } } Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +31 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,7 @@ public class GsmCdmaPhone extends Phone { private boolean mResetModemOnRadioTechnologyChange = false; private int mRilVersion; private boolean mBroadcastEmergencyCallStateChanges = false; // Constructors Loading Loading @@ -641,6 +642,22 @@ public class GsmCdmaPhone extends Phone { if (DBG) logd("sendEmergencyCallbackModeChange"); } @Override public void sendEmergencyCallStateChange(boolean callActive) { if (mBroadcastEmergencyCallStateChanges) { Intent intent = new Intent(TelephonyIntents.ACTION_EMERGENCY_CALL_STATE_CHANGED); intent.putExtra(PhoneConstants.PHONE_IN_EMERGENCY_CALL, callActive); SubscriptionManager.putPhoneIdAndSubIdExtra(intent, getPhoneId()); ActivityManagerNative.broadcastStickyIntent(intent, null, UserHandle.USER_ALL); if (DBG) Rlog.d(LOG_TAG, "sendEmergencyCallStateChange"); } } @Override public void setBroadcastEmergencyCallStateChanges(boolean broadcast) { mBroadcastEmergencyCallStateChanges = broadcast; } void notifySuppServiceFailed(SuppService code) { mSuppServiceFailedRegistrants.notifyResult(code); } Loading Loading @@ -2078,6 +2095,20 @@ public class GsmCdmaPhone extends Phone { } // Force update IMS service ImsManager.updateImsServiceConfig(mContext, mPhoneId, true); // Update broadcastEmergencyCallStateChanges CarrierConfigManager configMgr = (CarrierConfigManager) getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE); PersistableBundle b = configMgr.getConfigForSubId(getSubId()); if (b != null) { boolean broadcastEmergencyCallStateChanges = b.getBoolean( CarrierConfigManager.KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL); logd("broadcastEmergencyCallStateChanges =" + broadcastEmergencyCallStateChanges); setBroadcastEmergencyCallStateChanges(broadcastEmergencyCallStateChanges); } else { loge("didn't get broadcastEmergencyCallStateChanges from carrier config"); } break; case EVENT_CDMA_SUBSCRIPTION_SOURCE_CHANGED: Loading src/java/com/android/internal/telephony/Phone.java +7 −0 Original line number Diff line number Diff line Loading @@ -3137,6 +3137,13 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { public void cancelUSSD() { } /** * Set boolean broadcastEmergencyCallStateChanges */ public abstract void setBroadcastEmergencyCallStateChanges(boolean broadcast); public abstract void sendEmergencyCallStateChange(boolean callActive); /** * This function returns the parent phone of the current phone. It is applicable * only for IMS phone (function is overridden by ImsPhone). For others the phone Loading src/java/com/android/internal/telephony/imsphone/ImsPhone.java +10 −0 Original line number Diff line number Diff line Loading @@ -1532,6 +1532,16 @@ public class ImsPhone extends ImsPhoneBase { return mCT.isUtEnabled(); } @Override public void sendEmergencyCallStateChange(boolean callActive) { mDefaultPhone.sendEmergencyCallStateChange(callActive); } @Override public void setBroadcastEmergencyCallStateChanges(boolean broadcast) { mDefaultPhone.setBroadcastEmergencyCallStateChanges(broadcast); } @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("ImsPhone extends:"); Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +5 −1 Original line number Diff line number Diff line Loading @@ -1026,7 +1026,10 @@ public final class ImsPhoneCallTracker extends CallTracker { } } mIsInEmergencyCall = isEmergencyCallInList; if (!isEmergencyCallInList) { mIsInEmergencyCall = false; mPhone.sendEmergencyCallStateChange(false); } } } Loading @@ -1034,6 +1037,7 @@ public final class ImsPhoneCallTracker extends CallTracker { mConnections.add(conn); if (conn.isEmergency()) { mIsInEmergencyCall = true; mPhone.sendEmergencyCallStateChange(true); } } Loading Loading
src/java/com/android/internal/telephony/GsmCdmaCallTracker.java +2 −0 Original line number Diff line number Diff line Loading @@ -353,6 +353,7 @@ public class GsmCdmaCallTracker extends CallTracker { mIsInEmergencyCall = true; mPhone.mDcTracker.setInternalDataEnabled(false); mPhone.notifyEmergencyCallRegistrants(true); mPhone.sendEmergencyCallStateChange(true); } //CDMA Loading Loading @@ -1523,6 +1524,7 @@ public class GsmCdmaCallTracker extends CallTracker { mPhone.mDcTracker.setInternalDataEnabled(true); mPhone.notifyEmergencyCallRegistrants(false); } mPhone.sendEmergencyCallStateChange(false); } } Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +31 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,7 @@ public class GsmCdmaPhone extends Phone { private boolean mResetModemOnRadioTechnologyChange = false; private int mRilVersion; private boolean mBroadcastEmergencyCallStateChanges = false; // Constructors Loading Loading @@ -641,6 +642,22 @@ public class GsmCdmaPhone extends Phone { if (DBG) logd("sendEmergencyCallbackModeChange"); } @Override public void sendEmergencyCallStateChange(boolean callActive) { if (mBroadcastEmergencyCallStateChanges) { Intent intent = new Intent(TelephonyIntents.ACTION_EMERGENCY_CALL_STATE_CHANGED); intent.putExtra(PhoneConstants.PHONE_IN_EMERGENCY_CALL, callActive); SubscriptionManager.putPhoneIdAndSubIdExtra(intent, getPhoneId()); ActivityManagerNative.broadcastStickyIntent(intent, null, UserHandle.USER_ALL); if (DBG) Rlog.d(LOG_TAG, "sendEmergencyCallStateChange"); } } @Override public void setBroadcastEmergencyCallStateChanges(boolean broadcast) { mBroadcastEmergencyCallStateChanges = broadcast; } void notifySuppServiceFailed(SuppService code) { mSuppServiceFailedRegistrants.notifyResult(code); } Loading Loading @@ -2078,6 +2095,20 @@ public class GsmCdmaPhone extends Phone { } // Force update IMS service ImsManager.updateImsServiceConfig(mContext, mPhoneId, true); // Update broadcastEmergencyCallStateChanges CarrierConfigManager configMgr = (CarrierConfigManager) getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE); PersistableBundle b = configMgr.getConfigForSubId(getSubId()); if (b != null) { boolean broadcastEmergencyCallStateChanges = b.getBoolean( CarrierConfigManager.KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL); logd("broadcastEmergencyCallStateChanges =" + broadcastEmergencyCallStateChanges); setBroadcastEmergencyCallStateChanges(broadcastEmergencyCallStateChanges); } else { loge("didn't get broadcastEmergencyCallStateChanges from carrier config"); } break; case EVENT_CDMA_SUBSCRIPTION_SOURCE_CHANGED: Loading
src/java/com/android/internal/telephony/Phone.java +7 −0 Original line number Diff line number Diff line Loading @@ -3137,6 +3137,13 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { public void cancelUSSD() { } /** * Set boolean broadcastEmergencyCallStateChanges */ public abstract void setBroadcastEmergencyCallStateChanges(boolean broadcast); public abstract void sendEmergencyCallStateChange(boolean callActive); /** * This function returns the parent phone of the current phone. It is applicable * only for IMS phone (function is overridden by ImsPhone). For others the phone Loading
src/java/com/android/internal/telephony/imsphone/ImsPhone.java +10 −0 Original line number Diff line number Diff line Loading @@ -1532,6 +1532,16 @@ public class ImsPhone extends ImsPhoneBase { return mCT.isUtEnabled(); } @Override public void sendEmergencyCallStateChange(boolean callActive) { mDefaultPhone.sendEmergencyCallStateChange(callActive); } @Override public void setBroadcastEmergencyCallStateChanges(boolean broadcast) { mDefaultPhone.setBroadcastEmergencyCallStateChanges(broadcast); } @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("ImsPhone extends:"); Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +5 −1 Original line number Diff line number Diff line Loading @@ -1026,7 +1026,10 @@ public final class ImsPhoneCallTracker extends CallTracker { } } mIsInEmergencyCall = isEmergencyCallInList; if (!isEmergencyCallInList) { mIsInEmergencyCall = false; mPhone.sendEmergencyCallStateChange(false); } } } Loading @@ -1034,6 +1037,7 @@ public final class ImsPhoneCallTracker extends CallTracker { mConnections.add(conn); if (conn.isEmergency()) { mIsInEmergencyCall = true; mPhone.sendEmergencyCallStateChange(true); } } Loading