summaryrefslogtreecommitdiffstats
path: root/src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java')
-rw-r--r--src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java b/src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
index a7d5d0a..196e795 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
@@ -75,6 +75,10 @@ public final class CdmaCallTracker extends CallTracker {
CdmaConnection pendingMO;
boolean hangupPendingMO;
+
+ //Used to re-request the list of current calls
+ boolean slow_modem = (SystemProperties.getInt("ro.telephony.slow_modem",0) != 0);
+
boolean pendingCallInEcm=false;
boolean mIsInEmergencyCall = false;
CDMAPhone phone;
@@ -496,6 +500,13 @@ public final class CdmaCallTracker extends CallTracker {
boolean needsPollDelay = false;
boolean unknownConnectionAppeared = false;
+ if (slow_modem) {
+ if (polledCalls.size() == 0 && !hangupPendingMO){
+ lastRelevantPoll = obtainMessage(EVENT_POLL_CALLS_RESULT);
+ cm.getCurrentCalls(lastRelevantPoll);
+ return;
+ }
+ }
for (int i = 0, curDC = 0, dcSize = polledCalls.size()
; i < connections.length; i++) {
CdmaConnection conn = connections[i];
@@ -829,6 +840,7 @@ public final class CdmaCallTracker extends CallTracker {
"does not belong to CdmaCallTracker " + this);
}
+ hangupPendingMO = true;
call.onHangupLocal();
phone.notifyPreciseCallStateChanged();
}