Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4f2ac89 authored by Tyler Gunn's avatar Tyler Gunn
Browse files

Correct issue where conference calls were triggering anomalies.

Conference and their children (existing connections) do not undergo the
full "create connection complete" process like other connections do.
Therefore we can set the create connection complete attribute on the
associated calls to "true" right away.  This was an oversight in the
original implementation.

Test: Start conference call on device; verify that no anomaly and state
timeout takes place.
Fixes: 269920125

Change-Id: Ie99f7d8834bf68661904c7f3fae2b15484702847
parent 065ebfb9
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -1551,6 +1551,8 @@ public class CallsManager extends Call.ListenerBase
            // transactional calls should skip Call#startCreateConnection below
            // as that is meant for Call objects with a ConnectionServiceWrapper
            call.setState(CallState.RINGING, "explicitly set new incoming to ringing");
            // Transactional calls don't get created via a connection service; they are added now.
            call.setIsCreateConnectionComplete(true);
            addCall(call);
        } else {
            call.startCreateConnection(mPhoneAccountRegistrar);
@@ -3930,7 +3932,11 @@ public class CallsManager extends Call.ListenerBase
                connectElapsedTime,
                mClockProxy,
                mToastFactory);
        notifyCallCreated(call);

        // Unlike connections, conferences are not created first and then notified as create
        // connection complete from the CS.  They originate from the CS and are reported directly to
        // telecom where they're added (see below).
        call.setIsCreateConnectionComplete(true);

        setCallState(call, Call.getStateFromConnectionState(parcelableConference.getState()),
                "new conference call");
@@ -4989,6 +4995,9 @@ public class CallsManager extends Call.ListenerBase
                call.setParentCall(parentCall);
            }
        }
        // Existing connections originate from a connection service, so they are completed creation
        // by the ConnectionService implicitly.
        call.setIsCreateConnectionComplete(true);
        addCall(call);
        if (parentCall != null) {
            // Now, set the call as a child of the parent since it has been added to Telecom.  This