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

Commit 81d3bbc8 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Fix IMS Emergency Callback Mode issues" am: d5c62b55 am: 93c4d6cd am: 944a7fbd

Change-Id: Ib17606d74bd0a5f3c325644d9a3484b36f14b2ac
parents 163c36a4 944a7fbd
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -1354,7 +1354,7 @@ public class DcTracker extends Handler {
            reasons.add(DataDisallowedReasonType.ON_IWLAN);
        }

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

@@ -1500,10 +1500,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
@@ -445,6 +445,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;
@@ -1377,8 +1378,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);
@@ -2263,6 +2266,9 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
            }

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

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

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

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