Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 75d597e6 authored by Amit Mahajan's avatar Amit Mahajan Committed by gitbuildkicker
Browse files

Change to not broadcast emergency call state changes on wifi call.

Bug: 30348902
Change-Id: I27811ed2d4f26785352f97890d0b6f2a6491880d
parent 6c0c1c48
Loading
Loading
Loading
Loading
+22 −6
Original line number Diff line number Diff line
@@ -185,6 +185,8 @@ public class GsmCdmaPhone extends Phone {

    private int mRilVersion;
    private boolean mBroadcastEmergencyCallStateChanges = false;
    // flag to indicate if emergency call end broadcast should be sent
    boolean mSendEmergencyCallEnd = true;

    // Constructors

@@ -637,11 +639,24 @@ public class GsmCdmaPhone extends Phone {
    @Override
    public void sendEmergencyCallStateChange(boolean callActive) {
        if (mBroadcastEmergencyCallStateChanges) {
            if (callActive &&
                    getServiceState().getRilDataRadioTechnology() == ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN) {
                // if emergency call is started while on iwlan, do not send the start or end
                // broadcast
                mSendEmergencyCallEnd = false;
                if (DBG) Rlog.d(LOG_TAG, "sendEmergencyCallStateChange: not sending call start " +
                        "intent as voice tech is IWLAN");
            } else if (callActive || mSendEmergencyCallEnd) {
                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");
            } else {
                if (DBG) Rlog.d(LOG_TAG, "sendEmergencyCallStateChange: not sending call end " +
                        "intent as start was not sent");
                mSendEmergencyCallEnd = true;
            }
        }
    }

@@ -2069,7 +2084,8 @@ public class GsmCdmaPhone extends Phone {
                if (b != null) {
                    boolean broadcastEmergencyCallStateChanges = b.getBoolean(
                            CarrierConfigManager.KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL);
                    logd("broadcastEmergencyCallStateChanges =" + broadcastEmergencyCallStateChanges);
                    logd("broadcastEmergencyCallStateChanges = " +
                            broadcastEmergencyCallStateChanges);
                    setBroadcastEmergencyCallStateChanges(broadcastEmergencyCallStateChanges);
                } else {
                    loge("didn't get broadcastEmergencyCallStateChanges from carrier config");