Remove duplicate call disconnect codes.
The Android code base defines call disconnect codes in three places:
- android.telephony.DisconnectCause
- android.internal.telephony.Connection.DisconnectCause
- com.android.services.telephony.common.Call.DisconnectCause
This CL consolidates the code to use the integer codes from
android.telephony.DisconnectCause everywhere.
Change-Id: I84a3fd5182a51d07fc7d81076e4b2c15ff26c61c
diff --git a/src/com/android/phone/CallLogger.java b/src/com/android/phone/CallLogger.java
index 644812f..9e76db4 100644
--- a/src/com/android/phone/CallLogger.java
+++ b/src/com/android/phone/CallLogger.java
@@ -26,6 +26,7 @@
import android.net.Uri;
import android.os.SystemProperties;
import android.provider.CallLog.Calls;
+import android.telephony.DisconnectCause;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.util.Log;
@@ -87,13 +88,13 @@
* Came as logCall(Connection,int) but calculates the call type from the connection object.
*/
public void logCall(Connection c) {
- final Connection.DisconnectCause cause = c.getDisconnectCause();
+ final int cause = c.getDisconnectCause();
// Set the "type" to be displayed in the call log (see constants in CallLog.Calls)
final int callLogType;
if (c.isIncoming()) {
- callLogType = (cause == Connection.DisconnectCause.INCOMING_MISSED ?
+ callLogType = (cause == DisconnectCause.INCOMING_MISSED ?
Calls.MISSED_TYPE : Calls.INCOMING_TYPE);
} else {
callLogType = Calls.OUTGOING_TYPE;
diff --git a/src/com/android/phone/CallModeler.java b/src/com/android/phone/CallModeler.java
index e4ed147..72eaed0 100644
--- a/src/com/android/phone/CallModeler.java
+++ b/src/com/android/phone/CallModeler.java
@@ -20,6 +20,7 @@
import android.os.Handler;
import android.os.Message;
import android.os.SystemProperties;
+import android.telephony.DisconnectCause;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.util.Log;
@@ -38,7 +39,6 @@
import com.google.android.collect.Maps;
import com.google.android.collect.Sets;
import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.Lists;
@@ -555,8 +555,7 @@
changed = true;
}
- final Call.DisconnectCause newDisconnectCause =
- translateDisconnectCauseFromTelephony(connection.getDisconnectCause());
+ final int newDisconnectCause = connection.getDisconnectCause();
if (call.getDisconnectCause() != newDisconnectCause) {
call.setDisconnectCause(newDisconnectCause);
changed = true;
@@ -789,73 +788,6 @@
return retval;
}
- private final ImmutableMap<Connection.DisconnectCause, Call.DisconnectCause> CAUSE_MAP =
- ImmutableMap.<Connection.DisconnectCause, Call.DisconnectCause>builder()
- .put(Connection.DisconnectCause.BUSY, Call.DisconnectCause.BUSY)
- .put(Connection.DisconnectCause.CALL_BARRED, Call.DisconnectCause.CALL_BARRED)
- .put(Connection.DisconnectCause.CDMA_ACCESS_BLOCKED,
- Call.DisconnectCause.CDMA_ACCESS_BLOCKED)
- .put(Connection.DisconnectCause.CDMA_ACCESS_FAILURE,
- Call.DisconnectCause.CDMA_ACCESS_FAILURE)
- .put(Connection.DisconnectCause.CDMA_DROP, Call.DisconnectCause.CDMA_DROP)
- .put(Connection.DisconnectCause.CDMA_INTERCEPT, Call.DisconnectCause.CDMA_INTERCEPT)
- .put(Connection.DisconnectCause.CDMA_LOCKED_UNTIL_POWER_CYCLE,
- Call.DisconnectCause.CDMA_LOCKED_UNTIL_POWER_CYCLE)
- .put(Connection.DisconnectCause.CDMA_NOT_EMERGENCY,
- Call.DisconnectCause.CDMA_NOT_EMERGENCY)
- .put(Connection.DisconnectCause.CDMA_PREEMPTED, Call.DisconnectCause.CDMA_PREEMPTED)
- .put(Connection.DisconnectCause.CDMA_REORDER, Call.DisconnectCause.CDMA_REORDER)
- .put(Connection.DisconnectCause.CDMA_RETRY_ORDER,
- Call.DisconnectCause.CDMA_RETRY_ORDER)
- .put(Connection.DisconnectCause.CDMA_SO_REJECT, Call.DisconnectCause.CDMA_SO_REJECT)
- .put(Connection.DisconnectCause.CONGESTION, Call.DisconnectCause.CONGESTION)
- .put(Connection.DisconnectCause.CS_RESTRICTED, Call.DisconnectCause.CS_RESTRICTED)
- .put(Connection.DisconnectCause.CS_RESTRICTED_EMERGENCY,
- Call.DisconnectCause.CS_RESTRICTED_EMERGENCY)
- .put(Connection.DisconnectCause.CS_RESTRICTED_NORMAL,
- Call.DisconnectCause.CS_RESTRICTED_NORMAL)
- .put(Connection.DisconnectCause.ERROR_UNSPECIFIED,
- Call.DisconnectCause.ERROR_UNSPECIFIED)
- .put(Connection.DisconnectCause.FDN_BLOCKED, Call.DisconnectCause.FDN_BLOCKED)
- .put(Connection.DisconnectCause.ICC_ERROR, Call.DisconnectCause.ICC_ERROR)
- .put(Connection.DisconnectCause.INCOMING_MISSED,
- Call.DisconnectCause.INCOMING_MISSED)
- .put(Connection.DisconnectCause.INCOMING_REJECTED,
- Call.DisconnectCause.INCOMING_REJECTED)
- .put(Connection.DisconnectCause.INVALID_CREDENTIALS,
- Call.DisconnectCause.INVALID_CREDENTIALS)
- .put(Connection.DisconnectCause.INVALID_NUMBER,
- Call.DisconnectCause.INVALID_NUMBER)
- .put(Connection.DisconnectCause.LIMIT_EXCEEDED, Call.DisconnectCause.LIMIT_EXCEEDED)
- .put(Connection.DisconnectCause.LOCAL, Call.DisconnectCause.LOCAL)
- .put(Connection.DisconnectCause.LOST_SIGNAL, Call.DisconnectCause.LOST_SIGNAL)
- .put(Connection.DisconnectCause.MMI, Call.DisconnectCause.MMI)
- .put(Connection.DisconnectCause.NORMAL, Call.DisconnectCause.NORMAL)
- .put(Connection.DisconnectCause.NOT_DISCONNECTED,
- Call.DisconnectCause.NOT_DISCONNECTED)
- .put(Connection.DisconnectCause.NUMBER_UNREACHABLE,
- Call.DisconnectCause.NUMBER_UNREACHABLE)
- .put(Connection.DisconnectCause.OUT_OF_NETWORK, Call.DisconnectCause.OUT_OF_NETWORK)
- .put(Connection.DisconnectCause.OUT_OF_SERVICE, Call.DisconnectCause.OUT_OF_SERVICE)
- .put(Connection.DisconnectCause.POWER_OFF, Call.DisconnectCause.POWER_OFF)
- .put(Connection.DisconnectCause.SERVER_ERROR, Call.DisconnectCause.SERVER_ERROR)
- .put(Connection.DisconnectCause.SERVER_UNREACHABLE,
- Call.DisconnectCause.SERVER_UNREACHABLE)
- .put(Connection.DisconnectCause.TIMED_OUT, Call.DisconnectCause.TIMED_OUT)
- .put(Connection.DisconnectCause.UNOBTAINABLE_NUMBER,
- Call.DisconnectCause.UNOBTAINABLE_NUMBER)
- .build();
-
- private Call.DisconnectCause translateDisconnectCauseFromTelephony(
- Connection.DisconnectCause causeSource) {
-
- if (CAUSE_MAP.containsKey(causeSource)) {
- return CAUSE_MAP.get(causeSource);
- }
-
- return Call.DisconnectCause.UNKNOWN;
- }
-
/**
* Gets an existing callId for a connection, or creates one if none exists.
* This function does NOT set any of the Connection data onto the Call class.
diff --git a/src/com/android/phone/CallNotifier.java b/src/com/android/phone/CallNotifier.java
index 80807a2..aa4270e 100644
--- a/src/com/android/phone/CallNotifier.java
+++ b/src/com/android/phone/CallNotifier.java
@@ -46,6 +46,7 @@
import android.os.Vibrator;
import android.provider.CallLog.Calls;
import android.provider.Settings;
+import android.telephony.DisconnectCause;
import android.telephony.PhoneNumberUtils;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
@@ -899,7 +900,7 @@
mVoicePrivacyState = false;
Connection c = (Connection) r.result;
if (c != null) {
- log("onDisconnect: cause = " + c.getDisconnectCause()
+ log("onDisconnect: cause = " + DisconnectCause.toString(c.getDisconnectCause())
+ ", incoming = " + c.isIncoming()
+ ", date = " + c.getCreateTime());
} else {
@@ -974,34 +975,34 @@
// The "Busy" or "Congestion" tone is the highest priority:
if (c != null) {
- Connection.DisconnectCause cause = c.getDisconnectCause();
- if (cause == Connection.DisconnectCause.BUSY) {
+ int cause = c.getDisconnectCause();
+ if (cause == DisconnectCause.BUSY) {
if (DBG) log("- need to play BUSY tone!");
toneToPlay = InCallTonePlayer.TONE_BUSY;
- } else if (cause == Connection.DisconnectCause.CONGESTION) {
+ } else if (cause == DisconnectCause.CONGESTION) {
if (DBG) log("- need to play CONGESTION tone!");
toneToPlay = InCallTonePlayer.TONE_CONGESTION;
- } else if (((cause == Connection.DisconnectCause.NORMAL)
- || (cause == Connection.DisconnectCause.LOCAL))
+ } else if (((cause == DisconnectCause.NORMAL)
+ || (cause == DisconnectCause.LOCAL))
&& (mApplication.isOtaCallInActiveState())) {
if (DBG) log("- need to play OTA_CALL_END tone!");
toneToPlay = InCallTonePlayer.TONE_OTA_CALL_END;
- } else if (cause == Connection.DisconnectCause.CDMA_REORDER) {
+ } else if (cause == DisconnectCause.CDMA_REORDER) {
if (DBG) log("- need to play CDMA_REORDER tone!");
toneToPlay = InCallTonePlayer.TONE_REORDER;
- } else if (cause == Connection.DisconnectCause.CDMA_INTERCEPT) {
+ } else if (cause == DisconnectCause.CDMA_INTERCEPT) {
if (DBG) log("- need to play CDMA_INTERCEPT tone!");
toneToPlay = InCallTonePlayer.TONE_INTERCEPT;
- } else if (cause == Connection.DisconnectCause.CDMA_DROP) {
+ } else if (cause == DisconnectCause.CDMA_DROP) {
if (DBG) log("- need to play CDMA_DROP tone!");
toneToPlay = InCallTonePlayer.TONE_CDMA_DROP;
- } else if (cause == Connection.DisconnectCause.OUT_OF_SERVICE) {
+ } else if (cause == DisconnectCause.OUT_OF_SERVICE) {
if (DBG) log("- need to play OUT OF SERVICE tone!");
toneToPlay = InCallTonePlayer.TONE_OUT_OF_SERVICE;
- } else if (cause == Connection.DisconnectCause.UNOBTAINABLE_NUMBER) {
+ } else if (cause == DisconnectCause.UNOBTAINABLE_NUMBER) {
if (DBG) log("- need to play TONE_UNOBTAINABLE_NUMBER tone!");
toneToPlay = InCallTonePlayer.TONE_UNOBTAINABLE_NUMBER;
- } else if (cause == Connection.DisconnectCause.ERROR_UNSPECIFIED) {
+ } else if (cause == DisconnectCause.ERROR_UNSPECIFIED) {
if (DBG) log("- DisconnectCause is ERROR_UNSPECIFIED: play TONE_CALL_ENDED!");
toneToPlay = InCallTonePlayer.TONE_CALL_ENDED;
}
@@ -1017,9 +1018,9 @@
if ((toneToPlay == InCallTonePlayer.TONE_NONE)
&& (mCM.getState() == PhoneConstants.State.IDLE)
&& (c != null)) {
- Connection.DisconnectCause cause = c.getDisconnectCause();
- if ((cause == Connection.DisconnectCause.NORMAL) // remote hangup
- || (cause == Connection.DisconnectCause.LOCAL)) { // local hangup
+ int cause = c.getDisconnectCause();
+ if ((cause == DisconnectCause.NORMAL) // remote hangup
+ || (cause == DisconnectCause.LOCAL)) { // local hangup
if (VDBG) log("- need to play CALL_ENDED tone!");
toneToPlay = InCallTonePlayer.TONE_CALL_ENDED;
mIsCdmaRedialCall = false;
@@ -1055,9 +1056,9 @@
}
final long date = c.getCreateTime();
- final Connection.DisconnectCause cause = c.getDisconnectCause();
+ final int cause = c.getDisconnectCause();
final boolean missedCall = c.isIncoming() &&
- (cause == Connection.DisconnectCause.INCOMING_MISSED);
+ (cause == DisconnectCause.INCOMING_MISSED);
if (missedCall) {
// Show the "Missed call" notification.
// (Note we *don't* do this if this was an incoming call that
@@ -1086,10 +1087,10 @@
if (((mPreviousCdmaCallState == Call.State.DIALING)
|| (mPreviousCdmaCallState == Call.State.ALERTING))
&& (!isEmergencyNumber)
- && (cause != Connection.DisconnectCause.INCOMING_MISSED )
- && (cause != Connection.DisconnectCause.NORMAL)
- && (cause != Connection.DisconnectCause.LOCAL)
- && (cause != Connection.DisconnectCause.INCOMING_REJECTED)) {
+ && (cause != DisconnectCause.INCOMING_MISSED )
+ && (cause != DisconnectCause.NORMAL)
+ && (cause != DisconnectCause.LOCAL)
+ && (cause != DisconnectCause.INCOMING_REJECTED)) {
if (!mIsCdmaRedialCall) {
if (autoretrySetting == InCallScreen.AUTO_RETRY_ON) {
// TODO: (Moto): The contact reference data may need to be stored and use
diff --git a/src/com/android/phone/EmergencyCallHelper.java b/src/com/android/phone/EmergencyCallHelper.java
index 47f0e54..74ce088 100644
--- a/src/com/android/phone/EmergencyCallHelper.java
+++ b/src/com/android/phone/EmergencyCallHelper.java
@@ -29,6 +29,7 @@
import android.os.PowerManager;
import android.os.UserHandle;
import android.provider.Settings;
+import android.telephony.DisconnectCause;
import android.telephony.ServiceState;
import android.util.Log;
@@ -234,11 +235,12 @@
*/
private void onDisconnect(Message msg) {
Connection conn = (Connection) ((AsyncResult) msg.obj).result;
- Connection.DisconnectCause cause = conn.getDisconnectCause();
+ int cause = conn.getDisconnectCause();
if (DBG) log("onDisconnect: connection '" + conn
- + "', addr '" + conn.getAddress() + "', cause = " + cause);
+ + "', addr '" + conn.getAddress()
+ + "', cause = " + DisconnectCause.toString(cause));
- if (cause == Connection.DisconnectCause.OUT_OF_SERVICE) {
+ if (cause == DisconnectCause.OUT_OF_SERVICE) {
// Wait a bit more and try again (or just bail out totally if
// we've had too many failures.)
if (DBG) log("- onDisconnect: OUT_OF_SERVICE, need to retry...");