summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorSatish.Kulkarni <Satish.Kulkarni@motorola.com>2009-07-07 15:28:11 -0500
committerWink Saville <wink@google.com>2009-07-25 21:28:20 -0700
commiteafe72a0db89b5867ccd4b8170377309827785a2 (patch)
treee59f78778cd5cc128ba177905a29a0e438e48f8f /telephony
parenta04aaff2be2396b486181189c67d154e98892f9c (diff)
downloadframeworks_base-eafe72a0db89b5867ccd4b8170377309827785a2.zip
frameworks_base-eafe72a0db89b5867ccd4b8170377309827785a2.tar.gz
frameworks_base-eafe72a0db89b5867ccd4b8170377309827785a2.tar.bz2
Fix for missing call drop notice in CDMA mode
In case the cdma modem indicates unspecified error as a reason for a dropped call, then the cause was wrongly being translated to NORMAL call in DisconnectCause. This has been fixed to report ERROR_UNSPECIFIED as DisconnectCause in Connection.java.
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/com/android/internal/telephony/Connection.java3
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java4
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/GsmConnection.java8
3 files changed, 11 insertions, 4 deletions
diff --git a/telephony/java/com/android/internal/telephony/Connection.java b/telephony/java/com/android/internal/telephony/Connection.java
index 92f6cb8..e6fd0a0 100644
--- a/telephony/java/com/android/internal/telephony/Connection.java
+++ b/telephony/java/com/android/internal/telephony/Connection.java
@@ -56,7 +56,8 @@ public abstract class Connection {
CDMA_RETRY_ORDER, /* requeseted service is rejected, retry delay is set */
CDMA_ACCESS_FAILURE,
CDMA_PREEMPTED,
- CDMA_NOT_EMERGENCY /* not an emergency call */
+ CDMA_NOT_EMERGENCY, /* not an emergency call */
+ ERROR_UNSPECIFIED
}
Object userData;
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java b/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java
index 905dedf..69ef0e3 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java
@@ -435,8 +435,10 @@ public class CdmaConnection extends Connection {
} else if (phone.mCM.getRadioState() != CommandsInterface.RadioState.NV_READY
&& phone.getIccCard().getState() != RuimCard.State.READY) {
return DisconnectCause.ICC_ERROR;
- } else {
+ } else if (causeCode==CallFailCause.NORMAL_CLEARING) {
return DisconnectCause.NORMAL;
+ } else {
+ return DisconnectCause.ERROR_UNSPECIFIED;
}
}
}
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmConnection.java b/telephony/java/com/android/internal/telephony/gsm/GsmConnection.java
index d93ca1d..2091fb6 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmConnection.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmConnection.java
@@ -381,10 +381,14 @@ public class GsmConnection extends Connection {
} else if (phone.mSST.rs.isCsNormalRestricted()) {
return DisconnectCause.CS_RESTRICTED_NORMAL;
} else {
- return DisconnectCause.NORMAL;
+ return DisconnectCause.ERROR_UNSPECIFIED;
}
- } else {
+ } else if (causeCode == CallFailCause.NORMAL_CLEARING) {
return DisconnectCause.NORMAL;
+ } else {
+ // If nothing else matches, report unknown call drop reason
+ // to app, not NORMAL call end.
+ return DisconnectCause.ERROR_UNSPECIFIED;
}
}
}