summaryrefslogtreecommitdiffstats
path: root/src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2013-08-06 07:33:02 +0000
committerGerrit Code Review <gerrit@cyanogenmod.org>2013-08-06 07:33:02 +0000
commit0ae5729a428a0e472835139e0ae89f713cc35d21 (patch)
tree5c130532f88b8fdd85d95fa265c2bc896fd00b0e /src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
parent23bd60795611ebf0f81489bd153db959a0caf0a0 (diff)
parent332fb18bd27c07c5d50ba1e0e5880e730a240c1b (diff)
downloadframeworks_opt_telephony-0ae5729a428a0e472835139e0ae89f713cc35d21.zip
frameworks_opt_telephony-0ae5729a428a0e472835139e0ae89f713cc35d21.tar.gz
frameworks_opt_telephony-0ae5729a428a0e472835139e0ae89f713cc35d21.tar.bz2
Merge "Properly notify of precise call state change after connection hangup." into cm-10.1
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();
}