Loading src/java/com/android/internal/telephony/Phone.java +6 −1 Original line number Diff line number Diff line Loading @@ -2098,4 +2098,9 @@ public interface Phone { * Returns the modem activity information */ public void getModemActivityInfo(Message response); /** * Set boolean broadcastEmergencyCallStateChanges */ public void setBroadcastEmergencyCallStateChanges(boolean broadcast); } src/java/com/android/internal/telephony/PhoneBase.java +22 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.internal.telephony; import android.app.ActivityManagerNative; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; Loading @@ -33,6 +34,7 @@ import android.os.Message; import android.os.Registrant; import android.os.RegistrantList; import android.os.SystemProperties; import android.os.UserHandle; import android.preference.PreferenceManager; import android.provider.Settings; import android.telecom.VideoProfile; Loading Loading @@ -87,6 +89,7 @@ import java.util.concurrent.atomic.AtomicReference; public abstract class PhoneBase extends Handler implements Phone { private static final String LOG_TAG = "PhoneBase"; private static final boolean DBG = true; private boolean mImsIntentReceiverRegistered = false; private BroadcastReceiver mImsIntentReceiver = new BroadcastReceiver() { Loading Loading @@ -250,6 +253,8 @@ public abstract class PhoneBase extends Handler implements Phone { protected int mReportInterval = 0; // ms protected int mLceStatus = RILConstants.LCE_NOT_AVAILABLE; private boolean mBroadcastEmergencyCallStateChanges = false; @Override public String getPhoneName() { return mName; Loading Loading @@ -2605,6 +2610,21 @@ public abstract class PhoneBase extends Handler implements Phone { return false; } 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; } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("PhoneBase: subId=" + getSubId()); pw.println(" mPhoneId=" + mPhoneId); Loading src/java/com/android/internal/telephony/PhoneProxy.java +20 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,21 @@ public class PhoneProxy extends Handler implements Phone { } // Force update IMS service ImsManager.updateImsServiceConfig(mContext, mPhoneId, true); // Update broadcastEmergencyCallStateChanges CarrierConfigManager configMgr = (CarrierConfigManager) mActivePhone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE); PersistableBundle b = configMgr.getConfigForSubId(mActivePhone.getSubId()); if (b != null) { boolean broadcastEmergencyCallStateChanges = b.getBoolean( CarrierConfigManager.KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL); logd("broadcastEmergencyCallStateChanges =" + broadcastEmergencyCallStateChanges); mActivePhone.setBroadcastEmergencyCallStateChanges( broadcastEmergencyCallStateChanges); } else { loge("didn't get broadcastEmergencyCallStateChanges from carrier config"); } break; default: Loading Loading @@ -1639,6 +1654,11 @@ public class PhoneProxy extends Handler implements Phone { return mActivePhone.isWifiCallingEnabled(); } @Override public void setBroadcastEmergencyCallStateChanges(boolean broadcast) { mActivePhone.setBroadcastEmergencyCallStateChanges(broadcast); } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { try { ((PhoneBase)mActivePhone).dump(fd, pw, args); Loading src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java +3 −0 Original line number Diff line number Diff line Loading @@ -1164,7 +1164,9 @@ public final class CdmaCallTracker extends CallTracker { mIsInEmergencyCall = true; mPhone.mDcTracker.setInternalDataEnabled(false); mPhone.notifyEmergencyCallRegistrants(true); mPhone.sendEmergencyCallStateChange(true); } /** * Check and enable data call after an emergency call is dropped if it's * not in ECM Loading @@ -1181,6 +1183,7 @@ public final class CdmaCallTracker extends CallTracker { mPhone.mDcTracker.setInternalDataEnabled(true); mPhone.notifyEmergencyCallRegistrants(false); } mPhone.sendEmergencyCallStateChange(false); } } Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +6 −1 Original line number Diff line number Diff line Loading @@ -960,7 +960,11 @@ public final class ImsPhoneCallTracker extends CallTracker { } } mIsInEmergencyCall = isEmergencyCallInList; if (!isEmergencyCallInList) { mIsInEmergencyCall = false; mPhone.mDefaultPhone.sendEmergencyCallStateChange(false); } } } Loading @@ -968,6 +972,7 @@ public final class ImsPhoneCallTracker extends CallTracker { mConnections.add(conn); if (conn.isEmergency()) { mIsInEmergencyCall = true; mPhone.mDefaultPhone.sendEmergencyCallStateChange(true); } } Loading Loading
src/java/com/android/internal/telephony/Phone.java +6 −1 Original line number Diff line number Diff line Loading @@ -2098,4 +2098,9 @@ public interface Phone { * Returns the modem activity information */ public void getModemActivityInfo(Message response); /** * Set boolean broadcastEmergencyCallStateChanges */ public void setBroadcastEmergencyCallStateChanges(boolean broadcast); }
src/java/com/android/internal/telephony/PhoneBase.java +22 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.internal.telephony; import android.app.ActivityManagerNative; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; Loading @@ -33,6 +34,7 @@ import android.os.Message; import android.os.Registrant; import android.os.RegistrantList; import android.os.SystemProperties; import android.os.UserHandle; import android.preference.PreferenceManager; import android.provider.Settings; import android.telecom.VideoProfile; Loading Loading @@ -87,6 +89,7 @@ import java.util.concurrent.atomic.AtomicReference; public abstract class PhoneBase extends Handler implements Phone { private static final String LOG_TAG = "PhoneBase"; private static final boolean DBG = true; private boolean mImsIntentReceiverRegistered = false; private BroadcastReceiver mImsIntentReceiver = new BroadcastReceiver() { Loading Loading @@ -250,6 +253,8 @@ public abstract class PhoneBase extends Handler implements Phone { protected int mReportInterval = 0; // ms protected int mLceStatus = RILConstants.LCE_NOT_AVAILABLE; private boolean mBroadcastEmergencyCallStateChanges = false; @Override public String getPhoneName() { return mName; Loading Loading @@ -2605,6 +2610,21 @@ public abstract class PhoneBase extends Handler implements Phone { return false; } 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; } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("PhoneBase: subId=" + getSubId()); pw.println(" mPhoneId=" + mPhoneId); Loading
src/java/com/android/internal/telephony/PhoneProxy.java +20 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,21 @@ public class PhoneProxy extends Handler implements Phone { } // Force update IMS service ImsManager.updateImsServiceConfig(mContext, mPhoneId, true); // Update broadcastEmergencyCallStateChanges CarrierConfigManager configMgr = (CarrierConfigManager) mActivePhone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE); PersistableBundle b = configMgr.getConfigForSubId(mActivePhone.getSubId()); if (b != null) { boolean broadcastEmergencyCallStateChanges = b.getBoolean( CarrierConfigManager.KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL); logd("broadcastEmergencyCallStateChanges =" + broadcastEmergencyCallStateChanges); mActivePhone.setBroadcastEmergencyCallStateChanges( broadcastEmergencyCallStateChanges); } else { loge("didn't get broadcastEmergencyCallStateChanges from carrier config"); } break; default: Loading Loading @@ -1639,6 +1654,11 @@ public class PhoneProxy extends Handler implements Phone { return mActivePhone.isWifiCallingEnabled(); } @Override public void setBroadcastEmergencyCallStateChanges(boolean broadcast) { mActivePhone.setBroadcastEmergencyCallStateChanges(broadcast); } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { try { ((PhoneBase)mActivePhone).dump(fd, pw, args); Loading
src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java +3 −0 Original line number Diff line number Diff line Loading @@ -1164,7 +1164,9 @@ public final class CdmaCallTracker extends CallTracker { mIsInEmergencyCall = true; mPhone.mDcTracker.setInternalDataEnabled(false); mPhone.notifyEmergencyCallRegistrants(true); mPhone.sendEmergencyCallStateChange(true); } /** * Check and enable data call after an emergency call is dropped if it's * not in ECM Loading @@ -1181,6 +1183,7 @@ public final class CdmaCallTracker extends CallTracker { mPhone.mDcTracker.setInternalDataEnabled(true); mPhone.notifyEmergencyCallRegistrants(false); } mPhone.sendEmergencyCallStateChange(false); } } Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +6 −1 Original line number Diff line number Diff line Loading @@ -960,7 +960,11 @@ public final class ImsPhoneCallTracker extends CallTracker { } } mIsInEmergencyCall = isEmergencyCallInList; if (!isEmergencyCallInList) { mIsInEmergencyCall = false; mPhone.mDefaultPhone.sendEmergencyCallStateChange(false); } } } Loading @@ -968,6 +972,7 @@ public final class ImsPhoneCallTracker extends CallTracker { mConnections.add(conn); if (conn.isEmergency()) { mIsInEmergencyCall = true; mPhone.mDefaultPhone.sendEmergencyCallStateChange(true); } } Loading