Fix NPE when disconnect cause wasn't set

Ensure DisconnectCause is set when fail to make a call.

Bug:17681453
Change-Id: I31466dd6c7d71cec5ee5c44789fd30bbef80017d
diff --git a/src/com/android/server/telecom/CreateConnectionProcessor.java b/src/com/android/server/telecom/CreateConnectionProcessor.java
index 6adb72c..6aae49b 100644
--- a/src/com/android/server/telecom/CreateConnectionProcessor.java
+++ b/src/com/android/server/telecom/CreateConnectionProcessor.java
@@ -176,7 +176,8 @@
         } else {
             Log.v(this, "attemptNextPhoneAccount, no more accounts, failing");
             if (mResponse != null) {
-                mResponse.handleCreateConnectionFailure(mLastErrorDisconnectCause);
+                mResponse.handleCreateConnectionFailure(mLastErrorDisconnectCause != null ?
+                        mLastErrorDisconnectCause : new DisconnectCause(DisconnectCause.ERROR));
                 mResponse = null;
                 mCall.clearConnectionService();
             }
diff --git a/src/com/android/server/telecom/InCallToneMonitor.java b/src/com/android/server/telecom/InCallToneMonitor.java
index b71a102..32d0924 100644
--- a/src/com/android/server/telecom/InCallToneMonitor.java
+++ b/src/com/android/server/telecom/InCallToneMonitor.java
@@ -42,7 +42,7 @@
             return;
         }
 
-        if (newState == CallState.DISCONNECTED) {
+        if (newState == CallState.DISCONNECTED && call.getDisconnectCause() != null) {
             int toneToPlay = InCallTonePlayer.TONE_INVALID;
 
             Log.v(this, "Disconnect cause: %s.", call.getDisconnectCause());