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

Commit d5c62b55 authored by Brad Ebinger's avatar Brad Ebinger Committed by Gerrit Code Review
Browse files

Merge "Fix IMS Emergency Callback Mode issues"

parents de82724b df49e4da
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("++++++++++++++++++++++++++++++++");