aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Yu <jackyu@google.com>2019-05-04 17:07:19 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-05-04 17:07:19 -0700
commitcf8034b8abca13b2ff1ee8d607196b75dc806f47 (patch)
treeebb9670b352c58f823e835f387452e2fddbe1522
parent22445ab641709e572e329afcb68bbf63c99890ef (diff)
parentc49627019d483246dcbb13a979504765fb8b49e8 (diff)
downloadtelephony-cf8034b8abca13b2ff1ee8d607196b75dc806f47.tar.gz
Merge "Fixed corner case when handover fails"
am: c49627019d Change-Id: Ib343b1ff081fa6fb4c6e51481e89eb43967143b8
-rw-r--r--src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java b/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
index 9f1d34fd16..d86e6763d9 100644
--- a/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
+++ b/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
@@ -392,8 +392,14 @@ public class TelephonyNetworkFactory extends NetworkFactory {
int originTransport = (targetTransport == AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
? AccessNetworkConstants.TRANSPORT_TYPE_WLAN
: AccessNetworkConstants.TRANSPORT_TYPE_WWAN;
- releaseNetworkInternal(networkRequest, DcTracker.RELEASE_TYPE_HANDOVER,
- originTransport);
+ int releaseType = success
+ ? DcTracker.RELEASE_TYPE_HANDOVER
+ // If handover fails, we need to tear down the existing connection, so the
+ // new data connection can be re-established on the new transport. If we leave
+ // the existing data connection in current transport, then DCT and qualified
+ // network service will be out of sync.
+ : DcTracker.RELEASE_TYPE_NORMAL;
+ releaseNetworkInternal(networkRequest, releaseType, originTransport);
mNetworkRequests.put(networkRequest, targetTransport);
handoverParams.callback.onCompleted(success);