diff options
author | Danny Baumann <dannybaumann@web.de> | 2013-08-06 07:33:02 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2013-08-06 07:33:02 +0000 |
commit | 0ae5729a428a0e472835139e0ae89f713cc35d21 (patch) | |
tree | 5c130532f88b8fdd85d95fa265c2bc896fd00b0e /src/java/com/android/internal/telephony/cdma/CdmaCallTracker.java | |
parent | 23bd60795611ebf0f81489bd153db959a0caf0a0 (diff) | |
parent | 332fb18bd27c07c5d50ba1e0e5880e730a240c1b (diff) | |
download | frameworks_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.java | 16 |
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(); } |