diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/services/telephony/TelephonyConnectionService.java | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java index 543e9340be..6f579b910e 100644 --- a/src/com/android/services/telephony/TelephonyConnectionService.java +++ b/src/com/android/services/telephony/TelephonyConnectionService.java @@ -150,12 +150,23 @@ public class TelephonyConnectionService extends ConnectionService { handleTtyModeChange(isTtyNowEnabled); } } else if (ACTION_MSIM_VOICE_CAPABILITY_CHANGED.equals(action)) { - // Add extra to call if answering this incoming call would cause an in progress + // Add extra to calls if answering one of incoming call would cause an in progress // call on another subscription to be disconnected. - Connection ringingConnection = getRingingConnection(); - if (ringingConnection != null) { - maybeIndicateAnsweringWillDisconnect((TelephonyConnection)ringingConnection, - ringingConnection.getPhoneAccountHandle()); + for (Connection current : getAllConnections()) { + if (isTelephonyConnection(current) && + current.getState() == Connection.STATE_RINGING) { + maybeIndicateAnsweringWillDisconnect((TelephonyConnection)current, + current.getPhoneAccountHandle()); + } + } + + // Update context based switch based on the DSDA/DSDS scenario + final boolean shallDisableContextBasedSwap = isConcurrentCallsPossible(); + for (Connection current : getAllConnections()) { + if (current instanceof TelephonyConnection) { + ((TelephonyConnection) current).disableContextBasedSwap( + shallDisableContextBasedSwap); + } } } } |