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());