From b3d49f1569ae5ccaf6017bb39d8cf39122dbdbb8 Mon Sep 17 00:00:00 2001 From: Jaikumar Ganesh Date: Fri, 22 May 2009 12:58:29 -0700 Subject: [PATCH] Fix Disconnect path for CDMA. The corresponding fix has already been made for GSM. When data state is in CONNECTING state and and we try to disable the data, we set a pending disconnect but never disconnect once we are connected. --- .../internal/telephony/cdma/CdmaDataConnection.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnection.java b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnection.java index 2cbad78d12a83..a9c0f4605ae1d 100644 --- a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnection.java +++ b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnection.java @@ -146,12 +146,16 @@ public class CdmaDataConnection extends DataConnection { null, obtainMessage(EVENT_SETUP_DATA_CONNECTION_DONE)); } + private void tearDownData(Message msg) { + if (phone.mCM.getRadioState().isOn()) { + phone.mCM.deactivateDataCall(cid, obtainMessage(EVENT_DEACTIVATE_DONE, msg)); + } + } + protected void disconnect(Message msg) { onDisconnect = msg; if (state == State.ACTIVE) { - if (phone.mCM.getRadioState().isOn()) { - phone.mCM.deactivateDataCall(cid, obtainMessage(EVENT_DEACTIVATE_DONE, msg)); - } + tearDownData(msg); } else if (state == State.ACTIVATING) { receivedDisconnectReq = true; } else { @@ -280,7 +284,7 @@ public class CdmaDataConnection extends DataConnection { // Don't bother reporting success if there's already a // pending disconnect request, since DataConnectionTracker // has already updated its state. - disconnect(onDisconnect); + tearDownData(onDisconnect); } else { String[] response = ((String[]) ar.result); cid = Integer.parseInt(response[0]);