Loading src/java/com/android/internal/telephony/RIL.java +347 −312 File changed.Preview size limit exceeded, changes collapsed. Show changes src/java/com/android/internal/telephony/RadioIndication.java +11 −11 Original line number Diff line number Diff line Loading @@ -16,21 +16,20 @@ package com.android.internal.telephony; import android.hardware.radio.V1_0.IRadioIndication; import android.hardware.radio.V1_0.RadioIndicationType; import android.hardware.radio.V1_0.SetupDataCallResult; import android.hardware.radio.V1_0.SuppSvcNotification; import android.hardware.radio.V1_0.SimRefreshResult; import android.hardware.radio.V1_0.CdmaCallWaiting; import android.hardware.radio.V1_0.CdmaSignalInfoRecord; import android.hardware.radio.V1_0.CdmaSmsMessage; import android.hardware.radio.V1_0.CdmaCallWaiting; import android.hardware.radio.V1_0.StkCcUnsolSsResult; import android.hardware.radio.V1_0.IRadioIndication; import android.hardware.radio.V1_0.LceDataInfo; import android.hardware.radio.V1_0.PcoDataInfo; import android.os.Message; import android.hardware.radio.V1_0.SetupDataCallResult; import android.hardware.radio.V1_0.SimRefreshResult; import android.hardware.radio.V1_0.StkCcUnsolSsResult; import android.hardware.radio.V1_0.SuppSvcNotification; import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED; import java.util.ArrayList; import static com.android.internal.telephony.RILConstants.*; public class RadioIndication extends IRadioIndication.Stub { RIL mRil; Loading @@ -47,7 +46,8 @@ public class RadioIndication extends IRadioIndication.Stub { public void radioStateChanged(int indicationType, int radioState) { mRil.processIndication(indicationType); CommandsInterface.RadioState newState = getRadioStateFromInt(radioState); mRil.riljLog("radioStateChanged: " + newState.toString()); mRil.unsljLogMore(RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED, "radioStateChanged: " + newState.toString()); mRil.setRadioState(newState); } Loading src/java/com/android/internal/telephony/RadioResponse.java +241 −68 Original line number Diff line number Diff line Loading @@ -16,29 +16,33 @@ package com.android.internal.telephony; import android.hardware.radio.V1_0.IRadioResponse; import android.hardware.radio.V1_0.RadioResponseInfo; import android.hardware.radio.V1_0.RadioResponseType; import android.hardware.radio.V1_0.CardStatus; import android.hardware.radio.V1_0.VoiceRegStateResult; import android.hardware.radio.V1_0.DataRegStateResult; import android.hardware.radio.V1_0.ActivityStatsInfo; import android.hardware.radio.V1_0.AppStatus; import android.hardware.radio.V1_0.CardStatus; import android.hardware.radio.V1_0.CarrierRestrictions; import android.hardware.radio.V1_0.ActivityStatsInfo; import android.hardware.radio.V1_0.LceDataInfo; import android.hardware.radio.V1_0.LceStatusInfo; import android.hardware.radio.V1_0.SendSmsResult; import android.hardware.radio.V1_0.CdmaBroadcastSmsConfigInfo; import android.hardware.radio.V1_0.DataRegStateResult; import android.hardware.radio.V1_0.GsmBroadcastSmsConfigInfo; import android.hardware.radio.V1_0.IRadioResponse; import android.hardware.radio.V1_0.LastCallFailCauseInfo; import android.hardware.radio.V1_0.LceDataInfo; import android.hardware.radio.V1_0.LceStatusInfo; import android.hardware.radio.V1_0.NeighboringCell; import android.hardware.radio.V1_0.RadioError; import android.hardware.radio.V1_0.RadioResponseInfo; import android.hardware.radio.V1_0.SendSmsResult; import android.hardware.radio.V1_0.SetupDataCallResult; import android.hardware.radio.V1_0.VoiceRegStateResult; import android.os.AsyncResult; import android.os.Message; import android.telephony.Rlog; import com.android.internal.telephony.uicc.*; import android.telephony.PhoneNumberUtils; import com.android.internal.telephony.uicc.IccCardApplicationStatus; import com.android.internal.telephony.uicc.IccCardStatus; import com.android.internal.telephony.uicc.IccUtils; import java.util.ArrayList; import static com.android.internal.telephony.RILConstants.*; import java.util.Collections; public class RadioResponse extends IRadioResponse.Stub { RIL mRil; Loading @@ -60,47 +64,96 @@ public class RadioResponse extends IRadioResponse.Stub { } /** * Response function for IRadio.getIccCardStatus() * Acknowldege the receipt of radio request sent to the vendor. This must be sent only for * radio request which take long time to respond. * For more details, refer https://source.android.com/devices/tech/connect/ril.html * * @param serial Serial no. of the request whose acknowledgement is sent. */ public void acknowledgeRequest(int serial) { mRil.processRequestAck(serial); } /** * @param responseInfo Response info struct containing response type, serial no. & error * @param cardStatus ICC card status as defined by CardStatus in types.hal */ public void getIccCardStatusResponse(RadioResponseInfo responseInfo, CardStatus cardStatus) { mRil.riljLog("getIccCardStatusResponse: serial " + responseInfo.serial + " cardStatus.cardState " + cardStatus.cardState); RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { Object ret = null; if (responseInfo.error == 0) { mRil.riljLog("getIccCardStatusResponse: rr.mResult != null"); ret = responseIccCardStatus(cardStatus); sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } else { mRil.riljLog("getIccCardStatusResponse: rr == null"); } responseIccCardStatus(responseInfo, cardStatus); } public void supplyIccPinForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void supplyIccPinForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } public void supplyIccPukForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void supplyIccPukForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } public void supplyIccPin2ForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void supplyIccPin2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } public void supplyIccPuk2ForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void supplyIccPuk2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } public void changeIccPinForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void changeIccPinForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } public void changeIccPin2ForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void changeIccPin2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } /** * @param responseInfo Response info struct containing response type, serial no. & error * @param retriesRemaining Number of retries remaining, must be equal to -1 if unknown. */ public void supplyNetworkDepersonalizationResponse(RadioResponseInfo responseInfo, int var2) {} int retriesRemaining) { responseInts(responseInfo, retriesRemaining); } /** * @param responseInfo Response info struct containing response type, serial no. & error * @param calls Current call list */ public void getCurrentCallsResponse(RadioResponseInfo responseInfo, ArrayList<android.hardware.radio.V1_0.Call> var2) {} ArrayList<android.hardware.radio.V1_0.Call> calls) { responseCurrentCalls(responseInfo, calls); } public void dialResponse(RadioResponseInfo responseInfo) {} /** * @param responseInfo Response info struct containing response type, serial no. & error */ public void dialResponse(RadioResponseInfo responseInfo) { responseVoid(responseInfo); } public void getIMSIForAppResponse(RadioResponseInfo responseInfo, String var2) {} Loading Loading @@ -388,12 +441,12 @@ public class RadioResponse extends IRadioResponse.Stub { boolean var2, CarrierRestrictions var3) {} public void acknowledgeRequest(int var1) {} private Object responseIccCardStatus(CardStatus cardStatus) { IccCardApplicationStatus appStatus; private void responseIccCardStatus(RadioResponseInfo responseInfo, CardStatus cardStatus) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { Object ret = null; if (responseInfo.error == RadioError.NONE) { IccCardStatus iccCardStatus = new IccCardStatus(); iccCardStatus.setCardState(cardStatus.cardState); iccCardStatus.setUniversalPinState(cardStatus.universalPinState); Loading @@ -403,13 +456,15 @@ public class RadioResponse extends IRadioResponse.Stub { 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; 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++) { AppStatus rilAppStatus = cardStatus.applications.get(i); appStatus = new IccCardApplicationStatus(); IccCardApplicationStatus appStatus = new IccCardApplicationStatus(); appStatus.app_type = appStatus.AppTypeFromRILInt(rilAppStatus.appType); appStatus.app_state = appStatus.AppStateFromRILInt(rilAppStatus.appState); appStatus.perso_substate = appStatus.PersoSubstateFromRILInt( Loading @@ -422,6 +477,124 @@ public class RadioResponse extends IRadioResponse.Stub { iccCardStatus.mApplications[i] = appStatus; } mRil.riljLog("responseIccCardStatus: from HIDL: " + iccCardStatus); return iccCardStatus; ret = iccCardStatus; sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } } private void responseInts(RadioResponseInfo responseInfo, int ...var) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { Object ret = null; if (responseInfo.error == RadioError.NONE) { int[] response = new int[var.length]; for (int i = 0; i < var.length; i++) { response[i] = var[i]; } ret = response; sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } } private void responseCurrentCalls(RadioResponseInfo responseInfo, ArrayList<android.hardware.radio.V1_0.Call> calls) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { Object ret = null; if (responseInfo.error == RadioError.NONE) { int num; ArrayList<DriverCall> dcCalls; DriverCall dc; num = calls.size(); dcCalls = new ArrayList<DriverCall>(num); for (int i = 0; i < num; i++) { dc = new DriverCall(); // TODO: change name of function stateFromCLCC() in DriverCall.java to name // clarifying what is CLCC dc.state = DriverCall.stateFromCLCC((int) (calls.get(i).state)); dc.index = calls.get(i).index; dc.TOA = calls.get(i).toa; dc.isMpty = calls.get(i).isMpty; dc.isMT = calls.get(i).isMT; dc.als = calls.get(i).als; dc.isVoice = calls.get(i).isVoice; dc.isVoicePrivacy = calls.get(i).isVoicePrivacy; dc.number = calls.get(i).number; dc.numberPresentation = DriverCall.presentationFromCLIP( (int) (calls.get(i).numberPresentation)); dc.name = calls.get(i).name; dc.namePresentation = DriverCall.presentationFromCLIP((int) (calls.get(i).namePresentation)); if (calls.get(i).uusInfo.size() == 1) { dc.uusInfo = new UUSInfo(); dc.uusInfo.setType(calls.get(i).uusInfo.get(0).uusType); dc.uusInfo.setDcs(calls.get(i).uusInfo.get(0).uusDcs); if (calls.get(i).uusInfo.get(0).uusData != null) { byte[] userData = calls.get(i).uusInfo.get(0).uusData.getBytes(); dc.uusInfo.setUserData(userData); } else { mRil.riljLog("responseCurrentCalls: uusInfo data is null"); } mRil.riljLogv(String.format("Incoming UUS : type=%d, dcs=%d, length=%d", dc.uusInfo.getType(), dc.uusInfo.getDcs(), dc.uusInfo.getUserData().length)); mRil.riljLogv("Incoming UUS : data (hex): " + IccUtils.bytesToHexString(dc.uusInfo.getUserData())); } else { mRil.riljLogv("Incoming UUS : NOT present!"); } // Make sure there's a leading + on addresses with a TOA of 145 dc.number = PhoneNumberUtils.stringFromStringAndTOA(dc.number, dc.TOA); dcCalls.add(dc); if (dc.isVoicePrivacy) { mRil.mVoicePrivacyOnRegistrants.notifyRegistrants(); mRil.riljLog("InCall VoicePrivacy is enabled"); } else { mRil.mVoicePrivacyOffRegistrants.notifyRegistrants(); mRil.riljLog("InCall VoicePrivacy is disabled"); } } Collections.sort(dcCalls); if ((num == 0) && mRil.mTestingEmergencyCall.getAndSet(false)) { if (mRil.mEmergencyCallbackModeRegistrant != null) { mRil.riljLog("responseCurrentCalls: call ended, testing emergency call," + " notify ECM Registrants"); mRil.mEmergencyCallbackModeRegistrant.notifyRegistrant(); } } ret = dcCalls; sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } } private void responseVoid(RadioResponseInfo responseInfo) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { Object ret = null; if (responseInfo.error == RadioError.NONE) { sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } } } Loading
src/java/com/android/internal/telephony/RIL.java +347 −312 File changed.Preview size limit exceeded, changes collapsed. Show changes
src/java/com/android/internal/telephony/RadioIndication.java +11 −11 Original line number Diff line number Diff line Loading @@ -16,21 +16,20 @@ package com.android.internal.telephony; import android.hardware.radio.V1_0.IRadioIndication; import android.hardware.radio.V1_0.RadioIndicationType; import android.hardware.radio.V1_0.SetupDataCallResult; import android.hardware.radio.V1_0.SuppSvcNotification; import android.hardware.radio.V1_0.SimRefreshResult; import android.hardware.radio.V1_0.CdmaCallWaiting; import android.hardware.radio.V1_0.CdmaSignalInfoRecord; import android.hardware.radio.V1_0.CdmaSmsMessage; import android.hardware.radio.V1_0.CdmaCallWaiting; import android.hardware.radio.V1_0.StkCcUnsolSsResult; import android.hardware.radio.V1_0.IRadioIndication; import android.hardware.radio.V1_0.LceDataInfo; import android.hardware.radio.V1_0.PcoDataInfo; import android.os.Message; import android.hardware.radio.V1_0.SetupDataCallResult; import android.hardware.radio.V1_0.SimRefreshResult; import android.hardware.radio.V1_0.StkCcUnsolSsResult; import android.hardware.radio.V1_0.SuppSvcNotification; import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED; import java.util.ArrayList; import static com.android.internal.telephony.RILConstants.*; public class RadioIndication extends IRadioIndication.Stub { RIL mRil; Loading @@ -47,7 +46,8 @@ public class RadioIndication extends IRadioIndication.Stub { public void radioStateChanged(int indicationType, int radioState) { mRil.processIndication(indicationType); CommandsInterface.RadioState newState = getRadioStateFromInt(radioState); mRil.riljLog("radioStateChanged: " + newState.toString()); mRil.unsljLogMore(RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED, "radioStateChanged: " + newState.toString()); mRil.setRadioState(newState); } Loading
src/java/com/android/internal/telephony/RadioResponse.java +241 −68 Original line number Diff line number Diff line Loading @@ -16,29 +16,33 @@ package com.android.internal.telephony; import android.hardware.radio.V1_0.IRadioResponse; import android.hardware.radio.V1_0.RadioResponseInfo; import android.hardware.radio.V1_0.RadioResponseType; import android.hardware.radio.V1_0.CardStatus; import android.hardware.radio.V1_0.VoiceRegStateResult; import android.hardware.radio.V1_0.DataRegStateResult; import android.hardware.radio.V1_0.ActivityStatsInfo; import android.hardware.radio.V1_0.AppStatus; import android.hardware.radio.V1_0.CardStatus; import android.hardware.radio.V1_0.CarrierRestrictions; import android.hardware.radio.V1_0.ActivityStatsInfo; import android.hardware.radio.V1_0.LceDataInfo; import android.hardware.radio.V1_0.LceStatusInfo; import android.hardware.radio.V1_0.SendSmsResult; import android.hardware.radio.V1_0.CdmaBroadcastSmsConfigInfo; import android.hardware.radio.V1_0.DataRegStateResult; import android.hardware.radio.V1_0.GsmBroadcastSmsConfigInfo; import android.hardware.radio.V1_0.IRadioResponse; import android.hardware.radio.V1_0.LastCallFailCauseInfo; import android.hardware.radio.V1_0.LceDataInfo; import android.hardware.radio.V1_0.LceStatusInfo; import android.hardware.radio.V1_0.NeighboringCell; import android.hardware.radio.V1_0.RadioError; import android.hardware.radio.V1_0.RadioResponseInfo; import android.hardware.radio.V1_0.SendSmsResult; import android.hardware.radio.V1_0.SetupDataCallResult; import android.hardware.radio.V1_0.VoiceRegStateResult; import android.os.AsyncResult; import android.os.Message; import android.telephony.Rlog; import com.android.internal.telephony.uicc.*; import android.telephony.PhoneNumberUtils; import com.android.internal.telephony.uicc.IccCardApplicationStatus; import com.android.internal.telephony.uicc.IccCardStatus; import com.android.internal.telephony.uicc.IccUtils; import java.util.ArrayList; import static com.android.internal.telephony.RILConstants.*; import java.util.Collections; public class RadioResponse extends IRadioResponse.Stub { RIL mRil; Loading @@ -60,47 +64,96 @@ public class RadioResponse extends IRadioResponse.Stub { } /** * Response function for IRadio.getIccCardStatus() * Acknowldege the receipt of radio request sent to the vendor. This must be sent only for * radio request which take long time to respond. * For more details, refer https://source.android.com/devices/tech/connect/ril.html * * @param serial Serial no. of the request whose acknowledgement is sent. */ public void acknowledgeRequest(int serial) { mRil.processRequestAck(serial); } /** * @param responseInfo Response info struct containing response type, serial no. & error * @param cardStatus ICC card status as defined by CardStatus in types.hal */ public void getIccCardStatusResponse(RadioResponseInfo responseInfo, CardStatus cardStatus) { mRil.riljLog("getIccCardStatusResponse: serial " + responseInfo.serial + " cardStatus.cardState " + cardStatus.cardState); RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { Object ret = null; if (responseInfo.error == 0) { mRil.riljLog("getIccCardStatusResponse: rr.mResult != null"); ret = responseIccCardStatus(cardStatus); sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } else { mRil.riljLog("getIccCardStatusResponse: rr == null"); } responseIccCardStatus(responseInfo, cardStatus); } public void supplyIccPinForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void supplyIccPinForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } public void supplyIccPukForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void supplyIccPukForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } public void supplyIccPin2ForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void supplyIccPin2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } public void supplyIccPuk2ForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void supplyIccPuk2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } public void changeIccPinForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void changeIccPinForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } public void changeIccPin2ForAppResponse(RadioResponseInfo responseInfo, int var2) {} /** * @param responseInfo Response info struct containing response type, serial no. & error * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. */ public void changeIccPin2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { responseInts(responseInfo, remainingAttempts); } /** * @param responseInfo Response info struct containing response type, serial no. & error * @param retriesRemaining Number of retries remaining, must be equal to -1 if unknown. */ public void supplyNetworkDepersonalizationResponse(RadioResponseInfo responseInfo, int var2) {} int retriesRemaining) { responseInts(responseInfo, retriesRemaining); } /** * @param responseInfo Response info struct containing response type, serial no. & error * @param calls Current call list */ public void getCurrentCallsResponse(RadioResponseInfo responseInfo, ArrayList<android.hardware.radio.V1_0.Call> var2) {} ArrayList<android.hardware.radio.V1_0.Call> calls) { responseCurrentCalls(responseInfo, calls); } public void dialResponse(RadioResponseInfo responseInfo) {} /** * @param responseInfo Response info struct containing response type, serial no. & error */ public void dialResponse(RadioResponseInfo responseInfo) { responseVoid(responseInfo); } public void getIMSIForAppResponse(RadioResponseInfo responseInfo, String var2) {} Loading Loading @@ -388,12 +441,12 @@ public class RadioResponse extends IRadioResponse.Stub { boolean var2, CarrierRestrictions var3) {} public void acknowledgeRequest(int var1) {} private Object responseIccCardStatus(CardStatus cardStatus) { IccCardApplicationStatus appStatus; private void responseIccCardStatus(RadioResponseInfo responseInfo, CardStatus cardStatus) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { Object ret = null; if (responseInfo.error == RadioError.NONE) { IccCardStatus iccCardStatus = new IccCardStatus(); iccCardStatus.setCardState(cardStatus.cardState); iccCardStatus.setUniversalPinState(cardStatus.universalPinState); Loading @@ -403,13 +456,15 @@ public class RadioResponse extends IRadioResponse.Stub { 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; 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++) { AppStatus rilAppStatus = cardStatus.applications.get(i); appStatus = new IccCardApplicationStatus(); IccCardApplicationStatus appStatus = new IccCardApplicationStatus(); appStatus.app_type = appStatus.AppTypeFromRILInt(rilAppStatus.appType); appStatus.app_state = appStatus.AppStateFromRILInt(rilAppStatus.appState); appStatus.perso_substate = appStatus.PersoSubstateFromRILInt( Loading @@ -422,6 +477,124 @@ public class RadioResponse extends IRadioResponse.Stub { iccCardStatus.mApplications[i] = appStatus; } mRil.riljLog("responseIccCardStatus: from HIDL: " + iccCardStatus); return iccCardStatus; ret = iccCardStatus; sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } } private void responseInts(RadioResponseInfo responseInfo, int ...var) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { Object ret = null; if (responseInfo.error == RadioError.NONE) { int[] response = new int[var.length]; for (int i = 0; i < var.length; i++) { response[i] = var[i]; } ret = response; sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } } private void responseCurrentCalls(RadioResponseInfo responseInfo, ArrayList<android.hardware.radio.V1_0.Call> calls) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { Object ret = null; if (responseInfo.error == RadioError.NONE) { int num; ArrayList<DriverCall> dcCalls; DriverCall dc; num = calls.size(); dcCalls = new ArrayList<DriverCall>(num); for (int i = 0; i < num; i++) { dc = new DriverCall(); // TODO: change name of function stateFromCLCC() in DriverCall.java to name // clarifying what is CLCC dc.state = DriverCall.stateFromCLCC((int) (calls.get(i).state)); dc.index = calls.get(i).index; dc.TOA = calls.get(i).toa; dc.isMpty = calls.get(i).isMpty; dc.isMT = calls.get(i).isMT; dc.als = calls.get(i).als; dc.isVoice = calls.get(i).isVoice; dc.isVoicePrivacy = calls.get(i).isVoicePrivacy; dc.number = calls.get(i).number; dc.numberPresentation = DriverCall.presentationFromCLIP( (int) (calls.get(i).numberPresentation)); dc.name = calls.get(i).name; dc.namePresentation = DriverCall.presentationFromCLIP((int) (calls.get(i).namePresentation)); if (calls.get(i).uusInfo.size() == 1) { dc.uusInfo = new UUSInfo(); dc.uusInfo.setType(calls.get(i).uusInfo.get(0).uusType); dc.uusInfo.setDcs(calls.get(i).uusInfo.get(0).uusDcs); if (calls.get(i).uusInfo.get(0).uusData != null) { byte[] userData = calls.get(i).uusInfo.get(0).uusData.getBytes(); dc.uusInfo.setUserData(userData); } else { mRil.riljLog("responseCurrentCalls: uusInfo data is null"); } mRil.riljLogv(String.format("Incoming UUS : type=%d, dcs=%d, length=%d", dc.uusInfo.getType(), dc.uusInfo.getDcs(), dc.uusInfo.getUserData().length)); mRil.riljLogv("Incoming UUS : data (hex): " + IccUtils.bytesToHexString(dc.uusInfo.getUserData())); } else { mRil.riljLogv("Incoming UUS : NOT present!"); } // Make sure there's a leading + on addresses with a TOA of 145 dc.number = PhoneNumberUtils.stringFromStringAndTOA(dc.number, dc.TOA); dcCalls.add(dc); if (dc.isVoicePrivacy) { mRil.mVoicePrivacyOnRegistrants.notifyRegistrants(); mRil.riljLog("InCall VoicePrivacy is enabled"); } else { mRil.mVoicePrivacyOffRegistrants.notifyRegistrants(); mRil.riljLog("InCall VoicePrivacy is disabled"); } } Collections.sort(dcCalls); if ((num == 0) && mRil.mTestingEmergencyCall.getAndSet(false)) { if (mRil.mEmergencyCallbackModeRegistrant != null) { mRil.riljLog("responseCurrentCalls: call ended, testing emergency call," + " notify ECM Registrants"); mRil.mEmergencyCallbackModeRegistrant.notifyRegistrant(); } } ret = dcCalls; sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } } private void responseVoid(RadioResponseInfo responseInfo) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { Object ret = null; if (responseInfo.error == RadioError.NONE) { sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } } }