From 3119b96098a8ef9a0a8931b142f4ac8e87a48693 Mon Sep 17 00:00:00 2001 From: Wink Saville Date: Wed, 19 Oct 2011 15:42:19 -0700 Subject: [PATCH] Non-default link should be cleaned up on telephony db change. Fixed onApnChanged method to handle multiple APN scenario. Non-default links also needs to be cleaned up once telephony db is updated. Bug: 5333303 Change-Id: I6d8d2b4e2f5b07ebf0e22669c910e4ebaddfe392 --- .../telephony/gsm/GsmDataConnectionTracker.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java index e1664016c524f..aa475e58f9987 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java @@ -1025,10 +1025,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { * Handles changes to the APN database. */ private void onApnChanged() { - // TODO: How to handle when multiple APNs are active? - - ApnContext defaultApnContext = mApnContexts.get(Phone.APN_TYPE_DEFAULT); - boolean defaultApnIsDisconnected = defaultApnContext.isDisconnected(); + State overallState = getOverallState(); + boolean isDisconnected = (overallState == State.IDLE || overallState == State.FAILED); if (mPhone instanceof GSMPhone) { // The "current" may no longer be valid. MMS depends on this to send properly. TBD @@ -1039,8 +1037,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { // match the current operator. if (DBG) log("onApnChanged: createAllApnList and cleanUpAllConnections"); createAllApnList(); - cleanUpAllConnections(!defaultApnIsDisconnected, Phone.REASON_APN_CHANGED); - if (defaultApnIsDisconnected) { + cleanUpAllConnections(!isDisconnected, Phone.REASON_APN_CHANGED); + if (isDisconnected) { setupDataOnReadyApns(Phone.REASON_APN_CHANGED); } }