aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSandeep Gutta <sangutta@codeaurora.org>2016-04-04 12:23:57 +0530
committerSteve Kondik <steve@cyngn.com>2016-07-02 10:55:01 -0700
commit8ea51be3ad25c0b507db031db0147155272130ce (patch)
tree3241d29d6399e4808765d6d35a49dbb3b27d27f4
parent3e12eb4dbb2323bb50ca9c6595b2520e16598e1e (diff)
downloadandroid_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.java13
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);