Loading src/java/com/android/internal/telephony/RadioResponse.java +65 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,15 @@ public class RadioResponse extends IRadioResponse.Stub { responseIccCardStatus_1_4(responseInfo, cardStatus); } /** * @param responseInfo Response info struct containing response type, serial no. and error * @param cardStatus ICC card status as defined by CardStatus in 1.5/types.hal */ public void getIccCardStatusResponse_1_5(RadioResponseInfo responseInfo, android.hardware.radio.V1_5.CardStatus cardStatus) { responseIccCardStatus_1_5(responseInfo, cardStatus); } /** * @param responseInfo Response info struct containing response type, serial no. and error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. Loading Loading @@ -1677,6 +1686,48 @@ public class RadioResponse extends IRadioResponse.Stub { return iccCardStatus; } private IccCardStatus convertHalCardStatus_1_5( android.hardware.radio.V1_5.CardStatus cardStatus) { IccCardStatus iccCardStatus = new IccCardStatus(); iccCardStatus.setCardState(cardStatus.base.base.base.cardState); iccCardStatus.setUniversalPinState(cardStatus.base.base.base.universalPinState); iccCardStatus.mGsmUmtsSubscriptionAppIndex = cardStatus.base.base.base.gsmUmtsSubscriptionAppIndex; iccCardStatus.mCdmaSubscriptionAppIndex = cardStatus.base.base.base.cdmaSubscriptionAppIndex; iccCardStatus.mImsSubscriptionAppIndex = cardStatus.base.base.base.imsSubscriptionAppIndex; iccCardStatus.physicalSlotIndex = cardStatus.base.base.physicalSlotId; iccCardStatus.atr = cardStatus.base.base.atr; iccCardStatus.iccid = cardStatus.base.base.iccid; iccCardStatus.eid = cardStatus.base.eid; int numApplications = cardStatus.applications.size(); // limit to maximum allowed applications if (numApplications > com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS) { numApplications = com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS; } iccCardStatus.mApplications = new IccCardApplicationStatus[numApplications]; for (int i = 0; i < numApplications; i++) { android.hardware.radio.V1_5.AppStatus rilAppStatus = cardStatus.applications.get(i); IccCardApplicationStatus appStatus = new IccCardApplicationStatus(); appStatus.app_type = appStatus.AppTypeFromRILInt(rilAppStatus.base.appType); appStatus.app_state = appStatus.AppStateFromRILInt(rilAppStatus.base.appState); appStatus.perso_substate = appStatus.PersoSubstateFromRILInt( rilAppStatus.persoSubstate); appStatus.aid = rilAppStatus.base.aidPtr; appStatus.app_label = rilAppStatus.base.appLabelPtr; appStatus.pin1_replaced = rilAppStatus.base.pin1Replaced; appStatus.pin1 = appStatus.PinStateFromRILInt(rilAppStatus.base.pin1); appStatus.pin2 = appStatus.PinStateFromRILInt(rilAppStatus.base.pin2); iccCardStatus.mApplications[i] = appStatus; mRil.riljLog("IccCardApplicationStatus " + i + ":" + appStatus.toString()); } return iccCardStatus; } private void responseIccCardStatus(RadioResponseInfo responseInfo, CardStatus cardStatus) { RILRequest rr = mRil.processResponse(responseInfo); Loading Loading @@ -1725,6 +1776,20 @@ public class RadioResponse extends IRadioResponse.Stub { } } private void responseIccCardStatus_1_5(RadioResponseInfo responseInfo, android.hardware.radio.V1_5.CardStatus cardStatus) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { IccCardStatus iccCardStatus = convertHalCardStatus_1_5(cardStatus); mRil.riljLog("responseIccCardStatus: from HIDL: " + iccCardStatus); if (responseInfo.error == RadioError.NONE) { sendMessageResponse(rr.mResult, iccCardStatus); } mRil.processResponseDone(rr, responseInfo, iccCardStatus); } } /** * @param responseInfo Response info struct containing response type, serial no. and error */ Loading src/java/com/android/internal/telephony/uicc/IccCardApplicationStatus.java +19 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,16 @@ public class IccCardApplicationStatus { PERSOSUBSTATE_RUIM_HRPD_PUK, PERSOSUBSTATE_RUIM_CORPORATE_PUK, PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK, PERSOSUBSTATE_RUIM_RUIM_PUK; PERSOSUBSTATE_RUIM_RUIM_PUK, PERSOSUBSTATE_SIM_SPN, PERSOSUBSTATE_SIM_SPN_PUK, PERSOSUBSTATE_SIM_SP_EHPLMN, PERSOSUBSTATE_SIM_ICCID, PERSOSUBSTATE_SIM_ICCID_PUK, PERSOSUBSTATE_SIM_IMPI, PERSOSUBSTATE_SIM_IMPI_PUK, PERSOSUBSTATE_SIM_NS_SP, PERSOSUBSTATE_SIM_NS_SP_PUK; boolean isPersoSubStateUnknown() { return this == PERSOSUBSTATE_UNKNOWN; Loading Loading @@ -205,6 +214,15 @@ public class IccCardApplicationStatus { case 22: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_CORPORATE_PUK; break; case 23: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK; break; case 24: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_RUIM_PUK; break; case 25: newSubState = PersoSubState.PERSOSUBSTATE_SIM_SPN; break; case 26: newSubState = PersoSubState.PERSOSUBSTATE_SIM_SPN_PUK; break; case 27: newSubState = PersoSubState.PERSOSUBSTATE_SIM_SP_EHPLMN; break; case 28: newSubState = PersoSubState.PERSOSUBSTATE_SIM_ICCID; break; case 29: newSubState = PersoSubState.PERSOSUBSTATE_SIM_ICCID_PUK; break; case 30: newSubState = PersoSubState.PERSOSUBSTATE_SIM_IMPI; break; case 31: newSubState = PersoSubState.PERSOSUBSTATE_SIM_IMPI_PUK; break; case 32: newSubState = PersoSubState.PERSOSUBSTATE_SIM_NS_SP; break; case 33: newSubState = PersoSubState.PERSOSUBSTATE_SIM_NS_SP_PUK; break; default: newSubState = PersoSubState.PERSOSUBSTATE_UNKNOWN; loge("PersoSubstateFromRILInt: bad substate: " + substate Loading Loading
src/java/com/android/internal/telephony/RadioResponse.java +65 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,15 @@ public class RadioResponse extends IRadioResponse.Stub { responseIccCardStatus_1_4(responseInfo, cardStatus); } /** * @param responseInfo Response info struct containing response type, serial no. and error * @param cardStatus ICC card status as defined by CardStatus in 1.5/types.hal */ public void getIccCardStatusResponse_1_5(RadioResponseInfo responseInfo, android.hardware.radio.V1_5.CardStatus cardStatus) { responseIccCardStatus_1_5(responseInfo, cardStatus); } /** * @param responseInfo Response info struct containing response type, serial no. and error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. Loading Loading @@ -1677,6 +1686,48 @@ public class RadioResponse extends IRadioResponse.Stub { return iccCardStatus; } private IccCardStatus convertHalCardStatus_1_5( android.hardware.radio.V1_5.CardStatus cardStatus) { IccCardStatus iccCardStatus = new IccCardStatus(); iccCardStatus.setCardState(cardStatus.base.base.base.cardState); iccCardStatus.setUniversalPinState(cardStatus.base.base.base.universalPinState); iccCardStatus.mGsmUmtsSubscriptionAppIndex = cardStatus.base.base.base.gsmUmtsSubscriptionAppIndex; iccCardStatus.mCdmaSubscriptionAppIndex = cardStatus.base.base.base.cdmaSubscriptionAppIndex; iccCardStatus.mImsSubscriptionAppIndex = cardStatus.base.base.base.imsSubscriptionAppIndex; iccCardStatus.physicalSlotIndex = cardStatus.base.base.physicalSlotId; iccCardStatus.atr = cardStatus.base.base.atr; iccCardStatus.iccid = cardStatus.base.base.iccid; iccCardStatus.eid = cardStatus.base.eid; int numApplications = cardStatus.applications.size(); // limit to maximum allowed applications if (numApplications > com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS) { numApplications = com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS; } iccCardStatus.mApplications = new IccCardApplicationStatus[numApplications]; for (int i = 0; i < numApplications; i++) { android.hardware.radio.V1_5.AppStatus rilAppStatus = cardStatus.applications.get(i); IccCardApplicationStatus appStatus = new IccCardApplicationStatus(); appStatus.app_type = appStatus.AppTypeFromRILInt(rilAppStatus.base.appType); appStatus.app_state = appStatus.AppStateFromRILInt(rilAppStatus.base.appState); appStatus.perso_substate = appStatus.PersoSubstateFromRILInt( rilAppStatus.persoSubstate); appStatus.aid = rilAppStatus.base.aidPtr; appStatus.app_label = rilAppStatus.base.appLabelPtr; appStatus.pin1_replaced = rilAppStatus.base.pin1Replaced; appStatus.pin1 = appStatus.PinStateFromRILInt(rilAppStatus.base.pin1); appStatus.pin2 = appStatus.PinStateFromRILInt(rilAppStatus.base.pin2); iccCardStatus.mApplications[i] = appStatus; mRil.riljLog("IccCardApplicationStatus " + i + ":" + appStatus.toString()); } return iccCardStatus; } private void responseIccCardStatus(RadioResponseInfo responseInfo, CardStatus cardStatus) { RILRequest rr = mRil.processResponse(responseInfo); Loading Loading @@ -1725,6 +1776,20 @@ public class RadioResponse extends IRadioResponse.Stub { } } private void responseIccCardStatus_1_5(RadioResponseInfo responseInfo, android.hardware.radio.V1_5.CardStatus cardStatus) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { IccCardStatus iccCardStatus = convertHalCardStatus_1_5(cardStatus); mRil.riljLog("responseIccCardStatus: from HIDL: " + iccCardStatus); if (responseInfo.error == RadioError.NONE) { sendMessageResponse(rr.mResult, iccCardStatus); } mRil.processResponseDone(rr, responseInfo, iccCardStatus); } } /** * @param responseInfo Response info struct containing response type, serial no. and error */ Loading
src/java/com/android/internal/telephony/uicc/IccCardApplicationStatus.java +19 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,16 @@ public class IccCardApplicationStatus { PERSOSUBSTATE_RUIM_HRPD_PUK, PERSOSUBSTATE_RUIM_CORPORATE_PUK, PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK, PERSOSUBSTATE_RUIM_RUIM_PUK; PERSOSUBSTATE_RUIM_RUIM_PUK, PERSOSUBSTATE_SIM_SPN, PERSOSUBSTATE_SIM_SPN_PUK, PERSOSUBSTATE_SIM_SP_EHPLMN, PERSOSUBSTATE_SIM_ICCID, PERSOSUBSTATE_SIM_ICCID_PUK, PERSOSUBSTATE_SIM_IMPI, PERSOSUBSTATE_SIM_IMPI_PUK, PERSOSUBSTATE_SIM_NS_SP, PERSOSUBSTATE_SIM_NS_SP_PUK; boolean isPersoSubStateUnknown() { return this == PERSOSUBSTATE_UNKNOWN; Loading Loading @@ -205,6 +214,15 @@ public class IccCardApplicationStatus { case 22: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_CORPORATE_PUK; break; case 23: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK; break; case 24: newSubState = PersoSubState.PERSOSUBSTATE_RUIM_RUIM_PUK; break; case 25: newSubState = PersoSubState.PERSOSUBSTATE_SIM_SPN; break; case 26: newSubState = PersoSubState.PERSOSUBSTATE_SIM_SPN_PUK; break; case 27: newSubState = PersoSubState.PERSOSUBSTATE_SIM_SP_EHPLMN; break; case 28: newSubState = PersoSubState.PERSOSUBSTATE_SIM_ICCID; break; case 29: newSubState = PersoSubState.PERSOSUBSTATE_SIM_ICCID_PUK; break; case 30: newSubState = PersoSubState.PERSOSUBSTATE_SIM_IMPI; break; case 31: newSubState = PersoSubState.PERSOSUBSTATE_SIM_IMPI_PUK; break; case 32: newSubState = PersoSubState.PERSOSUBSTATE_SIM_NS_SP; break; case 33: newSubState = PersoSubState.PERSOSUBSTATE_SIM_NS_SP_PUK; break; default: newSubState = PersoSubState.PERSOSUBSTATE_UNKNOWN; loge("PersoSubstateFromRILInt: bad substate: " + substate Loading