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