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

Commit 5b81df2b authored by Jack Yu's avatar Jack Yu Committed by android-build-merger
Browse files

Merge "Fixed that data was setup on incorrect transport" am: 9478baa6

am: 0b613ee5

Change-Id: I07c1e2ce8a4eebd04334a2d79dde512e57cd3d07
parents e0854959 0b613ee5
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -310,11 +310,12 @@ public class TelephonyNetworkFactory extends NetworkFactory {
        log("onDataHandoverNeeded: apnType=" + ApnSetting.getApnTypeString(apnType)
                + ", target transport=" + TransportType.toString(targetTransport));
        if (mTransportManager.getCurrentTransport(apnType) == targetTransport) {
            log("apnType " + ApnSetting.getApnTypeString(apnType) + " is already on "
            log("APN type " + ApnSetting.getApnTypeString(apnType) + " is already on "
                    + TransportType.toString(targetTransport));
            return;
        }

        boolean handoverPending = false;
        for (HashMap.Entry<NetworkRequest, Integer> entry : mNetworkRequests.entrySet()) {
            NetworkRequest networkRequest = entry.getKey();
            int currentTransport = entry.getValue();
@@ -326,10 +327,20 @@ public class TelephonyNetworkFactory extends NetworkFactory {
                        EVENT_DATA_HANDOVER_COMPLETED);
                onCompleteMsg.getData().putParcelable(
                        DcTracker.DATA_COMPLETE_MSG_EXTRA_NETWORK_REQUEST, networkRequest);
                // TODO: Need to handle the case that the request is there, but there is no actual
                // data connections established.
                requestNetworkInternal(networkRequest, DcTracker.REQUEST_TYPE_HANDOVER,
                        targetTransport, onCompleteMsg);
                handoverPending = true;
            }
        }

        if (!handoverPending) {
            log("No handover request pending. Update the transport type to "
                    + TransportType.toString(targetTransport) + " for APN type "
                    + ApnSetting.getApnTypeString(apnType));
            mTransportManager.setCurrentTransport(apnType, targetTransport);
        }
    }

    private void onDataHandoverSetupCompleted(NetworkRequest networkRequest, boolean success,