Add more disconnect causes 2/4
Bug: 15692074
Change-Id: Ib94c33fac8450b70e53dbe12d71f41777e9e140c
diff --git a/src/com/android/telecomm/Call.java b/src/com/android/telecomm/Call.java
index c5c0487..b434ac3 100644
--- a/src/com/android/telecomm/Call.java
+++ b/src/com/android/telecomm/Call.java
@@ -623,7 +623,7 @@
mCreateConnectionProcessor = null;
if (mIsIncoming) {
clearConnectionService();
- setDisconnectCause(DisconnectCause.ERROR_UNSPECIFIED, null);
+ setDisconnectCause(DisconnectCause.OUTGOING_CANCELED, null);
setState(CallState.DISCONNECTED);
Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
diff --git a/src/com/android/telecomm/ConnectionServiceWrapper.java b/src/com/android/telecomm/ConnectionServiceWrapper.java
index 946ecb0..a78f928 100644
--- a/src/com/android/telecomm/ConnectionServiceWrapper.java
+++ b/src/com/android/telecomm/ConnectionServiceWrapper.java
@@ -102,13 +102,10 @@
ConnectionRequest request = (ConnectionRequest) args.arg1;
int statusCode = args.argi1;
String statusMsg = (String) args.arg2;
- if (mPendingResponses.containsKey(request.getCallId())) {
- mPendingResponses.remove(request.getCallId())
- .handleCreateConnectionFailed(statusCode, statusMsg);
- mCallIdMapper.removeCall(request.getCallId());
- } else {
- //Log.w(this, "handleCreateConnectionFailed, unknown call: %s", callId);
- }
+ removeCall(
+ mCallIdMapper.getCall(request.getCallId()),
+ statusCode,
+ statusMsg);
} finally {
args.recycle();
}
@@ -591,14 +588,14 @@
} catch (RemoteException e) {
Log.e(this, e, "Failure to createConnection -- %s", getComponentName());
mPendingResponses.remove(callId).handleCreateConnectionFailed(
- DisconnectCause.ERROR_UNSPECIFIED, e.toString());
+ DisconnectCause.OUTGOING_FAILURE, e.toString());
}
}
@Override
public void onFailure() {
Log.e(this, new Exception(), "Failure to call %s", getComponentName());
- response.handleCreateConnectionFailed(DisconnectCause.ERROR_UNSPECIFIED, null);
+ response.handleCreateConnectionFailed(DisconnectCause.OUTGOING_FAILURE, null);
}
};
@@ -619,7 +616,7 @@
}
}
- removeCall(call);
+ removeCall(call, DisconnectCause.LOCAL, null);
}
/** @see ConnectionService#hold(String) */
@@ -727,9 +724,13 @@
}
void removeCall(Call call) {
+ removeCall(call, DisconnectCause.ERROR_UNSPECIFIED, null);
+ }
+
+ void removeCall(Call call, int disconnectCause, String disconnectMessage) {
CreateConnectionResponse response = mPendingResponses.remove(mCallIdMapper.getCallId(call));
if (response != null) {
- response.handleCreateConnectionFailed(DisconnectCause.ERROR_UNSPECIFIED, null);
+ response.handleCreateConnectionFailed(disconnectCause, disconnectMessage);
}
mCallIdMapper.removeCall(call);
diff --git a/src/com/android/telecomm/CreateConnectionProcessor.java b/src/com/android/telecomm/CreateConnectionProcessor.java
index 5969b46..a0cb688 100644
--- a/src/com/android/telecomm/CreateConnectionProcessor.java
+++ b/src/com/android/telecomm/CreateConnectionProcessor.java
@@ -38,7 +38,7 @@
private List<PhoneAccountHandle> mPhoneAccountHandles;
private Iterator<PhoneAccountHandle> mPhoneAccountHandleIterator;
private CreateConnectionResponse mResponse;
- private int mLastErrorCode = DisconnectCause.ERROR_UNSPECIFIED;
+ private int mLastErrorCode = DisconnectCause.OUTGOING_FAILURE;
private String mLastErrorMsg;
CreateConnectionProcessor(