Merge "Handle the case when Telecom rejects an incoming call" am: 63632b5bd2 am: 1ded86c4b0
am: c9831e87be

Change-Id: Id60375c6e5946122dce279d2d4b2c3a0c15469cd
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 2d96c6b..8de8c03 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -938,6 +938,23 @@
     }
 
     @Override
+    public void onCreateIncomingConnectionFailed(PhoneAccountHandle connectionManagerPhoneAccount,
+            ConnectionRequest request) {
+        Phone phone = getPhoneForAccount(request.getAccountHandle(), false, null);
+        Call ringingCall = phone.getRingingCall();
+        if (ringingCall.isRinging()) {
+            try {
+                Log.i(this, "onCreateIncomingConnectionFailed: hanging up ringing call "
+                        + ringingCall);
+                ringingCall.hangup();
+            } catch (CallStateException e) {
+                Log.w(this, "onCreateIncomingConnectionFailed: couldn't hang up ringing call "
+                        + ringingCall);
+            }
+        }
+    }
+
+    @Override
     public void triggerConferenceRecalculate() {
         if (mTelephonyConferenceController.shouldRecalculate()) {
             mTelephonyConferenceController.recalculate();