Do not show error for a canceled call.

Bug: 17067923
Change-Id: I89bcd3fd743da544957bc2af59126edf5a44548b
diff --git a/src/com/android/incallui/CallList.java b/src/com/android/incallui/CallList.java
index 66103e6..59ac076 100644
--- a/src/com/android/incallui/CallList.java
+++ b/src/com/android/incallui/CallList.java
@@ -429,7 +429,8 @@
                 break;
             case DisconnectCause.INCOMING_REJECTED:
             case DisconnectCause.INCOMING_MISSED:
-                // no delay for missed/rejected incoming calls
+            case DisconnectCause.OUTGOING_CANCELED:
+                // no delay for missed/rejected incoming calls and canceled outgoing calls.
                 delay = 0;
                 break;
             default:
diff --git a/src/com/android/incallui/InCallActivity.java b/src/com/android/incallui/InCallActivity.java
index 1f7db58..679c87c 100644
--- a/src/com/android/incallui/InCallActivity.java
+++ b/src/com/android/incallui/InCallActivity.java
@@ -657,12 +657,17 @@
             case DisconnectCause.CS_RESTRICTED_NORMAL:
                 return R.string.callFailed_dsac_restricted_normal;
             case DisconnectCause.OUTGOING_FAILURE:
-            case DisconnectCause.OUTGOING_CANCELED:
                 // We couldn't successfully place the call; there was some
                 // failure in the telephony layer.
                 // TODO: Need UI spec for this failure case; for now just
                 // show a generic error.
                 return R.string.incall_error_call_failed;
+            case DisconnectCause.OUTGOING_CANCELED:
+                // We don't want to show any dialog for the canceled case since the call was
+                // either canceled by the user explicitly (end-call button pushed immediately)
+                // or some other app canceled the call and immediately issued a new CALL to
+                // replace it.
+                return INVALID_RES_ID;
             case DisconnectCause.POWER_OFF:
                 // Radio is explictly powered off, presumably because the
                 // device is in airplane mode.