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

Commit cf18b6a1 authored by Shriram Ganesh's avatar Shriram Ganesh Committed by Hariprasad Jayakumar
Browse files

Added support for conference call SRVCC

1. Clear all handover connections that match state of CS connection
during SRVCC. This leads to the remaining DC calls take the route
of phantom call.

2. Fix the issue of Disconnected Connections not being removed from
ImsPhoneCall

Change-Id: I0268d511c6418d5a5a161e16f1e5bb3350b47868
CRs-Fixed: 756415
parent 7f4305fb
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
import android.telephony.gsm.GsmCellLocation;
import android.util.EventLog;
import java.util.Iterator;
import android.telephony.Rlog;

import com.android.internal.telephony.Call;
@@ -494,9 +495,15 @@ public final class GsmCallTracker extends CallTracker {
                    if (hoConnection != null) {
                        // Single Radio Voice Call Continuity (SRVCC) completed
                        mConnections[i].migrateFrom(hoConnection);
                        if (!hoConnection.isMultiparty()) {
                            // Remove only if it is not multiparty
                            mHandoverConnections.remove(hoConnection);
                        for (Iterator<Connection> it = mHandoverConnections.iterator();
                            it.hasNext();) {
                            Connection c = it.next();
                            Rlog.i(LOG_TAG, "HO Conn state is " + c.mPreHandoverState);
                            if (c.mPreHandoverState == mConnections[i].getState()) {
                                Rlog.i(LOG_TAG, "Removing HO conn "
                                    + hoConnection + c.mPreHandoverState);
                                it.remove();
                            }
                        }
                        mPhone.notifyHandoverStateChanged(mConnections[i]);
                    } else if ( mConnections[i].getCall() == mRingingCall ) { // it's a ringing call