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

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

Merge "Removed network requests from all transports" into sc-dev

parents a5d87aa4 9cfa02b6
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -430,9 +430,7 @@ public class ApnContext {

    public void releaseNetwork(NetworkRequest networkRequest, @ReleaseNetworkType int type) {
        synchronized (mRefCountLock) {
            if (mNetworkRequests.contains(networkRequest) == false) {
                logl("releaseNetwork can't find this request (" + networkRequest + ")");
            } else {
            if (mNetworkRequests.contains(networkRequest)) {
                mNetworkRequests.remove(networkRequest);
                if (mDataConnection != null) {
                    // New network request added. Should re-evaluate properties of
+10 −8
Original line number Diff line number Diff line
@@ -338,8 +338,16 @@ public class TelephonyNetworkFactory extends NetworkFactory {
        logl("onReleaseNetworkFor " + networkRequest + " applied " + applied);

        if (applied) {
            int transport = getTransportTypeFromNetworkRequest(networkRequest);
            releaseNetworkInternal(networkRequest, DcTracker.RELEASE_TYPE_NORMAL, transport);
            // Most of the time, the network request only exists in one of the DcTracker, but in the
            // middle of handover, the network request temporarily exists in both DcTrackers. If
            // connectivity service releases the network request while handover is ongoing, we need
            // to remove network requests from both DcTrackers.
            // Note that this part will be refactored in T, where we won't even have DcTracker at
            // all.
            releaseNetworkInternal(networkRequest, DcTracker.RELEASE_TYPE_NORMAL,
                    AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
            releaseNetworkInternal(networkRequest, DcTracker.RELEASE_TYPE_NORMAL,
                    AccessNetworkConstants.TRANSPORT_TYPE_WLAN);
        }
    }

@@ -442,12 +450,6 @@ public class TelephonyNetworkFactory extends NetworkFactory {
            if (mNetworkRequests.containsKey(networkRequest)) {
                // Update it with the target transport.
                mNetworkRequests.put(networkRequest, targetTransport);
            } else {
                log("Network request was released before handover is completed. Now"
                        + " we need to release this network request. "
                        + networkRequest);
                releaseNetworkInternal(networkRequest, DcTracker.RELEASE_TYPE_NORMAL,
                        targetTransport);
            }
        } else {
            // If handover fails and requires to fallback, the context of target transport needs to
+0 −11
Original line number Diff line number Diff line
@@ -36,7 +36,6 @@ import android.net.NetworkProvider;
import android.net.NetworkRequest;
import android.net.TelephonyNetworkSpecifier;
import android.os.AsyncResult;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -465,16 +464,6 @@ public class TelephonyNetworkFactoryTest extends TelephonyTest {
        mTelephonyNetworkFactoryUT.releaseNetworkFor(mmsNetworkRequest);
        processAllMessages();

        Message msg = mNetworkRequestMessageMap.get(mmsNetworkRequest);

        Bundle bundle = msg.getData();
        bundle.putParcelable("extra_network_request", mmsNetworkRequest);
        bundle.putBoolean("extra_success", true);
        bundle.putInt("extra_transport_type", AccessNetworkConstants.TRANSPORT_TYPE_WLAN);
        bundle.putBoolean("extra_handover_failure_fallback", false);
        h.sendMessage(msg);
        processAllMessages();

        // Ensure the release is called one more time after the normal release
        verify(mDcTracker, times(2)).releaseNetwork(any(), eq(1));
    }