OSDN Git Service

Ensure self-managed calls use voip audio mode.
authorTyler Gunn <tgunn@google.com>
Thu, 24 May 2018 17:44:44 +0000 (10:44 -0700)
committerTyler Gunn <tgunn@google.com>
Thu, 24 May 2018 17:44:44 +0000 (10:44 -0700)
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

telecomm/java/android/telecom/ConnectionService.java

index 2fdbc71..4045eea 100644 (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();
         }