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

Commit 93c4d6cd authored by Brad Ebinger's avatar Brad Ebinger
Browse files

Merge "Fix IMS Emergency Callback Mode issues" am: d5c62b55

Change-Id: I3a58a92b8640f9a862f6168cbd2a19c10d14cc68
parents 71013ec7 d5c62b55
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -1400,7 +1400,7 @@ public class DcTracker extends Handler {
            reasons.add(DataDisallowedReasonType.ON_IWLAN);
        }

        if (isEmergency()) {
        if (shouldRestrictDataForEcbm() || mPhone.isInEmergencyCall()) {
            reasons.add(DataDisallowedReasonType.IN_ECBM);
        }

@@ -1546,10 +1546,11 @@ public class DcTracker extends Handler {
        }
    }

    boolean isEmergency() {
        final boolean result = mPhone.isInEcm() || mPhone.isInEmergencyCall();
        log("isEmergency: result=" + result);
        return result;
    private boolean shouldRestrictDataForEcbm() {
        boolean isInEcm = mPhone.isInEcm();
        boolean isInImsEcm = mPhone.getImsPhone() != null && mPhone.getImsPhone().isInImsEcm();
        log("shouldRestrictDataForEcbm: isInEcm=" + isInEcm + " isInImsEcm=" + isInImsEcm);
        return isInEcm && !isInImsEcm;
    }

    private boolean trySetupData(ApnContext apnContext, @RequestNetworkType int requestType) {
+8 −0
Original line number Diff line number Diff line
@@ -422,6 +422,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {

    private boolean mIsInEmergencyCall = false;
    private boolean mIsDataEnabled = false;
    private boolean mIsEcmTimerCanceled = false;

    private int pendingCallClirMode;
    private int mPendingCallVideoState;
@@ -1354,8 +1355,10 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
        mPhone.handleTimerInEmergencyCallbackMode(action);
        switch (action) {
            case ImsPhone.CANCEL_ECM_TIMER:
                mIsEcmTimerCanceled = true;
                break;
            case ImsPhone.RESTART_ECM_TIMER:
                mIsEcmTimerCanceled = false;
                break;
            default:
                log("handleEcmTimer, unsupported action " + action);
@@ -2240,6 +2243,9 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
            }

            if (!isEmergencyCallInList) {
                if (mIsEcmTimerCanceled) {
                    handleEcmTimer(ImsPhone.RESTART_ECM_TIMER);
                }
                mIsInEmergencyCall = false;
                mPhone.sendEmergencyCallStateChange(false);
            }
@@ -3654,6 +3660,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {

    private void resetState() {
        mIsInEmergencyCall = false;
        mIsEcmTimerCanceled = false;
    }

    //****** Overridden from Handler
@@ -4006,6 +4013,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
        pw.increaseIndent();
        mOperationLocalLog.dump(pw);
        pw.decreaseIndent();
        pw.println(" mIsEcmTimerCanceled=" + mIsEcmTimerCanceled);

        pw.flush();
        pw.println("++++++++++++++++++++++++++++++++");