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

Commit 0c12dfd5 authored by Muralidhar Reddy's avatar Muralidhar Reddy
Browse files

[MEP] Logical slot index value is not proper when slot/port is inactive

P20/B5 modem there is a specific code design that the logical slot index cannot be relied on if the slot is inactive, so better to always check that active/inactive value.

Test: build, atest FrameworksTelephonyTests
Bug: 209035150
Change-Id: I1e293ebd3b93a9d7256f4642d6cc6db9bef5f148
parent 61e6e280
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -4398,7 +4398,10 @@ public class RILUtils {
                for (int i = 0; i < portCount; i++) {
                    IccSimPortInfo simPortInfo = new IccSimPortInfo();
                    simPortInfo.mIccId = slotStatus.portInfo[i].iccId;
                    simPortInfo.mLogicalSlotIndex = slotStatus.portInfo[i].logicalSlotId;
                    // If port is not active, set invalid logical slot index(-1) irrespective of
                    // the modem response. For more info, check http://b/209035150
                    simPortInfo.mLogicalSlotIndex = slotStatus.portInfo[i].portActive
                            ? slotStatus.portInfo[i].logicalSlotId : -1;
                    simPortInfo.mPortActive = slotStatus.portInfo[i].portActive;
                    iccSlotStatus.mSimPortInfos[i] = simPortInfo;
                }
@@ -4420,8 +4423,11 @@ public class RILUtils {
                iccSlotStatus.mSimPortInfos = new IccSimPortInfo[1];
                IccSimPortInfo simPortInfo = new IccSimPortInfo();
                simPortInfo.mIccId = slotStatus.base.iccid;
                simPortInfo.mLogicalSlotIndex = slotStatus.base.logicalSlotId;
                simPortInfo.mPortActive = (slotStatus.base.slotState == IccSlotStatus.STATE_ACTIVE);
                // If port/slot is not active, set invalid logical slot index(-1) irrespective of
                // the modem response. For more info, check http://b/209035150
                simPortInfo.mLogicalSlotIndex = simPortInfo.mPortActive
                        ? slotStatus.base.logicalSlotId : -1;
                iccSlotStatus.mSimPortInfos[TelephonyManager.DEFAULT_PORT_INDEX] = simPortInfo;
                iccSlotStatus.atr = slotStatus.base.atr;
                iccSlotStatus.eid = slotStatus.eid;
@@ -4441,8 +4447,11 @@ public class RILUtils {
                iccSlotStatus.mSimPortInfos = new IccSimPortInfo[1];
                IccSimPortInfo simPortInfo = new IccSimPortInfo();
                simPortInfo.mIccId = slotStatus.iccid;
                simPortInfo.mLogicalSlotIndex = slotStatus.logicalSlotId;
                simPortInfo.mPortActive = (slotStatus.slotState == IccSlotStatus.STATE_ACTIVE);
                // If port/slot is not active, set invalid logical slot index(-1) irrespective of
                // the modem response. For more info, check http://b/209035150
                simPortInfo.mLogicalSlotIndex = simPortInfo.mPortActive
                        ? slotStatus.logicalSlotId : -1;
                iccSlotStatus.mSimPortInfos[TelephonyManager.DEFAULT_PORT_INDEX] = simPortInfo;
                iccSlotStatus.atr = slotStatus.atr;
                response.add(iccSlotStatus);