Loading src/java/com/android/internal/telephony/dataconnection/DcTracker.java +6 −5 Original line number Original line Diff line number Diff line Loading @@ -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); } } Loading Loading @@ -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) { Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +8 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); } } Loading Loading @@ -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 Loading Loading @@ -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("++++++++++++++++++++++++++++++++"); Loading Loading
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +6 −5 Original line number Original line Diff line number Diff line Loading @@ -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); } } Loading Loading @@ -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) { Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +8 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); } } Loading Loading @@ -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 Loading Loading @@ -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("++++++++++++++++++++++++++++++++"); Loading