summaryrefslogtreecommitdiffstats
path: root/src/com/android/server/telecom/CallsManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/server/telecom/CallsManager.java')
-rw-r--r--src/com/android/server/telecom/CallsManager.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 1ee888b9..c44e4fab 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -2289,6 +2289,12 @@ public class CallsManager extends Call.ListenerBase
handoverTo.sendCallEvent(android.telecom.Call.EVENT_HANDOVER_COMPLETE, null);
answerCall(handoverTo, handoverTo.getVideoState());
call.markFinishedHandoverStateAndCleanup(HandoverState.HANDOVER_COMPLETE);
+
+ // If the call we handed over to is self-managed, we need to disconnect the calls for other
+ // ConnectionServices.
+ if (handoverTo.isSelfManaged()) {
+ disconnectOtherCalls(handoverTo.getTargetPhoneAccount());
+ }
}
private void rejectHandoverTo(Call handoverTo) {
@@ -2327,6 +2333,11 @@ public class CallsManager extends Call.ListenerBase
// Disconnect the call we handed over from.
disconnectCall(handoverFrom);
+ // If we handed over to a self-managed ConnectionService, we need to disconnect calls for
+ // other ConnectionServices.
+ if (handoverTo.isSelfManaged()) {
+ disconnectOtherCalls(handoverTo.getTargetPhoneAccount());
+ }
}
private void updateCanAddCall() {