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

Commit 57dd2efb authored by Amit Mahajan's avatar Amit Mahajan
Browse files

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

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


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


    // Constructors
    // Constructors


@@ -637,11 +639,24 @@ public class GsmCdmaPhone extends Phone {
    @Override
    @Override
    public void sendEmergencyCallStateChange(boolean callActive) {
    public void sendEmergencyCallStateChange(boolean callActive) {
        if (mBroadcastEmergencyCallStateChanges) {
        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 intent = new Intent(TelephonyIntents.ACTION_EMERGENCY_CALL_STATE_CHANGED);
                intent.putExtra(PhoneConstants.PHONE_IN_EMERGENCY_CALL, callActive);
                intent.putExtra(PhoneConstants.PHONE_IN_EMERGENCY_CALL, callActive);
                SubscriptionManager.putPhoneIdAndSubIdExtra(intent, getPhoneId());
                SubscriptionManager.putPhoneIdAndSubIdExtra(intent, getPhoneId());
                ActivityManagerNative.broadcastStickyIntent(intent, null, UserHandle.USER_ALL);
                ActivityManagerNative.broadcastStickyIntent(intent, null, UserHandle.USER_ALL);
                if (DBG) Rlog.d(LOG_TAG, "sendEmergencyCallStateChange");
                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) {
                if (b != null) {
                    boolean broadcastEmergencyCallStateChanges = b.getBoolean(
                    boolean broadcastEmergencyCallStateChanges = b.getBoolean(
                            CarrierConfigManager.KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL);
                            CarrierConfigManager.KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL);
                    logd("broadcastEmergencyCallStateChanges =" + broadcastEmergencyCallStateChanges);
                    logd("broadcastEmergencyCallStateChanges = " +
                            broadcastEmergencyCallStateChanges);
                    setBroadcastEmergencyCallStateChanges(broadcastEmergencyCallStateChanges);
                    setBroadcastEmergencyCallStateChanges(broadcastEmergencyCallStateChanges);
                } else {
                } else {
                    loge("didn't get broadcastEmergencyCallStateChanges from carrier config");
                    loge("didn't get broadcastEmergencyCallStateChanges from carrier config");