Cleanup and remove call if ConnectionService crashes
Make sure that call is removed from CallsManager if its
ConnectionService crashes.
Verified fix with TestConnectionManager.
Bug: 18262469
Change-Id: Idae71186b6547cb5a4c89e273c779eef030a2952
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 57b9e8e..79f0c42 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -845,7 +845,10 @@
if (service != null) {
for (Call call : mCalls) {
if (call.getConnectionService() == service) {
- markCallAsDisconnected(call, new DisconnectCause(DisconnectCause.ERROR));
+ if (call.getState() != CallState.DISCONNECTED) {
+ markCallAsDisconnected(call, new DisconnectCause(DisconnectCause.ERROR));
+ }
+ markCallAsRemoved(call);
}
}
}