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

Commit f5c40fc1 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Fix potential call crashes in Telephony." am: b2fbbe16 am: dbde955b

Change-Id: Ib855dd0a98996b575ee4a3f3eded95b096039aa6
parents cd906d20 dbde955b
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -848,28 +848,33 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
        boolean holdBeforeDial = prepareForDialing(dialArgs);

        mClirMode = clirMode;

        ImsPhoneConnection pendingConnection;
        synchronized (mSyncHold) {
            mLastDialArgs = dialArgs;
            mPendingMO = new ImsPhoneConnection(mPhone,
            pendingConnection = new ImsPhoneConnection(mPhone,
                    participantsToDial, this, mForegroundCall,
                    false);
            mPendingMO.setVideoState(videoState);
            // Don't rely on the mPendingMO in this method; if the modem calls back through
            // onCallProgressing, we'll end up nulling out mPendingMO, which means that
            // TelephonyConnectionService would treat this call as an MMI code, which it is not,
            // which would mean that the MMI code dialog would crash.
            mPendingMO = pendingConnection;
            pendingConnection.setVideoState(videoState);
            if (dialArgs.rttTextStream != null) {
                log("startConference: setting RTT stream on mPendingMO");
                mPendingMO.setCurrentRttTextStream(dialArgs.rttTextStream);
                pendingConnection.setCurrentRttTextStream(dialArgs.rttTextStream);
            }
        }
        addConnection(mPendingMO);
        addConnection(pendingConnection);

        if (!holdBeforeDial) {
            dialInternal(mPendingMO, clirMode, videoState, dialArgs.intentExtras);
            dialInternal(pendingConnection, clirMode, videoState, dialArgs.intentExtras);
        }

        updatePhoneState();
        mPhone.notifyPreciseCallStateChanged();

        return mPendingMO;
        return pendingConnection;
    }

    @UnsupportedAppUsage