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.java16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java b/src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
index ad671d3..6b93561 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
@@ -497,6 +497,7 @@ public final class CdmaCallTracker extends CallTracker {
Connection newRinging = null; //or waiting
boolean hasNonHangupStateChanged = false; // Any change besides
// a dropped connection
+ boolean hasAnyCallDisconnected = false;
boolean needsPollDelay = false;
boolean unknownConnectionAppeared = false;
@@ -687,14 +688,11 @@ public final class CdmaCallTracker extends CallTracker {
log("setting cause to " + cause);
}
droppedDuringPoll.remove(i);
- conn.onDisconnect(cause);
- } else if (conn.cause == Connection.DisconnectCause.LOCAL) {
- // Local hangup
+ hasAnyCallDisconnected |= conn.onDisconnect(cause);
+ } else if (conn.cause == Connection.DisconnectCause.LOCAL
+ || conn.cause == Connection.DisconnectCause.INVALID_NUMBER) {
droppedDuringPoll.remove(i);
- conn.onDisconnect(Connection.DisconnectCause.LOCAL);
- } else if (conn.cause == Connection.DisconnectCause.INVALID_NUMBER) {
- droppedDuringPoll.remove(i);
- conn.onDisconnect(Connection.DisconnectCause.INVALID_NUMBER);
+ hasAnyCallDisconnected |= conn.onDisconnect(conn.cause);
}
}
@@ -713,7 +711,7 @@ public final class CdmaCallTracker extends CallTracker {
// 1) the phone has started to ring
// 2) A Call/Connection object has changed state...
// we may have switched or held or answered (but not hung up)
- if (newRinging != null || hasNonHangupStateChanged) {
+ if (newRinging != null || hasNonHangupStateChanged || hasAnyCallDisconnected) {
internalClearDisconnected();
}
@@ -723,7 +721,7 @@ public final class CdmaCallTracker extends CallTracker {
phone.notifyUnknownConnection();
}
- if (hasNonHangupStateChanged || newRinging != null) {
+ if (hasNonHangupStateChanged || newRinging != null || hasAnyCallDisconnected) {
phone.notifyPreciseCallStateChanged();
}