summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorJaikumar Ganesh <jaikumar@google.com>2009-05-22 12:58:29 -0700
committerJaikumar Ganesh <jaikumar@google.com>2009-05-22 13:05:30 -0700
commitb3d49f1569ae5ccaf6017bb39d8cf39122dbdbb8 (patch)
tree682bf99a0adf3293447caadb7daddab88407f454 /telephony
parentbb7b7b316a6a15f4df6af3c62a293920c68c7b00 (diff)
downloadframeworks_base-b3d49f1569ae5ccaf6017bb39d8cf39122dbdbb8.zip
frameworks_base-b3d49f1569ae5ccaf6017bb39d8cf39122dbdbb8.tar.gz
frameworks_base-b3d49f1569ae5ccaf6017bb39d8cf39122dbdbb8.tar.bz2
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.
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/CdmaDataConnection.java12
1 files 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 2cbad78..a9c0f46 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]);