Ensure self-managed calls use voip audio mode.

Although Telecom ensures that new calls use voip audio mode, the default
value from a Connection would override the Telecom default.

Bug: 76362663
Test: Modify test app to ensure it does not set voip audio mode, ensure
Telecom uses voip audio mode for new calls.

Change-Id: Ie6477659cf6dabd08f371d4958ece1d258cd3106
This commit is contained in:
Tyler Gunn
2018-05-24 10:44:44 -07:00
parent 00c0a5bb23
commit f2e08b4c2c

View File

@@ -1531,6 +1531,14 @@ public abstract class ConnectionService extends Service {
new DisconnectCause(DisconnectCause.ERROR, "IMPL_RETURNED_NULL_CONNECTION"));
}
boolean isSelfManaged =
(connection.getConnectionProperties() & Connection.PROPERTY_SELF_MANAGED)
== Connection.PROPERTY_SELF_MANAGED;
// Self-managed Connections should always use voip audio mode; we default here so that the
// local state within the ConnectionService matches the default we assume in Telecom.
if (isSelfManaged) {
connection.setAudioModeIsVoip(true);
}
connection.setTelecomCallId(callId);
if (connection.getState() != Connection.STATE_DISCONNECTED) {
addConnection(callId, connection);
@@ -1570,9 +1578,7 @@ public abstract class ConnectionService extends Service {
createIdList(connection.getConferenceables()),
connection.getExtras()));
if (isIncoming && request.shouldShowIncomingCallUi() &&
(connection.getConnectionProperties() & Connection.PROPERTY_SELF_MANAGED) ==
Connection.PROPERTY_SELF_MANAGED) {
if (isIncoming && request.shouldShowIncomingCallUi() && isSelfManaged) {
// Tell ConnectionService to show its incoming call UX.
connection.onShowIncomingCallUi();
}