Loading src/java/com/android/internal/telephony/dataconnection/ApnContext.java +1 −3 Original line number Diff line number Diff line Loading @@ -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 Loading src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java +10 −8 Original line number Diff line number Diff line Loading @@ -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); } } Loading Loading @@ -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 Loading tests/telephonytests/src/com/android/internal/telephony/dataconnection/TelephonyNetworkFactoryTest.java +0 −11 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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)); } Loading Loading
src/java/com/android/internal/telephony/dataconnection/ApnContext.java +1 −3 Original line number Diff line number Diff line Loading @@ -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 Loading
src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java +10 −8 Original line number Diff line number Diff line Loading @@ -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); } } Loading Loading @@ -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 Loading
tests/telephonytests/src/com/android/internal/telephony/dataconnection/TelephonyNetworkFactoryTest.java +0 −11 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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)); } Loading