Loading src/java/com/android/internal/telephony/dataconnection/DataConnection.java +31 −25 Original line number Diff line number Diff line Loading @@ -174,14 +174,16 @@ public class DataConnection extends StateMachine { private ApnSetting mApnSetting; private ConnectionParams mConnectionParams; private DisconnectParams mDisconnectParams; private DataFailCause mDcFailCause; @DataFailCause.FailCause private int mDcFailCause; private Phone mPhone; private DataServiceManager mDataServiceManager; private LinkProperties mLinkProperties = new LinkProperties(); private long mCreateTime; private long mLastFailTime; private DataFailCause mLastFailCause; @DataFailCause.FailCause private int mLastFailCause; private static final String NULL_IP = "0.0.0.0"; private Object mUserData; private int mSubscriptionOverride; Loading Loading @@ -351,10 +353,10 @@ public class DataConnection extends StateMachine { ERROR_STALE, ERROR_DATA_SERVICE_SPECIFIC_ERROR; public DataFailCause mFailCause; public int mFailCause; SetupResult() { mFailCause = DataFailCause.fromInt(0); mFailCause = DataFailCause.getFailCause(0); } @Override Loading Loading @@ -515,7 +517,7 @@ public class DataConnection extends StateMachine { // Check if we should fake an error. if (mDcTesterFailBringUpAll.getDcFailBringUp().mCounter > 0) { DataCallResponse response = new DataCallResponse( mDcTesterFailBringUpAll.getDcFailBringUp().mFailCause.getErrorCode(), mDcTesterFailBringUpAll.getDcFailBringUp().mFailCause, mDcTesterFailBringUpAll.getDcFailBringUp().mSuggestedRetryTime, 0, 0, "", "", null, null, null, null, PhoneConstants.UNSET_MTU); Loading Loading @@ -611,8 +613,9 @@ public class DataConnection extends StateMachine { private void notifyAllOfDisconnectDcRetrying(String reason) { notifyAllWithEvent(null, DctConstants.EVENT_DISCONNECT_DC_RETRYING, reason); } private void notifyAllDisconnectCompleted(DataFailCause cause) { notifyAllWithEvent(null, DctConstants.EVENT_DISCONNECT_DONE, cause.toString()); private void notifyAllDisconnectCompleted(@DataFailCause.FailCause int cause) { notifyAllWithEvent(null, DctConstants.EVENT_DISCONNECT_DONE, DataFailCause.toString(cause)); } Loading @@ -623,7 +626,8 @@ public class DataConnection extends StateMachine { * @param cause and if no error the cause is DataFailCause.NONE * @param sendAll is true if all contexts are to be notified */ private void notifyConnectCompleted(ConnectionParams cp, DataFailCause cause, boolean sendAll) { private void notifyConnectCompleted(ConnectionParams cp, @DataFailCause.FailCause int cause, boolean sendAll) { ApnContext alreadySent = null; if (cp != null && cp.mOnCompletedMsg != null) { Loading @@ -643,9 +647,9 @@ public class DataConnection extends StateMachine { mLastFailTime = timeStamp; // Return message with a Throwable exception to signify an error. if (cause == null) cause = DataFailCause.UNKNOWN; if (cause == DataFailCause.NONE) cause = DataFailCause.UNKNOWN; AsyncResult.forMessage(connectionCompletedMsg, cause, new Throwable(cause.toString())); new Throwable(DataFailCause.toString(cause))); } if (DBG) { log("notifyConnectCompleted at " + timeStamp + " cause=" + cause Loading @@ -655,9 +659,9 @@ public class DataConnection extends StateMachine { connectionCompletedMsg.sendToTarget(); } if (sendAll) { log("Send to all. " + alreadySent + " " + cause.toString()); log("Send to all. " + alreadySent + " " + DataFailCause.toString(cause)); notifyAllWithEvent(alreadySent, DctConstants.EVENT_DATA_SETUP_COMPLETE_ERROR, cause.toString()); DataFailCause.toString(cause)); } } Loading Loading @@ -689,7 +693,7 @@ public class DataConnection extends StateMachine { } if (sendAll) { if (reason == null) { reason = DataFailCause.UNKNOWN.toString(); reason = DataFailCause.toString(DataFailCause.UNKNOWN); } notifyAllWithEvent(alreadySent, DctConstants.EVENT_DISCONNECT_DONE, reason); } Loading Loading @@ -739,7 +743,7 @@ public class DataConnection extends StateMachine { mApnSetting = null; mUnmeteredUseOnly = false; mRestrictedNetworkOverride = false; mDcFailCause = null; mDcFailCause = DataFailCause.NONE; mDisabledApnTypeBitMask = 0; } Loading @@ -765,12 +769,12 @@ public class DataConnection extends StateMachine { result = SetupResult.ERROR_RADIO_NOT_AVAILABLE; result.mFailCause = DataFailCause.RADIO_NOT_AVAILABLE; } else if (response.getStatus() != 0) { if (response.getStatus() == DataFailCause.RADIO_NOT_AVAILABLE.getErrorCode()) { if (response.getStatus() == DataFailCause.RADIO_NOT_AVAILABLE) { result = SetupResult.ERROR_RADIO_NOT_AVAILABLE; result.mFailCause = DataFailCause.RADIO_NOT_AVAILABLE; } else { result = SetupResult.ERROR_DATA_SERVICE_SPECIFIC_ERROR; result.mFailCause = DataFailCause.fromInt(response.getStatus()); result.mFailCause = DataFailCause.getFailCause(response.getStatus()); } } else { if (DBG) log("onSetupConnectionCompleted received successful DataCallResponse"); Loading Loading @@ -1138,7 +1142,7 @@ public class DataConnection extends StateMachine { // a failure we'll clear again at the bottom of this code. linkProperties.clear(); if (response.getStatus() == DataFailCause.NONE.getErrorCode()) { if (response.getStatus() == DataFailCause.NONE) { try { // set interface name linkProperties.setInterfaceName(response.getIfname()); Loading Loading @@ -1296,7 +1300,7 @@ public class DataConnection extends StateMachine { mPhone = null; mDataServiceManager = null; mLinkProperties = null; mLastFailCause = null; mLastFailCause = DataFailCause.NONE; mUserData = null; mDcController = null; mDcTesterFailBringUpAll = null; Loading Loading @@ -1432,7 +1436,8 @@ public class DataConnection extends StateMachine { */ private class DcInactiveState extends State { // Inform all contexts we've failed connecting public void setEnterNotificationParams(ConnectionParams cp, DataFailCause cause) { public void setEnterNotificationParams(ConnectionParams cp, @DataFailCause.FailCause int cause) { if (VDBG) log("DcInactiveState: setEnterNotificationParams cp,cause"); mConnectionParams = cp; mDisconnectParams = null; Loading @@ -1448,7 +1453,7 @@ public class DataConnection extends StateMachine { } // Inform all contexts of the failure cause public void setEnterNotificationParams(DataFailCause cause) { public void setEnterNotificationParams(@DataFailCause.FailCause int cause) { mConnectionParams = null; mDisconnectParams = null; mDcFailCause = cause; Loading Loading @@ -1479,7 +1484,8 @@ public class DataConnection extends StateMachine { } notifyDisconnectCompleted(mDisconnectParams, true); } if (mDisconnectParams == null && mConnectionParams == null && mDcFailCause != null) { if (mDisconnectParams == null && mConnectionParams == null && mDcFailCause != DataFailCause.NONE) { if (DBG) { log("DcInactiveState: enter notifyAllDisconnectCompleted failCause=" + mDcFailCause); Loading Loading @@ -1630,8 +1636,8 @@ public class DataConnection extends StateMachine { + " delay=" + delay + " result=" + result + " result.isRadioRestartFailure=" + result.mFailCause.isRadioRestartFailure(mPhone.getContext(), mPhone.getSubId()) + DataFailCause.isRadioRestartFailure(mPhone.getContext(), result.mFailCause, mPhone.getSubId()) + " isPermanentFailure=" + mDct.isPermanentFailure(result.mFailCause); if (DBG) log(str); Loading Loading @@ -1733,8 +1739,8 @@ public class DataConnection extends StateMachine { reason = Phone.REASON_CARRIER_CHANGE; } else if (mDisconnectParams != null && mDisconnectParams.mReason != null) { reason = mDisconnectParams.mReason; } else if (mDcFailCause != null) { reason = mDcFailCause.toString(); } else { reason = DataFailCause.toString(mDcFailCause); } mPhone.getCallTracker().unregisterForVoiceCallStarted(getHandler()); mPhone.getCallTracker().unregisterForVoiceCallEnded(getHandler()); Loading src/java/com/android/internal/telephony/dataconnection/DcController.java +2 −2 Original line number Diff line number Diff line Loading @@ -331,8 +331,8 @@ public class DcController extends StateMachine { apnsToCleanup.addAll(apnContexts); mDct.isCleanupRequired.set(false); } else { DataFailCause failCause = DataFailCause.fromInt(newState.getStatus()); if (failCause.isRadioRestartFailure(mPhone.getContext(), int failCause = DataFailCause.getFailCause(newState.getStatus()); if (DataFailCause.isRadioRestartFailure(mPhone.getContext(), failCause, mPhone.getSubId())) { if (DBG) { log("onDataStateChanged: X restart radio, failCause=" Loading src/java/com/android/internal/telephony/dataconnection/DcFailBringUp.java +8 −6 Original line number Diff line number Diff line Loading @@ -40,8 +40,9 @@ public class DcFailBringUp { // failCause with its --ei option name and default value static final String FAIL_CAUSE = "fail_cause"; static final DataFailCause DEFAULT_FAIL_CAUSE = DataFailCause.ERROR_UNSPECIFIED; DataFailCause mFailCause; static final int DEFAULT_FAIL_CAUSE = DataFailCause.ERROR_UNSPECIFIED; @DataFailCause.FailCause int mFailCause; // suggestedRetryTime with its --ei option name and default value static final String SUGGESTED_RETRY_TIME = "suggested_retry_time"; Loading @@ -52,8 +53,8 @@ public class DcFailBringUp { void saveParameters(Intent intent, String s) { if (DBG) log(s + ".saveParameters: action=" + intent.getAction()); mCounter = intent.getIntExtra(COUNTER, DEFAULT_COUNTER); mFailCause = DataFailCause.fromInt( intent.getIntExtra(FAIL_CAUSE, DEFAULT_FAIL_CAUSE.getErrorCode())); mFailCause = DataFailCause.getFailCause( intent.getIntExtra(FAIL_CAUSE, DEFAULT_FAIL_CAUSE)); mSuggestedRetryTime = intent.getIntExtra(SUGGESTED_RETRY_TIME, DEFAULT_SUGGESTED_RETRY_TIME); if (DBG) { Loading @@ -61,9 +62,10 @@ public class DcFailBringUp { } } public void saveParameters(int counter, int failCause, int suggestedRetryTime) { public void saveParameters(int counter, @DataFailCause.FailCause int failCause, int suggestedRetryTime) { mCounter = counter; mFailCause = DataFailCause.fromInt(failCause); mFailCause = DataFailCause.getFailCause(failCause); mSuggestedRetryTime = suggestedRetryTime; } Loading src/java/com/android/internal/telephony/dataconnection/DcTesterFailBringUpAll.java +2 −2 Original line number Diff line number Diff line Loading @@ -62,12 +62,12 @@ public class DcTesterFailBringUpAll { // Counter is MAX, bringUp/retry will always fail log("simulate detaching"); mFailBringUp.saveParameters(Integer.MAX_VALUE, DataFailCause.LOST_CONNECTION.getErrorCode(), DataFailCause.LOST_CONNECTION, DcFailBringUp.DEFAULT_SUGGESTED_RETRY_TIME); } else if (action.equals(mPhone.getActionAttached())) { // Counter is 0 next bringUp/retry will succeed log("simulate attaching"); mFailBringUp.saveParameters(0, DataFailCause.NONE.getErrorCode(), mFailBringUp.saveParameters(0, DataFailCause.NONE, DcFailBringUp.DEFAULT_SUGGESTED_RETRY_TIME); } else { if (DBG) log("onReceive: unknown action=" + action); Loading src/java/com/android/internal/telephony/dataconnection/DcTracker.java +13 −12 Original line number Diff line number Diff line Loading @@ -1805,9 +1805,10 @@ public class DcTracker extends Handler { } } boolean isPermanentFailure(DataFailCause dcFailCause) { return (dcFailCause.isPermanentFailure(mPhone.getContext(), mPhone.getSubId()) && (mAttached.get() == false || dcFailCause != DataFailCause.SIGNAL_LOST)); boolean isPermanentFailure(@DataFailCause.FailCause int dcFailCause) { return (DataFailCause.isPermanentFailure(mPhone.getContext(), dcFailCause, mPhone.getSubId()) && (mAttached.get() == false || dcFailCause != DataFailCause.SIGNAL_LOST)); } private DataConnection findFreeDataConnection() { Loading Loading @@ -2147,7 +2148,7 @@ public class DcTracker extends Handler { SystemClock.elapsedRealtime() + delay, alarmIntent); } private void notifyNoData(DataFailCause lastFailCauseCode, private void notifyNoData(@DataFailCause.FailCause int lastFailCauseCode, ApnContext apnContext) { if (DBG) log( "notifyNoData: type=" + apnContext.getApnType()); if (isPermanentFailure(lastFailCauseCode) Loading Loading @@ -2730,7 +2731,7 @@ public class DcTracker extends Handler { */ private void onDataSetupComplete(AsyncResult ar) { DataFailCause cause = DataFailCause.UNKNOWN; int cause = DataFailCause.UNKNOWN; boolean handleError = false; ApnContext apnContext = getValidApnContext(ar, "onDataSetupComplete"); Loading Loading @@ -2871,32 +2872,32 @@ public class DcTracker extends Handler { } } } else { cause = (DataFailCause) (ar.result); cause = (int) (ar.result); if (DBG) { ApnSetting apn = apnContext.getApnSetting(); log(String.format("onDataSetupComplete: error apn=%s cause=%s", (apn == null ? "unknown" : apn.getApnName()), cause)); } if (cause.isEventLoggable()) { if (DataFailCause.isEventLoggable(cause)) { // Log this failure to the Event Logs. int cid = getCellLocationId(); EventLog.writeEvent(EventLogTags.PDP_SETUP_FAIL, cause.ordinal(), cid, mTelephonyManager.getNetworkType()); cause, cid, mTelephonyManager.getNetworkType()); } ApnSetting apn = apnContext.getApnSetting(); mPhone.notifyPreciseDataConnectionFailed(apnContext.getReason(), apnContext.getApnType(), apn != null ? apn.getApnName() : "unknown", cause.toString()); : "unknown", cause + ""); // Compose broadcast intent send to the specific carrier signaling receivers Intent intent = new Intent(TelephonyIntents .ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED); intent.putExtra(TelephonyIntents.EXTRA_ERROR_CODE_KEY, cause.getErrorCode()); intent.putExtra(TelephonyIntents.EXTRA_ERROR_CODE_KEY, cause); intent.putExtra(TelephonyIntents.EXTRA_APN_TYPE_KEY, apnContext.getApnType()); mPhone.getCarrierSignalAgent().notifyCarrierSignalReceivers(intent); if (cause.isRadioRestartFailure(mPhone.getContext(), mPhone.getSubId()) || apnContext.restartOnError(cause.getErrorCode())) { if (DataFailCause.isRadioRestartFailure(mPhone.getContext(), cause, mPhone.getSubId()) || apnContext.restartOnError(cause)) { if (DBG) log("Modem restarted."); sendRestartRadio(); } Loading Loading
src/java/com/android/internal/telephony/dataconnection/DataConnection.java +31 −25 Original line number Diff line number Diff line Loading @@ -174,14 +174,16 @@ public class DataConnection extends StateMachine { private ApnSetting mApnSetting; private ConnectionParams mConnectionParams; private DisconnectParams mDisconnectParams; private DataFailCause mDcFailCause; @DataFailCause.FailCause private int mDcFailCause; private Phone mPhone; private DataServiceManager mDataServiceManager; private LinkProperties mLinkProperties = new LinkProperties(); private long mCreateTime; private long mLastFailTime; private DataFailCause mLastFailCause; @DataFailCause.FailCause private int mLastFailCause; private static final String NULL_IP = "0.0.0.0"; private Object mUserData; private int mSubscriptionOverride; Loading Loading @@ -351,10 +353,10 @@ public class DataConnection extends StateMachine { ERROR_STALE, ERROR_DATA_SERVICE_SPECIFIC_ERROR; public DataFailCause mFailCause; public int mFailCause; SetupResult() { mFailCause = DataFailCause.fromInt(0); mFailCause = DataFailCause.getFailCause(0); } @Override Loading Loading @@ -515,7 +517,7 @@ public class DataConnection extends StateMachine { // Check if we should fake an error. if (mDcTesterFailBringUpAll.getDcFailBringUp().mCounter > 0) { DataCallResponse response = new DataCallResponse( mDcTesterFailBringUpAll.getDcFailBringUp().mFailCause.getErrorCode(), mDcTesterFailBringUpAll.getDcFailBringUp().mFailCause, mDcTesterFailBringUpAll.getDcFailBringUp().mSuggestedRetryTime, 0, 0, "", "", null, null, null, null, PhoneConstants.UNSET_MTU); Loading Loading @@ -611,8 +613,9 @@ public class DataConnection extends StateMachine { private void notifyAllOfDisconnectDcRetrying(String reason) { notifyAllWithEvent(null, DctConstants.EVENT_DISCONNECT_DC_RETRYING, reason); } private void notifyAllDisconnectCompleted(DataFailCause cause) { notifyAllWithEvent(null, DctConstants.EVENT_DISCONNECT_DONE, cause.toString()); private void notifyAllDisconnectCompleted(@DataFailCause.FailCause int cause) { notifyAllWithEvent(null, DctConstants.EVENT_DISCONNECT_DONE, DataFailCause.toString(cause)); } Loading @@ -623,7 +626,8 @@ public class DataConnection extends StateMachine { * @param cause and if no error the cause is DataFailCause.NONE * @param sendAll is true if all contexts are to be notified */ private void notifyConnectCompleted(ConnectionParams cp, DataFailCause cause, boolean sendAll) { private void notifyConnectCompleted(ConnectionParams cp, @DataFailCause.FailCause int cause, boolean sendAll) { ApnContext alreadySent = null; if (cp != null && cp.mOnCompletedMsg != null) { Loading @@ -643,9 +647,9 @@ public class DataConnection extends StateMachine { mLastFailTime = timeStamp; // Return message with a Throwable exception to signify an error. if (cause == null) cause = DataFailCause.UNKNOWN; if (cause == DataFailCause.NONE) cause = DataFailCause.UNKNOWN; AsyncResult.forMessage(connectionCompletedMsg, cause, new Throwable(cause.toString())); new Throwable(DataFailCause.toString(cause))); } if (DBG) { log("notifyConnectCompleted at " + timeStamp + " cause=" + cause Loading @@ -655,9 +659,9 @@ public class DataConnection extends StateMachine { connectionCompletedMsg.sendToTarget(); } if (sendAll) { log("Send to all. " + alreadySent + " " + cause.toString()); log("Send to all. " + alreadySent + " " + DataFailCause.toString(cause)); notifyAllWithEvent(alreadySent, DctConstants.EVENT_DATA_SETUP_COMPLETE_ERROR, cause.toString()); DataFailCause.toString(cause)); } } Loading Loading @@ -689,7 +693,7 @@ public class DataConnection extends StateMachine { } if (sendAll) { if (reason == null) { reason = DataFailCause.UNKNOWN.toString(); reason = DataFailCause.toString(DataFailCause.UNKNOWN); } notifyAllWithEvent(alreadySent, DctConstants.EVENT_DISCONNECT_DONE, reason); } Loading Loading @@ -739,7 +743,7 @@ public class DataConnection extends StateMachine { mApnSetting = null; mUnmeteredUseOnly = false; mRestrictedNetworkOverride = false; mDcFailCause = null; mDcFailCause = DataFailCause.NONE; mDisabledApnTypeBitMask = 0; } Loading @@ -765,12 +769,12 @@ public class DataConnection extends StateMachine { result = SetupResult.ERROR_RADIO_NOT_AVAILABLE; result.mFailCause = DataFailCause.RADIO_NOT_AVAILABLE; } else if (response.getStatus() != 0) { if (response.getStatus() == DataFailCause.RADIO_NOT_AVAILABLE.getErrorCode()) { if (response.getStatus() == DataFailCause.RADIO_NOT_AVAILABLE) { result = SetupResult.ERROR_RADIO_NOT_AVAILABLE; result.mFailCause = DataFailCause.RADIO_NOT_AVAILABLE; } else { result = SetupResult.ERROR_DATA_SERVICE_SPECIFIC_ERROR; result.mFailCause = DataFailCause.fromInt(response.getStatus()); result.mFailCause = DataFailCause.getFailCause(response.getStatus()); } } else { if (DBG) log("onSetupConnectionCompleted received successful DataCallResponse"); Loading Loading @@ -1138,7 +1142,7 @@ public class DataConnection extends StateMachine { // a failure we'll clear again at the bottom of this code. linkProperties.clear(); if (response.getStatus() == DataFailCause.NONE.getErrorCode()) { if (response.getStatus() == DataFailCause.NONE) { try { // set interface name linkProperties.setInterfaceName(response.getIfname()); Loading Loading @@ -1296,7 +1300,7 @@ public class DataConnection extends StateMachine { mPhone = null; mDataServiceManager = null; mLinkProperties = null; mLastFailCause = null; mLastFailCause = DataFailCause.NONE; mUserData = null; mDcController = null; mDcTesterFailBringUpAll = null; Loading Loading @@ -1432,7 +1436,8 @@ public class DataConnection extends StateMachine { */ private class DcInactiveState extends State { // Inform all contexts we've failed connecting public void setEnterNotificationParams(ConnectionParams cp, DataFailCause cause) { public void setEnterNotificationParams(ConnectionParams cp, @DataFailCause.FailCause int cause) { if (VDBG) log("DcInactiveState: setEnterNotificationParams cp,cause"); mConnectionParams = cp; mDisconnectParams = null; Loading @@ -1448,7 +1453,7 @@ public class DataConnection extends StateMachine { } // Inform all contexts of the failure cause public void setEnterNotificationParams(DataFailCause cause) { public void setEnterNotificationParams(@DataFailCause.FailCause int cause) { mConnectionParams = null; mDisconnectParams = null; mDcFailCause = cause; Loading Loading @@ -1479,7 +1484,8 @@ public class DataConnection extends StateMachine { } notifyDisconnectCompleted(mDisconnectParams, true); } if (mDisconnectParams == null && mConnectionParams == null && mDcFailCause != null) { if (mDisconnectParams == null && mConnectionParams == null && mDcFailCause != DataFailCause.NONE) { if (DBG) { log("DcInactiveState: enter notifyAllDisconnectCompleted failCause=" + mDcFailCause); Loading Loading @@ -1630,8 +1636,8 @@ public class DataConnection extends StateMachine { + " delay=" + delay + " result=" + result + " result.isRadioRestartFailure=" + result.mFailCause.isRadioRestartFailure(mPhone.getContext(), mPhone.getSubId()) + DataFailCause.isRadioRestartFailure(mPhone.getContext(), result.mFailCause, mPhone.getSubId()) + " isPermanentFailure=" + mDct.isPermanentFailure(result.mFailCause); if (DBG) log(str); Loading Loading @@ -1733,8 +1739,8 @@ public class DataConnection extends StateMachine { reason = Phone.REASON_CARRIER_CHANGE; } else if (mDisconnectParams != null && mDisconnectParams.mReason != null) { reason = mDisconnectParams.mReason; } else if (mDcFailCause != null) { reason = mDcFailCause.toString(); } else { reason = DataFailCause.toString(mDcFailCause); } mPhone.getCallTracker().unregisterForVoiceCallStarted(getHandler()); mPhone.getCallTracker().unregisterForVoiceCallEnded(getHandler()); Loading
src/java/com/android/internal/telephony/dataconnection/DcController.java +2 −2 Original line number Diff line number Diff line Loading @@ -331,8 +331,8 @@ public class DcController extends StateMachine { apnsToCleanup.addAll(apnContexts); mDct.isCleanupRequired.set(false); } else { DataFailCause failCause = DataFailCause.fromInt(newState.getStatus()); if (failCause.isRadioRestartFailure(mPhone.getContext(), int failCause = DataFailCause.getFailCause(newState.getStatus()); if (DataFailCause.isRadioRestartFailure(mPhone.getContext(), failCause, mPhone.getSubId())) { if (DBG) { log("onDataStateChanged: X restart radio, failCause=" Loading
src/java/com/android/internal/telephony/dataconnection/DcFailBringUp.java +8 −6 Original line number Diff line number Diff line Loading @@ -40,8 +40,9 @@ public class DcFailBringUp { // failCause with its --ei option name and default value static final String FAIL_CAUSE = "fail_cause"; static final DataFailCause DEFAULT_FAIL_CAUSE = DataFailCause.ERROR_UNSPECIFIED; DataFailCause mFailCause; static final int DEFAULT_FAIL_CAUSE = DataFailCause.ERROR_UNSPECIFIED; @DataFailCause.FailCause int mFailCause; // suggestedRetryTime with its --ei option name and default value static final String SUGGESTED_RETRY_TIME = "suggested_retry_time"; Loading @@ -52,8 +53,8 @@ public class DcFailBringUp { void saveParameters(Intent intent, String s) { if (DBG) log(s + ".saveParameters: action=" + intent.getAction()); mCounter = intent.getIntExtra(COUNTER, DEFAULT_COUNTER); mFailCause = DataFailCause.fromInt( intent.getIntExtra(FAIL_CAUSE, DEFAULT_FAIL_CAUSE.getErrorCode())); mFailCause = DataFailCause.getFailCause( intent.getIntExtra(FAIL_CAUSE, DEFAULT_FAIL_CAUSE)); mSuggestedRetryTime = intent.getIntExtra(SUGGESTED_RETRY_TIME, DEFAULT_SUGGESTED_RETRY_TIME); if (DBG) { Loading @@ -61,9 +62,10 @@ public class DcFailBringUp { } } public void saveParameters(int counter, int failCause, int suggestedRetryTime) { public void saveParameters(int counter, @DataFailCause.FailCause int failCause, int suggestedRetryTime) { mCounter = counter; mFailCause = DataFailCause.fromInt(failCause); mFailCause = DataFailCause.getFailCause(failCause); mSuggestedRetryTime = suggestedRetryTime; } Loading
src/java/com/android/internal/telephony/dataconnection/DcTesterFailBringUpAll.java +2 −2 Original line number Diff line number Diff line Loading @@ -62,12 +62,12 @@ public class DcTesterFailBringUpAll { // Counter is MAX, bringUp/retry will always fail log("simulate detaching"); mFailBringUp.saveParameters(Integer.MAX_VALUE, DataFailCause.LOST_CONNECTION.getErrorCode(), DataFailCause.LOST_CONNECTION, DcFailBringUp.DEFAULT_SUGGESTED_RETRY_TIME); } else if (action.equals(mPhone.getActionAttached())) { // Counter is 0 next bringUp/retry will succeed log("simulate attaching"); mFailBringUp.saveParameters(0, DataFailCause.NONE.getErrorCode(), mFailBringUp.saveParameters(0, DataFailCause.NONE, DcFailBringUp.DEFAULT_SUGGESTED_RETRY_TIME); } else { if (DBG) log("onReceive: unknown action=" + action); Loading
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +13 −12 Original line number Diff line number Diff line Loading @@ -1805,9 +1805,10 @@ public class DcTracker extends Handler { } } boolean isPermanentFailure(DataFailCause dcFailCause) { return (dcFailCause.isPermanentFailure(mPhone.getContext(), mPhone.getSubId()) && (mAttached.get() == false || dcFailCause != DataFailCause.SIGNAL_LOST)); boolean isPermanentFailure(@DataFailCause.FailCause int dcFailCause) { return (DataFailCause.isPermanentFailure(mPhone.getContext(), dcFailCause, mPhone.getSubId()) && (mAttached.get() == false || dcFailCause != DataFailCause.SIGNAL_LOST)); } private DataConnection findFreeDataConnection() { Loading Loading @@ -2147,7 +2148,7 @@ public class DcTracker extends Handler { SystemClock.elapsedRealtime() + delay, alarmIntent); } private void notifyNoData(DataFailCause lastFailCauseCode, private void notifyNoData(@DataFailCause.FailCause int lastFailCauseCode, ApnContext apnContext) { if (DBG) log( "notifyNoData: type=" + apnContext.getApnType()); if (isPermanentFailure(lastFailCauseCode) Loading Loading @@ -2730,7 +2731,7 @@ public class DcTracker extends Handler { */ private void onDataSetupComplete(AsyncResult ar) { DataFailCause cause = DataFailCause.UNKNOWN; int cause = DataFailCause.UNKNOWN; boolean handleError = false; ApnContext apnContext = getValidApnContext(ar, "onDataSetupComplete"); Loading Loading @@ -2871,32 +2872,32 @@ public class DcTracker extends Handler { } } } else { cause = (DataFailCause) (ar.result); cause = (int) (ar.result); if (DBG) { ApnSetting apn = apnContext.getApnSetting(); log(String.format("onDataSetupComplete: error apn=%s cause=%s", (apn == null ? "unknown" : apn.getApnName()), cause)); } if (cause.isEventLoggable()) { if (DataFailCause.isEventLoggable(cause)) { // Log this failure to the Event Logs. int cid = getCellLocationId(); EventLog.writeEvent(EventLogTags.PDP_SETUP_FAIL, cause.ordinal(), cid, mTelephonyManager.getNetworkType()); cause, cid, mTelephonyManager.getNetworkType()); } ApnSetting apn = apnContext.getApnSetting(); mPhone.notifyPreciseDataConnectionFailed(apnContext.getReason(), apnContext.getApnType(), apn != null ? apn.getApnName() : "unknown", cause.toString()); : "unknown", cause + ""); // Compose broadcast intent send to the specific carrier signaling receivers Intent intent = new Intent(TelephonyIntents .ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED); intent.putExtra(TelephonyIntents.EXTRA_ERROR_CODE_KEY, cause.getErrorCode()); intent.putExtra(TelephonyIntents.EXTRA_ERROR_CODE_KEY, cause); intent.putExtra(TelephonyIntents.EXTRA_APN_TYPE_KEY, apnContext.getApnType()); mPhone.getCarrierSignalAgent().notifyCarrierSignalReceivers(intent); if (cause.isRadioRestartFailure(mPhone.getContext(), mPhone.getSubId()) || apnContext.restartOnError(cause.getErrorCode())) { if (DataFailCause.isRadioRestartFailure(mPhone.getContext(), cause, mPhone.getSubId()) || apnContext.restartOnError(cause)) { if (DBG) log("Modem restarted."); sendRestartRadio(); } Loading