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

Commit 944a7fbd authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

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

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


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


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


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


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


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


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


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


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


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


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