diff options
author | Satish.Kulkarni <Satish.Kulkarni@motorola.com> | 2009-07-07 15:28:11 -0500 |
---|---|---|
committer | Wink Saville <wink@google.com> | 2009-07-25 21:28:20 -0700 |
commit | eafe72a0db89b5867ccd4b8170377309827785a2 (patch) | |
tree | e59f78778cd5cc128ba177905a29a0e438e48f8f /telephony | |
parent | a04aaff2be2396b486181189c67d154e98892f9c (diff) | |
download | frameworks_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')
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; } } } |