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

Commit d45e0852 authored by Shriram Ganesh's avatar Shriram Ganesh Committed by Amit Mahajan
Browse files

Fix incorrect call radio type on UI during silent redial

When handover takes place, the ImsPhoneConnection objects
attached to the handover call are not cleaned up until the call
ends on the CS pipe after handover. As a result, the stale object
keeps updating UI on the IMS registration state. This causes the
call UI to show WiFi call when the call is on CS. The fix here is
to clean up the ImsPhoneConnection objects as soon as they are
mapped to CS connections upon handover.

Bug: 29551456
Change-Id: Iafa668c29c9501d6c3845327a9b19458dbfdd84e
parent 6a012a49
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -741,6 +741,7 @@ public class GsmCdmaCallTracker extends CallTracker {
        boolean hasAnyCallDisconnected = false;
        boolean needsPollDelay = false;
        boolean unknownConnectionAppeared = false;
        int handoverConnectionsSize = mHandoverConnections.size();

        //CDMA
        boolean noConnectionExists = true;
@@ -1066,6 +1067,13 @@ public class GsmCdmaCallTracker extends CallTracker {
            mPhone.notifyPreciseCallStateChanged();
        }

        // If all handover connections are mapped during this poll process clean it up
        if (handoverConnectionsSize > 0 && mHandoverConnections.size() == 0) {
            Phone imsPhone = mPhone.getImsPhone();
            if (imsPhone != null) {
                imsPhone.callEndCleanupHandOverCallIfAny();
            }
        }
        //dumpState();
    }

+1 −0
Original line number Diff line number Diff line
@@ -1009,6 +1009,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
            if (DBG) log("callEndCleanupHandOverCallIfAny, mHandoverCall.mConnections="
                    + mHandoverCall.mConnections);
            mHandoverCall.mConnections.clear();
            mConnections.clear();
            mState = PhoneConstants.State.IDLE;
        }
    }