Loading src/java/com/android/internal/telephony/data/DataNetwork.java +4 −0 Original line number Diff line number Diff line Loading @@ -1124,6 +1124,7 @@ public class DataNetwork extends StateMachine { notifyPreciseDataConnectionState(); if (mTransport == AccessNetworkConstants.TRANSPORT_TYPE_WLAN) { // Defer setupData until we get the PDU session ID response allocatePduSessionId(); return; } Loading Loading @@ -1161,6 +1162,7 @@ public class DataNetwork extends StateMachine { case EVENT_PCO_DATA_RECEIVED: case EVENT_WAITING_FOR_TEARING_DOWN_CONDITION_MET: // Defer the request until connected or disconnected. log("Defer message " + eventToString(msg.what)); deferMessage(msg); break; case EVENT_STUCK_IN_TRANSIENT_STATE: Loading Loading @@ -1329,6 +1331,7 @@ public class DataNetwork extends StateMachine { // signal. So we only defer the related data call list changed event, and drop // the unrelated. if (shouldDeferDataStateChangedEvent(msg)) { log("Defer message " + eventToString(msg.what)); deferMessage(msg); } break; Loading @@ -1339,6 +1342,7 @@ public class DataNetwork extends StateMachine { case EVENT_VOICE_CALL_ENDED: case EVENT_VOICE_CALL_STARTED: // Defer the request until handover succeeds or fails. log("Defer message " + eventToString(msg.what)); deferMessage(msg); break; case EVENT_HANDOVER_RESPONSE: Loading src/java/com/android/internal/telephony/data/DataNetworkController.java +2 −14 Original line number Diff line number Diff line Loading @@ -2615,7 +2615,7 @@ public class DataNetworkController extends Handler { } if (!mDataSettingsManager.isRecoveryOnBadNetworkEnabled()) { log("Ignore data network validation status changed becaused" log("Ignore data network validation status changed because " + "data stall recovery is disabled."); return; } Loading Loading @@ -2797,19 +2797,7 @@ public class DataNetworkController extends Handler { log("onDataServiceBindingChanged: " + AccessNetworkConstants .transportTypeToString(transport) + " data service is " + (bound ? "bound." : "unbound.")); if (!bound) { if (transport == AccessNetworkConstants.TRANSPORT_TYPE_WLAN) { if (!mDataConfigManager.shouldPersistIwlanDataNetworksWhenDataServiceRestarted()) { for (DataNetwork dataNetwork : mDataNetworkList) { if (dataNetwork.getTransport() == AccessNetworkConstants.TRANSPORT_TYPE_WLAN) { dataNetwork.tearDown( DataNetwork.TEAR_DOWN_REASON_DATA_SERVICE_NOT_READY); } } } } } else { if (bound) { mDataNetworkControllerCallbacks.forEach(callback -> callback.invokeFromExecutor( () -> callback.onDataServiceBound(transport))); } Loading src/java/com/android/internal/telephony/data/DataServiceManager.java +11 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,17 @@ public class DataServiceManager extends Handler { loge(message); AnomalyReporter.reportAnomaly(UUID.fromString("fc1956de-c080-45de-8431-a1faab687110"), message); // Cancel all pending requests for (Message m : mMessageMap.values()) { sendCompleteMessage(m, DataServiceCallback.RESULT_ERROR_ILLEGAL_STATE); } mMessageMap.clear(); // Tear down all connections mLastDataCallResponseList = Collections.EMPTY_LIST; mDataCallListChangedRegistrants.notifyRegistrants( new AsyncResult(null, Collections.EMPTY_LIST, null)); } } Loading Loading
src/java/com/android/internal/telephony/data/DataNetwork.java +4 −0 Original line number Diff line number Diff line Loading @@ -1124,6 +1124,7 @@ public class DataNetwork extends StateMachine { notifyPreciseDataConnectionState(); if (mTransport == AccessNetworkConstants.TRANSPORT_TYPE_WLAN) { // Defer setupData until we get the PDU session ID response allocatePduSessionId(); return; } Loading Loading @@ -1161,6 +1162,7 @@ public class DataNetwork extends StateMachine { case EVENT_PCO_DATA_RECEIVED: case EVENT_WAITING_FOR_TEARING_DOWN_CONDITION_MET: // Defer the request until connected or disconnected. log("Defer message " + eventToString(msg.what)); deferMessage(msg); break; case EVENT_STUCK_IN_TRANSIENT_STATE: Loading Loading @@ -1329,6 +1331,7 @@ public class DataNetwork extends StateMachine { // signal. So we only defer the related data call list changed event, and drop // the unrelated. if (shouldDeferDataStateChangedEvent(msg)) { log("Defer message " + eventToString(msg.what)); deferMessage(msg); } break; Loading @@ -1339,6 +1342,7 @@ public class DataNetwork extends StateMachine { case EVENT_VOICE_CALL_ENDED: case EVENT_VOICE_CALL_STARTED: // Defer the request until handover succeeds or fails. log("Defer message " + eventToString(msg.what)); deferMessage(msg); break; case EVENT_HANDOVER_RESPONSE: Loading
src/java/com/android/internal/telephony/data/DataNetworkController.java +2 −14 Original line number Diff line number Diff line Loading @@ -2615,7 +2615,7 @@ public class DataNetworkController extends Handler { } if (!mDataSettingsManager.isRecoveryOnBadNetworkEnabled()) { log("Ignore data network validation status changed becaused" log("Ignore data network validation status changed because " + "data stall recovery is disabled."); return; } Loading Loading @@ -2797,19 +2797,7 @@ public class DataNetworkController extends Handler { log("onDataServiceBindingChanged: " + AccessNetworkConstants .transportTypeToString(transport) + " data service is " + (bound ? "bound." : "unbound.")); if (!bound) { if (transport == AccessNetworkConstants.TRANSPORT_TYPE_WLAN) { if (!mDataConfigManager.shouldPersistIwlanDataNetworksWhenDataServiceRestarted()) { for (DataNetwork dataNetwork : mDataNetworkList) { if (dataNetwork.getTransport() == AccessNetworkConstants.TRANSPORT_TYPE_WLAN) { dataNetwork.tearDown( DataNetwork.TEAR_DOWN_REASON_DATA_SERVICE_NOT_READY); } } } } } else { if (bound) { mDataNetworkControllerCallbacks.forEach(callback -> callback.invokeFromExecutor( () -> callback.onDataServiceBound(transport))); } Loading
src/java/com/android/internal/telephony/data/DataServiceManager.java +11 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,17 @@ public class DataServiceManager extends Handler { loge(message); AnomalyReporter.reportAnomaly(UUID.fromString("fc1956de-c080-45de-8431-a1faab687110"), message); // Cancel all pending requests for (Message m : mMessageMap.values()) { sendCompleteMessage(m, DataServiceCallback.RESULT_ERROR_ILLEGAL_STATE); } mMessageMap.clear(); // Tear down all connections mLastDataCallResponseList = Collections.EMPTY_LIST; mDataCallListChangedRegistrants.notifyRegistrants( new AsyncResult(null, Collections.EMPTY_LIST, null)); } } Loading