Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed9720f0 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "DataServiceManager update binder died behavior" into tm-dev

parents 74a9c32a f1eea59b
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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;
            }
@@ -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:
@@ -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;
@@ -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:
+2 −14
Original line number Diff line number Diff line
@@ -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;
        }
@@ -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)));
        }
+11 −0
Original line number Diff line number Diff line
@@ -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));
        }
    }