Loading src/java/com/android/internal/telephony/dataconnection/DcTracker.java +6 −5 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -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) { Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +8 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); } Loading Loading @@ -3654,6 +3660,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { private void resetState() { mIsInEmergencyCall = false; mIsEcmTimerCanceled = false; } //****** Overridden from Handler Loading Loading @@ -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("++++++++++++++++++++++++++++++++"); Loading Loading
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +6 −5 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -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) { Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +8 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); } Loading Loading @@ -3654,6 +3660,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { private void resetState() { mIsInEmergencyCall = false; mIsEcmTimerCanceled = false; } //****** Overridden from Handler Loading Loading @@ -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("++++++++++++++++++++++++++++++++"); Loading