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

Commit 47e1d62f authored by Sandeep Gutta's avatar Sandeep Gutta Committed by Ricardo Cerqueira
Browse files

MSIM: Send FINISH request on flex map START fail

When flex map START request fails
send FINISH with failure status.

- While sending FINISH pass new RAF/modem Uuid
 if overall request is success.

- Treat null radio capability response received for
 phase finish due to SSR as valid.

Change-Id: Iad23b8a0d72430bc22e3b7f8c576370cbb4eae5f
CRs-Fixed: 1001601
parent 0146752e
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -361,7 +361,10 @@ public class ProxyController {
    private void onStartRadioCapabilityResponse(Message msg) {
        synchronized (mSetRadioAccessFamilyStatus) {
            AsyncResult ar = (AsyncResult)msg.obj;
            if (ar.exception != null) {
            // Abort here only in Single SIM case, in Multi SIM cases
            // send FINISH with failure so that below layers can do
            // fall back to proper states.
            if ((TelephonyManager.getDefault().getPhoneCount() == 1) && (ar.exception != null)) {
                // just abort now.  They didn't take our start so we don't have to revert
                logd("onStartRadioCapabilityResponse got exception=" + ar.exception);
                mRadioCapabilitySessionId = mUniqueIdGenerator.getAndIncrement();
@@ -496,7 +499,7 @@ public class ProxyController {
     */
    void onFinishRadioCapabilityResponse(Message msg) {
        RadioCapability rc = (RadioCapability) ((AsyncResult) msg.obj).result;
        if ((rc == null) || (rc.getSession() != mRadioCapabilitySessionId)) {
        if ((rc != null) && (rc.getSession() != mRadioCapabilitySessionId)) {
            logd("onFinishRadioCapabilityResponse: Ignore session=" + mRadioCapabilitySessionId
                    + " rc=" + rc);
            return;
@@ -545,8 +548,10 @@ public class ProxyController {
                        i,
                        sessionId,
                        RadioCapability.RC_PHASE_FINISH,
                        mOldRadioAccessFamily[i],
                        mCurrentLogicalModemIds[i],
                        (mTransactionFailed ? mOldRadioAccessFamily[i] :
                        mNewRadioAccessFamily[i]),
                        (mTransactionFailed ? mCurrentLogicalModemIds[i] :
                        mNewLogicalModemIds[i]),
                        (mTransactionFailed ? RadioCapability.RC_STATUS_FAIL :
                        RadioCapability.RC_STATUS_SUCCESS),
                        EVENT_FINISH_RC_RESPONSE);