diff options
author | Sandeep Gutta <sangutta@codeaurora.org> | 2016-04-04 12:23:57 +0530 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-07-02 10:55:01 -0700 |
commit | 8ea51be3ad25c0b507db031db0147155272130ce (patch) | |
tree | 3241d29d6399e4808765d6d35a49dbb3b27d27f4 | |
parent | 3e12eb4dbb2323bb50ca9c6595b2520e16598e1e (diff) | |
download | android_frameworks_opt_telephony-8ea51be3ad25c0b507db031db0147155272130ce.tar.gz android_frameworks_opt_telephony-8ea51be3ad25c0b507db031db0147155272130ce.tar.bz2 android_frameworks_opt_telephony-8ea51be3ad25c0b507db031db0147155272130ce.zip |
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
-rw-r--r-- | src/java/com/android/internal/telephony/ProxyController.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/java/com/android/internal/telephony/ProxyController.java b/src/java/com/android/internal/telephony/ProxyController.java index b39c37d24..5c1823ab1 100644 --- a/src/java/com/android/internal/telephony/ProxyController.java +++ b/src/java/com/android/internal/telephony/ProxyController.java @@ -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); |