1246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan/* 2246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * Copyright (C) 2016 The Android Open Source Project 3246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * 4246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * Licensed under the Apache License, Version 2.0 (the "License"); 5246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * you may not use this file except in compliance with the License. 6246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * You may obtain a copy of the License at 7246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * 8246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * http://www.apache.org/licenses/LICENSE-2.0 9246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * 10246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * Unless required by applicable law or agreed to in writing, software 11246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * distributed under the License is distributed on an "AS IS" BASIS, 12246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * See the License for the specific language governing permissions and 14246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * limitations under the License. 15246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan */ 16246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 17246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanpackage com.android.internal.telephony; 18246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 193b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padaweimport android.content.Context; 2013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport android.hardware.radio.V1_0.ActivityStatsInfo; 21246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanimport android.hardware.radio.V1_0.AppStatus; 2213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport android.hardware.radio.V1_0.CardStatus; 23246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanimport android.hardware.radio.V1_0.CarrierRestrictions; 24246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanimport android.hardware.radio.V1_0.CdmaBroadcastSmsConfigInfo; 2513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport android.hardware.radio.V1_0.DataRegStateResult; 26246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanimport android.hardware.radio.V1_0.GsmBroadcastSmsConfigInfo; 27246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanimport android.hardware.radio.V1_0.LastCallFailCauseInfo; 2813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport android.hardware.radio.V1_0.LceDataInfo; 2913b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport android.hardware.radio.V1_0.LceStatusInfo; 30246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanimport android.hardware.radio.V1_0.NeighboringCell; 3113b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport android.hardware.radio.V1_0.RadioError; 3213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport android.hardware.radio.V1_0.RadioResponseInfo; 3313b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport android.hardware.radio.V1_0.SendSmsResult; 34246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanimport android.hardware.radio.V1_0.SetupDataCallResult; 3513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport android.hardware.radio.V1_0.VoiceRegStateResult; 364e10a61602bd065cdf71d0335493ac3444d5055ayinxuimport android.hardware.radio.V1_2.IRadioResponse; 37246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanimport android.os.AsyncResult; 38246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanimport android.os.Message; 393b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padaweimport android.os.SystemClock; 403b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padaweimport android.service.carrier.CarrierIdentifier; 41d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajanimport android.telephony.CellInfo; 423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padaweimport android.telephony.ModemActivityInfo; 433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padaweimport android.telephony.NeighboringCellInfo; 4413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport android.telephony.PhoneNumberUtils; 45d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajanimport android.telephony.SignalStrength; 463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padaweimport android.telephony.SubscriptionManager; 473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padaweimport android.telephony.TelephonyManager; 480b23fe5834db6b9f53111487e2911cbc394fe761sqianimport android.text.TextUtils; 4913b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 5021cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Haroldimport com.android.internal.telephony.dataconnection.KeepaliveStatus; 513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padaweimport com.android.internal.telephony.gsm.SmsBroadcastConfigInfo; 5213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport com.android.internal.telephony.uicc.IccCardApplicationStatus; 5313b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport com.android.internal.telephony.uicc.IccCardStatus; 543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padaweimport com.android.internal.telephony.uicc.IccIoResult; 5513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport com.android.internal.telephony.uicc.IccUtils; 5613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 57246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanimport java.util.ArrayList; 5813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padaweimport java.util.Collections; 593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padaweimport java.util.List; 60246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 61246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajanpublic class RadioResponse extends IRadioResponse.Stub { 623b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe // The number of the required config values for broadcast SMS stored in the C struct 633b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe // RIL_CDMA_BroadcastServiceInfo 643b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private static final int CDMA_BSI_NO_OF_INTS_STRUCT = 3; 653b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 663b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private static final int CDMA_BROADCAST_SMS_NO_OF_SERVICE_CATEGORIES = 31; 673b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 68246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan RIL mRil; 69246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 70246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public RadioResponse(RIL ril) { 71246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan mRil = ril; 72246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan } 73246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 74246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan /** 75246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * Helper function to send response msg 76246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * @param msg Response message to be sent 77246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * @param ret Return object to be included in the response message 78246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan */ 7972c0d812e2e53b35c09ee9bfffe04779636678a3Amit Mahajan static void sendMessageResponse(Message msg, Object ret) { 80246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan if (msg != null) { 81246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan AsyncResult.forMessage(msg, ret, null); 82246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan msg.sendToTarget(); 83246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan } 84246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan } 85246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 86246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan /** 876509576d8eb86664d1b5383a1b637e00748e807eJack Yu * Acknowledge the receipt of radio request sent to the vendor. This must be sent only for 8813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * radio request which take long time to respond. 8913b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * For more details, refer https://source.android.com/devices/tech/connect/ril.html 9013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * 9113b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * @param serial Serial no. of the request whose acknowledgement is sent. 9213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe */ 9313b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe public void acknowledgeRequest(int serial) { 9413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe mRil.processRequestAck(serial); 9513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 9613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 9713b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe /** 983b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 99246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan * @param cardStatus ICC card status as defined by CardStatus in types.hal 100246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan */ 101246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getIccCardStatusResponse(RadioResponseInfo responseInfo, CardStatus cardStatus) { 10213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe responseIccCardStatus(responseInfo, cardStatus); 103246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan } 104246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 10513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe /** 1063b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 1074e10a61602bd065cdf71d0335493ac3444d5055ayinxu * @param cardStatus ICC card status as defined by CardStatus in 1.2/types.hal 1084e10a61602bd065cdf71d0335493ac3444d5055ayinxu */ 1094e10a61602bd065cdf71d0335493ac3444d5055ayinxu public void getIccCardStatusResponse_1_2(RadioResponseInfo responseInfo, 1104e10a61602bd065cdf71d0335493ac3444d5055ayinxu android.hardware.radio.V1_2.CardStatus cardStatus) { 1114e10a61602bd065cdf71d0335493ac3444d5055ayinxu responseIccCardStatus_1_2(responseInfo, cardStatus); 1124e10a61602bd065cdf71d0335493ac3444d5055ayinxu } 1134e10a61602bd065cdf71d0335493ac3444d5055ayinxu 1144e10a61602bd065cdf71d0335493ac3444d5055ayinxu /** 1154e10a61602bd065cdf71d0335493ac3444d5055ayinxu * @param responseInfo Response info struct containing response type, serial no. and error 11613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. 11713b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe */ 11813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe public void supplyIccPinForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { 11913b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe responseInts(responseInfo, remainingAttempts); 12013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 121246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 12213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe /** 1233b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 12413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. 12513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe */ 12613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe public void supplyIccPukForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { 12713b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe responseInts(responseInfo, remainingAttempts); 12813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 129246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 13013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe /** 1313b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 13213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. 13313b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe */ 13413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe public void supplyIccPin2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { 13513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe responseInts(responseInfo, remainingAttempts); 13613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 137246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 13813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe /** 1393b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 14013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. 14113b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe */ 14213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe public void supplyIccPuk2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { 14313b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe responseInts(responseInfo, remainingAttempts); 14413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 145246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 14613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe /** 1473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 14813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. 14913b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe */ 15013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe public void changeIccPinForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { 15113b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe responseInts(responseInfo, remainingAttempts); 15213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 153246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 15413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe /** 1553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 15613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown. 15713b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe */ 15813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe public void changeIccPin2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) { 15913b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe responseInts(responseInfo, remainingAttempts); 16013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 161246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 16213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe /** 1633b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 16413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * @param retriesRemaining Number of retries remaining, must be equal to -1 if unknown. 16513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe */ 166246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void supplyNetworkDepersonalizationResponse(RadioResponseInfo responseInfo, 16713b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe int retriesRemaining) { 16813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe responseInts(responseInfo, retriesRemaining); 16913b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 170246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 17113b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe /** 1723b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 17313b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe * @param calls Current call list 17413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe */ 175246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getCurrentCallsResponse(RadioResponseInfo responseInfo, 17613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe ArrayList<android.hardware.radio.V1_0.Call> calls) { 17713b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe responseCurrentCalls(responseInfo, calls); 17813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 179246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 18013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe /** 1813b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 1824e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka * @param calls Current call list 1834e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka */ 1844e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka public void getCurrentCallsResponse_1_2(RadioResponseInfo responseInfo, 1854e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka ArrayList<android.hardware.radio.V1_2.Call> calls) { 1864e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka responseCurrentCalls_1_2(responseInfo, calls); 1874e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } 1884e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 1894e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka /** 1904e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka * @param responseInfo Response info struct containing response type, serial no. and error 19113b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe */ 19213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe public void dialResponse(RadioResponseInfo responseInfo) { 19313b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe responseVoid(responseInfo); 19413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 195246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 1963b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 1973b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 1983b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param imsi String containing the IMSI 1993b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 2003b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getIMSIForAppResponse(RadioResponseInfo responseInfo, String imsi) { 2013b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseString(responseInfo, imsi); 2023b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 203246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 2043b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 2053b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 2063b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 2073b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void hangupConnectionResponse(RadioResponseInfo responseInfo) { 2083b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 2093b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 210246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 2113b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 2123b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 2133b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 2143b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void hangupWaitingOrBackgroundResponse(RadioResponseInfo responseInfo) { 2153b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 2163b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 217246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 2183b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 2193b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 2203b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 2213b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void hangupForegroundResumeBackgroundResponse(RadioResponseInfo responseInfo) { 2223b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 2233b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 224246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 2253b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 2263b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 2273b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 2283b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void switchWaitingOrHoldingAndActiveResponse(RadioResponseInfo responseInfo) { 2293b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 2303b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 231246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 2323b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 2333b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 2343b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 2353b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void conferenceResponse(RadioResponseInfo responseInfo) { 2363b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 2373b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 238246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 2393b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 2403b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 2413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 2423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void rejectCallResponse(RadioResponseInfo responseInfo) { 2433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 2443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 245246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 2463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 2473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 2483b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param fcInfo Contains LastCallFailCause and vendor cause code. GSM failure reasons 2493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * are mapped to cause codes defined in TS 24.008 Annex H where possible. CDMA 2503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * failure reasons are derived from the possible call failure scenarios 2513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * described in the "CDMA IS-2000 Release A (C.S0005-A v6.0)" standard. 2523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 253246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getLastCallFailCauseResponse(RadioResponseInfo responseInfo, 2543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe LastCallFailCauseInfo fcInfo) { 2553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseLastCallFailCauseInfo(responseInfo, fcInfo); 2563b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 257246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 258246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getSignalStrengthResponse(RadioResponseInfo responseInfo, 259d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan android.hardware.radio.V1_0.SignalStrength sigStrength) { 260d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan responseSignalStrength(responseInfo, sigStrength); 261d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 262246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 263e6702220aa471f98579102516afa8aa268820856Wei Huang /** 264e6702220aa471f98579102516afa8aa268820856Wei Huang * @param responseInfo Response info struct containing response type, serial no. and error 265e6702220aa471f98579102516afa8aa268820856Wei Huang * @param signalStrength Current signal strength of camped/connected cells 266e6702220aa471f98579102516afa8aa268820856Wei Huang */ 267e6702220aa471f98579102516afa8aa268820856Wei Huang public void getSignalStrengthResponse_1_2( 268e6702220aa471f98579102516afa8aa268820856Wei Huang RadioResponseInfo responseInfo, 269e6702220aa471f98579102516afa8aa268820856Wei Huang android.hardware.radio.V1_2.SignalStrength signalStrength) { 270e6702220aa471f98579102516afa8aa268820856Wei Huang responseSignalStrength_1_2(responseInfo, signalStrength); 271e6702220aa471f98579102516afa8aa268820856Wei Huang } 272e6702220aa471f98579102516afa8aa268820856Wei Huang 2732c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach /** 2743b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 2753b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param voiceRegResponse Current Voice registration response as defined by VoiceRegStateResult 2763b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * in types.hal 2773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 278246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getVoiceRegistrationStateResponse(RadioResponseInfo responseInfo, 2793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe VoiceRegStateResult voiceRegResponse) { 280d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran RILRequest rr = mRil.processResponse(responseInfo); 281d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran 282d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran if (rr != null) { 283d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran if (responseInfo.error == RadioError.NONE) { 284d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran sendMessageResponse(rr.mResult, voiceRegResponse); 285d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran } 286d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran mRil.processResponseDone(rr, responseInfo, voiceRegResponse); 287d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran } 2883b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 289246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 2903b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 2913b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 2922c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach * @param voiceRegResponse Current Voice registration response as defined by VoiceRegStateResult 2932c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach * in 1.2/types.hal 2942c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach */ 2952c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach public void getVoiceRegistrationStateResponse_1_2(RadioResponseInfo responseInfo, 2962c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach android.hardware.radio.V1_2.VoiceRegStateResult voiceRegResponse) { 2972c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach RILRequest rr = mRil.processResponse(responseInfo); 2982c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach 2992c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach if (rr != null) { 3002c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach if (responseInfo.error == RadioError.NONE) { 3012c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach sendMessageResponse(rr.mResult, voiceRegResponse); 3022c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach } 3032c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach mRil.processResponseDone(rr, responseInfo, voiceRegResponse); 3042c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach } 3052c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach } 3062c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach 3072c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach /** 3082c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach * @param responseInfo Response info struct containing response type, serial no. and error 3093b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param dataRegResponse Current Data registration response as defined by DataRegStateResult in 3103b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * types.hal 3113b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 312246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getDataRegistrationStateResponse(RadioResponseInfo responseInfo, 3133b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe DataRegStateResult dataRegResponse) { 314d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran RILRequest rr = mRil.processResponse(responseInfo); 315d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran 316d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran if (rr != null) { 317d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran if (responseInfo.error == RadioError.NONE) { 318d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran sendMessageResponse(rr.mResult, dataRegResponse); 319d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran } 320d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran mRil.processResponseDone(rr, responseInfo, dataRegResponse); 321d031c581c1f338ad0eba124f5bd8073b04ac4faaSooraj Sasindran } 3223b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 323246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 3243b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 3253b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 3262c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach * @param dataRegResponse Current Data registration response as defined by DataRegStateResult in 3272c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach * 1.2/types.hal 3282c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach */ 3292c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach public void getDataRegistrationStateResponse_1_2(RadioResponseInfo responseInfo, 3302c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach android.hardware.radio.V1_2.DataRegStateResult dataRegResponse) { 3312c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach RILRequest rr = mRil.processResponse(responseInfo); 3322c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach 3332c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach if (rr != null) { 3342c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach if (responseInfo.error == RadioError.NONE) { 3352c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach sendMessageResponse(rr.mResult, dataRegResponse); 3362c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach } 3372c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach mRil.processResponseDone(rr, responseInfo, dataRegResponse); 3382c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach } 3392c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach } 3402c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach 3412c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach /** 3422c7b51528995b3774488343d83b26114fa283d10Eric Schwarzenbach * @param responseInfo Response info struct containing response type, serial no. and error 3433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param longName is long alpha ONS or EONS or empty string if unregistered 3443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param shortName is short alpha ONS or EONS or empty string if unregistered 3453b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param numeric is 5 or 6 digit numeric code (MCC + MNC) or empty string if unregistered 3463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 347246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getOperatorResponse(RadioResponseInfo responseInfo, 3483b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe String longName, 3493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe String shortName, 3503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe String numeric) { 3513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseStrings(responseInfo, longName, shortName, numeric); 3523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 353246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 3543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 3553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 3563b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 3573b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setRadioPowerResponse(RadioResponseInfo responseInfo) { 3583b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 3593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 360246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 3613b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 3623b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 3633b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 3643b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void sendDtmfResponse(RadioResponseInfo responseInfo) { 3653b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 3663b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 367246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 3683b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 3693b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 3703b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param sms Response to sms sent as defined by SendSmsResult in types.hal 3713b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 372246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void sendSmsResponse(RadioResponseInfo responseInfo, 3733b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe SendSmsResult sms) { 3743b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseSms(responseInfo, sms); 3753b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 376246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 3773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 3783b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 3793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param sms Response to sms sent as defined by SendSmsResult in types.hal 3803b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 381246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void sendSMSExpectMoreResponse(RadioResponseInfo responseInfo, 3823b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe SendSmsResult sms) { 3833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseSms(responseInfo, sms); 3843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 385246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 386caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu /** 387caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu * @param responseInfo Response info struct containing response type, serial no. and error 388caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu * @param setupDataCallResult Response to data call setup as defined by setupDataCallResult in 389caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu * types.hal 390caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu */ 391246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void setupDataCallResponse(RadioResponseInfo responseInfo, 392caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu SetupDataCallResult setupDataCallResult) { 393caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu responseSetupDataCall(responseInfo, setupDataCallResult); 394d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 395246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 3963b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 3973b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 3983b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param iccIo ICC io operation response as defined by IccIoResult in types.hal 3993b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 400246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void iccIOForAppResponse(RadioResponseInfo responseInfo, 4013b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe android.hardware.radio.V1_0.IccIoResult iccIo) { 4023b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseIccIo(responseInfo, iccIo); 4033b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 404246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4053b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4063b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 4073b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 4083b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void sendUssdResponse(RadioResponseInfo responseInfo) { 4093b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 4103b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 411246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4123b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4133b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 4143b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 4153b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void cancelPendingUssdResponse(RadioResponseInfo responseInfo) { 4163b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 4173b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 418246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4193b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4203b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 4213b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param n is "n" parameter from TS 27.007 7.7 4223b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param m is "m" parameter from TS 27.007 7.7 4233b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 4243b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getClirResponse(RadioResponseInfo responseInfo, int n, int m) { 4253b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, n, m); 4263b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 427246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4283b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4293b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 4303b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 4313b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setClirResponse(RadioResponseInfo responseInfo) { 4323b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 4333b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 434246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4353b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4363b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 4373b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param callForwardInfos points to a vector of CallForwardInfo, one for 4383b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * each distinct registered phone number. 4393b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 440246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getCallForwardStatusResponse(RadioResponseInfo responseInfo, 4413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<android.hardware.radio.V1_0.CallForwardInfo> 4423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe callForwardInfos) { 4433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseCallForwardInfo(responseInfo, callForwardInfos); 4443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 445246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 4483b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 4493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setCallForwardResponse(RadioResponseInfo responseInfo) { 4503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 4513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 452246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4533b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 4553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param enable If current call waiting state is disabled, enable = false else true 4563b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param serviceClass If enable, then callWaitingResp[1] 4573b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * must follow, with the TS 27.007 service class bit vector of services 4583b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * for which call waiting is enabled. 4593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * For example, if callWaitingResp[0] is 1 and 4603b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * callWaitingResp[1] is 3, then call waiting is enabled for data 4613b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * and voice and disabled for everything else. 4623b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 463246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getCallWaitingResponse(RadioResponseInfo responseInfo, 4643b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe boolean enable, 4653b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe int serviceClass) { 4663b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, enable ? 1 : 0, serviceClass); 4673b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 468246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4693b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4703b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 4713b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 4723b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setCallWaitingResponse(RadioResponseInfo responseInfo) { 4733b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 4743b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 475246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4763b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 4783b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 4793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void acknowledgeLastIncomingGsmSmsResponse(RadioResponseInfo responseInfo) { 4803b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 4813b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 482246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 4853b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 4863b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void acceptCallResponse(RadioResponseInfo responseInfo) { 4873b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 4883b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 489246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4903b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4913b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 4923b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 4933b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void deactivateDataCallResponse(RadioResponseInfo responseInfo) { 4943b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 4953b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 496246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 4973b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 4983b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 4993b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 5003b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param response 0 is the TS 27.007 service class bit vector of 5013b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * services for which the specified barring facility 5023b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * is active. "0" means "disabled for all" 5033b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 5043b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getFacilityLockForAppResponse(RadioResponseInfo responseInfo, int response) { 5053b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, response); 5063b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 507246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 5083b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 5093b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 5103b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 5113b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param retry 0 is the number of retries remaining, or -1 if unknown 5123b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 5133b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setFacilityLockForAppResponse(RadioResponseInfo responseInfo, int retry) { 5143b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, retry); 5153b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 516246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 5173b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 5183b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 5193b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 5203b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setBarringPasswordResponse(RadioResponseInfo responseInfo) { 5213b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 5223b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 523246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 5243b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 5253b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 5263b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 5273b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param selection false for automatic selection, true for manual selection 5283b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 5293b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getNetworkSelectionModeResponse(RadioResponseInfo responseInfo, boolean selection) { 5303b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, selection ? 1 : 0); 5313b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 532246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 5333b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 5343b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 5353b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 5363b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setNetworkSelectionModeAutomaticResponse(RadioResponseInfo responseInfo) { 5373b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 5383b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 539246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 5403b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 5413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 5423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 5433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setNetworkSelectionModeManualResponse(RadioResponseInfo responseInfo) { 5443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 5453b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 546246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 5473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 5483b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 5493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 5503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param networkInfos List of network operator information as OperatorInfos defined in 5513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * types.hal 5523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 5533b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getAvailableNetworksResponse(RadioResponseInfo responseInfo, 5543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<android.hardware.radio.V1_0.OperatorInfo> 5553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe networkInfos) { 5563b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseOperatorInfos(responseInfo, networkInfos); 5573b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 558246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 5593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 560ffcdbea80c50d4911d52f61611722e446af72b66yinxu * 561ffcdbea80c50d4911d52f61611722e446af72b66yinxu * @param responseInfo Response info struct containing response type, serial no. and error 562ffcdbea80c50d4911d52f61611722e446af72b66yinxu */ 563ffcdbea80c50d4911d52f61611722e446af72b66yinxu public void startNetworkScanResponse(RadioResponseInfo responseInfo) { 564ffcdbea80c50d4911d52f61611722e446af72b66yinxu responseScanStatus(responseInfo); 565ffcdbea80c50d4911d52f61611722e446af72b66yinxu } 566ffcdbea80c50d4911d52f61611722e446af72b66yinxu 567ffcdbea80c50d4911d52f61611722e446af72b66yinxu /** 568ffcdbea80c50d4911d52f61611722e446af72b66yinxu * 569ffcdbea80c50d4911d52f61611722e446af72b66yinxu * @param responseInfo Response info struct containing response type, serial no. and error 570ffcdbea80c50d4911d52f61611722e446af72b66yinxu */ 571ffcdbea80c50d4911d52f61611722e446af72b66yinxu public void stopNetworkScanResponse(RadioResponseInfo responseInfo) { 572ffcdbea80c50d4911d52f61611722e446af72b66yinxu responseScanStatus(responseInfo); 573ffcdbea80c50d4911d52f61611722e446af72b66yinxu } 574ffcdbea80c50d4911d52f61611722e446af72b66yinxu 575ffcdbea80c50d4911d52f61611722e446af72b66yinxu /** 5763b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 5773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 5783b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void startDtmfResponse(RadioResponseInfo responseInfo) { 5793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 5803b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 581246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 5823b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 5833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 5843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 5853b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void stopDtmfResponse(RadioResponseInfo responseInfo) { 5863b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 5873b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 588246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 5893b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 5903b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 5913b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 5923b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param version string containing version string for log reporting 5933b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 5943b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getBasebandVersionResponse(RadioResponseInfo responseInfo, String version) { 5953b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseString(responseInfo, version); 5963b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 597246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 5983b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 5993b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 6003b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 6013b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void separateConnectionResponse(RadioResponseInfo responseInfo) { 6023b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 6033b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 604246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 6053b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 6063b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 6073b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 6083b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setMuteResponse(RadioResponseInfo responseInfo) { 6093b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 6103b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 611246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 6123b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 6133b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 6143b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 6153b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param enable true for "mute enabled" and false for "mute disabled" 6163b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 6173b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getMuteResponse(RadioResponseInfo responseInfo, boolean enable) { 6183b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, enable ? 1 : 0); 6193b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 620246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 6213b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 6223b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 6233b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 6243b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param status indicates CLIP status 6253b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 6263b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getClipResponse(RadioResponseInfo responseInfo, int status) { 6273b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, status); 6283b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 629246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 630caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu /** 631caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu * @param responseInfo Response info struct containing response type, serial no. and error 632caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu * @param dataCallResultList Response to get data call list as defined by setupDataCallResult in 633caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu * types.hal 634caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu */ 635246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getDataCallListResponse(RadioResponseInfo responseInfo, 636caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu ArrayList<SetupDataCallResult> dataCallResultList) { 637caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu responseDataCallList(responseInfo, dataCallResultList); 638d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 639246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 640ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian public void sendOemRilRequestRawResponse(RadioResponseInfo responseInfo, 641ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian ArrayList<Byte> var2) {} 642ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian 6433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 6443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 6453b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 6463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setSuppServiceNotificationsResponse(RadioResponseInfo responseInfo) { 6473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 6483b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 649246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 6503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 6513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 6523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param index record index where the message is stored 6533b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 6543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void writeSmsToSimResponse(RadioResponseInfo responseInfo, int index) { 6553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, index); 6563b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 657246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 6583b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 6593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 6603b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 6613b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void deleteSmsOnSimResponse(RadioResponseInfo responseInfo) { 6623b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 6633b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 664246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 6653b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 6663b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 6673b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 6683b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setBandModeResponse(RadioResponseInfo responseInfo) { 6693b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 6703b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 671246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 6723b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 6733b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 6743b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 6753b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param bandModes List of RadioBandMode listing supported modes 6763b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 677246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getAvailableBandModesResponse(RadioResponseInfo responseInfo, 6783b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<Integer> bandModes) { 6793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseIntArrayList(responseInfo, bandModes); 6803b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 681246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 6823b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 6833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 6843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 6853b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param commandResponse SAT/USAT response in hexadecimal format 6863b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * string starting with first byte of response 6873b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 6883b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void sendEnvelopeResponse(RadioResponseInfo responseInfo, String commandResponse) { 6893b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseString(responseInfo, commandResponse); 6903b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 691246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 6923b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 6933b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 6943b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 6953b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void sendTerminalResponseToSimResponse(RadioResponseInfo responseInfo) { 6963b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 6973b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 698246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 6993b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7003b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7013b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 7023b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void handleStkCallSetupRequestFromSimResponse(RadioResponseInfo responseInfo) { 7033b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 7043b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 705246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7063b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7073b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7083b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 7093b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void explicitCallTransferResponse(RadioResponseInfo responseInfo) { 7103b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 7113b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 712246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7133b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7143b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7153b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 7163b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setPreferredNetworkTypeResponse(RadioResponseInfo responseInfo) { 7173b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 7183b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 719246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7203b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7213b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 7223b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7233b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param nwType RadioPreferredNetworkType defined in types.hal 7243b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 7253b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getPreferredNetworkTypeResponse(RadioResponseInfo responseInfo, int nwType) { 7263b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.mPreferredNetworkType = nwType; 7273b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, nwType); 7283b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 729246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7303b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7313b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 7323b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7333b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param cells Vector of neighboring radio cell information 7343b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 735246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getNeighboringCidsResponse(RadioResponseInfo responseInfo, 7363b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<NeighboringCell> cells) { 7373b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseCellList(responseInfo, cells); 7383b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 739246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7403b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 7433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setLocationUpdatesResponse(RadioResponseInfo responseInfo) { 7443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 7453b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 746246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7483b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 7503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setCdmaSubscriptionSourceResponse(RadioResponseInfo responseInfo) { 7513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 7523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 753246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7563b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 7573b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setCdmaRoamingPreferenceResponse(RadioResponseInfo responseInfo) { 7583b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 7593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 760246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7613b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7623b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 7633b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7643b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param type CdmaRoamingType defined in types.hal 7653b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 7663b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getCdmaRoamingPreferenceResponse(RadioResponseInfo responseInfo, int type) { 7673b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, type); 7683b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 769246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7703b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7713b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7723b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 7733b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setTTYModeResponse(RadioResponseInfo responseInfo) { 7743b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 7753b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 776246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7783b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 7793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7803b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param mode TTY mode 7813b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 7823b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getTTYModeResponse(RadioResponseInfo responseInfo, int mode) { 7833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, mode); 7843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 785246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7863b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7873b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7883b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 7893b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setPreferredVoicePrivacyResponse(RadioResponseInfo responseInfo) { 7903b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 7913b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 792246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 7933b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 7943b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 7953b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 7963b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param enable false for Standard Privacy Mode (Public Long Code Mask) 7973b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * true for Enhanced Privacy Mode (Private Long Code Mask) 7983b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 799246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getPreferredVoicePrivacyResponse(RadioResponseInfo responseInfo, 8003b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe boolean enable) { 8013b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, enable ? 1 : 0); 8023b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 803246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8043b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8053b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 8063b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 8073b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void sendCDMAFeatureCodeResponse(RadioResponseInfo responseInfo) { 8083b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 8093b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 810246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8113b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8123b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 8133b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 8143b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void sendBurstDtmfResponse(RadioResponseInfo responseInfo) { 8153b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 8163b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 817246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8183b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8193b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 8203b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 8213b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param sms Sms result struct as defined by SendSmsResult in types.hal 8223b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 8233b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void sendCdmaSmsResponse(RadioResponseInfo responseInfo, SendSmsResult sms) { 8243b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseSms(responseInfo, sms); 8253b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 826246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8273b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8283b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 8293b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 8303b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void acknowledgeLastIncomingCdmaSmsResponse(RadioResponseInfo responseInfo) { 8313b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 8323b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 833246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8343b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8353b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 8363b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 8373b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param configs Vector of GSM/WCDMA Cell broadcast configs 8383b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 839246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getGsmBroadcastConfigResponse(RadioResponseInfo responseInfo, 8403b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<GsmBroadcastSmsConfigInfo> configs) { 8413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseGmsBroadcastConfig(responseInfo, configs); 8423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 843246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8453b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 8463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 8473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setGsmBroadcastConfigResponse(RadioResponseInfo responseInfo) { 8483b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 8493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 850246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 8533b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 8543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setGsmBroadcastActivationResponse(RadioResponseInfo responseInfo) { 8553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 8563b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 857246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8583b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 8603b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 8613b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param configs Vector of CDMA Broadcast SMS configs. 8623b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 863246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getCdmaBroadcastConfigResponse(RadioResponseInfo responseInfo, 8643b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<CdmaBroadcastSmsConfigInfo> configs) { 8653b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseCdmaBroadcastConfig(responseInfo, configs); 8663b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 867246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8683b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8693b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 8703b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 8713b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setCdmaBroadcastConfigResponse(RadioResponseInfo responseInfo) { 8723b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 8733b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 874246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8753b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8763b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 8773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 8783b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setCdmaBroadcastActivationResponse(RadioResponseInfo responseInfo) { 8793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 8803b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 881246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8823b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 8843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 8853b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param mdn MDN if CDMA subscription is available 8863b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param hSid is a comma separated list of H_SID (Home SID) if 8873b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * CDMA subscription is available, in decimal format 8883b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param hNid is a comma separated list of H_NID (Home NID) if 8893b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * CDMA subscription is available, in decimal format 8903b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param min MIN (10 digits, MIN2+MIN1) if CDMA subscription is available 8913b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param prl PRL version if CDMA subscription is available 8923b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 8933b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getCDMASubscriptionResponse(RadioResponseInfo responseInfo, String mdn, 8943b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe String hSid, String hNid, String min, String prl) { 8953b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseStrings(responseInfo, mdn, hSid, hNid, min, prl); 8963b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 897246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 8983b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 8993b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 9003b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 9013b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param index record index where the cmda sms message is stored 9023b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 9033b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void writeSmsToRuimResponse(RadioResponseInfo responseInfo, int index) { 9043b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, index); 9053b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 906246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 9073b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 9083b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 9093b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 9103b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void deleteSmsOnRuimResponse(RadioResponseInfo responseInfo) { 9113b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 9123b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 913246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 9143b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 9153b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 9163b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param imei IMEI if GSM subscription is available 9173b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param imeisv IMEISV if GSM subscription is available 9183b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param esn ESN if CDMA subscription is available 9193b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param meid MEID if CDMA subscription is available 9203b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 9213b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getDeviceIdentityResponse(RadioResponseInfo responseInfo, String imei, 9223b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe String imeisv, String esn, String meid) { 9233b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseStrings(responseInfo, imei, imeisv, esn, meid); 9243b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 925246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 9263b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 9273b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 9283b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 9293b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void exitEmergencyCallbackModeResponse(RadioResponseInfo responseInfo) { 9303b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 9313b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 932246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 9333b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 9343b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 9353b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param smsc Short Message Service Center address on the device 9363b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 9373b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getSmscAddressResponse(RadioResponseInfo responseInfo, String smsc) { 9383b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseString(responseInfo, smsc); 9393b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 940246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 9413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 9423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 9433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 9443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setSmscAddressResponse(RadioResponseInfo responseInfo) { 9453b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 9463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 947246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 9483b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 9493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 9503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 9513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void reportSmsMemoryStatusResponse(RadioResponseInfo responseInfo) { 9523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 9533b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 954246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 9553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 9569be7c26f29b4ba23409a197220063595cc80664dAmit Mahajan * @param responseInfo Response info struct containing response type, serial no. and error 9579be7c26f29b4ba23409a197220063595cc80664dAmit Mahajan */ 9589be7c26f29b4ba23409a197220063595cc80664dAmit Mahajan public void reportStkServiceIsRunningResponse(RadioResponseInfo responseInfo) { 9599be7c26f29b4ba23409a197220063595cc80664dAmit Mahajan responseVoid(responseInfo); 9609be7c26f29b4ba23409a197220063595cc80664dAmit Mahajan } 9619be7c26f29b4ba23409a197220063595cc80664dAmit Mahajan 9629be7c26f29b4ba23409a197220063595cc80664dAmit Mahajan /** 9633b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 9643b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 9653b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param source CDMA subscription source 9663b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 9673b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getCdmaSubscriptionSourceResponse(RadioResponseInfo responseInfo, int source) { 9683b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, source); 9693b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 970246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 9713b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 97212f844b0f84469c8cd8f094412a7599173aaaac3Nathan Harold * This method is deprecated and should not be used. 9733b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 9743b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 9753b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param response response string of the challenge/response algo for ISIM auth in base64 format 9763b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 9773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void requestIsimAuthenticationResponse(RadioResponseInfo responseInfo, String response) { 97812f844b0f84469c8cd8f094412a7599173aaaac3Nathan Harold throw new RuntimeException("Inexplicable response received for requestIsimAuthentication"); 9793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 980246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 9813b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 9823b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 9833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 9843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void acknowledgeIncomingGsmSmsWithPduResponse(RadioResponseInfo responseInfo) { 9853b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 9863b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 987246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 9883b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 9893b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 9903b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 9913b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param iccIo IccIoResult as defined in types.hal corresponding to ICC IO response 9923b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 993246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void sendEnvelopeWithStatusResponse(RadioResponseInfo responseInfo, 9943b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe android.hardware.radio.V1_0.IccIoResult iccIo) { 9953b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseIccIo(responseInfo, iccIo); 9963b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 997246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 9983b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 9993b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 10003b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 10013b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param rat Current voice RAT 10023b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 10033b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getVoiceRadioTechnologyResponse(RadioResponseInfo responseInfo, int rat) { 10043b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, rat); 10053b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1006246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 1007246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getCellInfoListResponse(RadioResponseInfo responseInfo, 1008d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan ArrayList<android.hardware.radio.V1_0.CellInfo> cellInfo) { 1009d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan responseCellInfoList(responseInfo, cellInfo); 1010d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1011246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 10123b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 10133b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 1014e9c396cfd047b045c6df08a32ef546600f921bfaCassie * @param cellInfo List of current cell information known to radio 1015e9c396cfd047b045c6df08a32ef546600f921bfaCassie */ 1016e9c396cfd047b045c6df08a32ef546600f921bfaCassie public void getCellInfoListResponse_1_2( 1017e9c396cfd047b045c6df08a32ef546600f921bfaCassie RadioResponseInfo responseInfo, 1018e9c396cfd047b045c6df08a32ef546600f921bfaCassie ArrayList<android.hardware.radio.V1_2.CellInfo> cellInfo) { 1019e9c396cfd047b045c6df08a32ef546600f921bfaCassie responseCellInfoList_1_2(responseInfo, cellInfo); 1020e9c396cfd047b045c6df08a32ef546600f921bfaCassie } 1021e9c396cfd047b045c6df08a32ef546600f921bfaCassie 1022e9c396cfd047b045c6df08a32ef546600f921bfaCassie /** 1023e9c396cfd047b045c6df08a32ef546600f921bfaCassie * @param responseInfo Response info struct containing response type, serial no. and error 10243b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 10253b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setCellInfoListRateResponse(RadioResponseInfo responseInfo) { 10263b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 10273b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1028246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 10293b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 10303b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 10313b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 10323b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setInitialAttachApnResponse(RadioResponseInfo responseInfo) { 10333b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 10343b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1035246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 10363b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 10373b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 10383b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 10393b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param isRegistered false = not registered, true = registered 10403b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param ratFamily RadioTechnologyFamily as defined in types.hal. This value is valid only if 10413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * isRegistered is true. 10423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 1043246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getImsRegistrationStateResponse(RadioResponseInfo responseInfo, 10443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe boolean isRegistered, int ratFamily) { 10453b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, isRegistered ? 1 : 0, ratFamily); 10463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1047246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 10483b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 10493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 10503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 10513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param sms Response to sms sent as defined by SendSmsResult in types.hal 10523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 10533b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void sendImsSmsResponse(RadioResponseInfo responseInfo, SendSmsResult sms) { 10543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseSms(responseInfo, sms); 10553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1056246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 10573b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 10583b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 10593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 10603b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param result IccIoResult as defined in types.hal 10613b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 10623b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void iccTransmitApduBasicChannelResponse(RadioResponseInfo responseInfo, 10633b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe android.hardware.radio.V1_0.IccIoResult 10643b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe result) { 10653b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseIccIo(responseInfo, result); 10663b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1067246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 10683b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 10693b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 10703b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 10713b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param channelId session id of the logical channel. 10723b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param selectResponse Contains the select response for the open channel command with one 10733b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * byte per integer 10743b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 10753b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void iccOpenLogicalChannelResponse(RadioResponseInfo responseInfo, int channelId, 10763b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<Byte> selectResponse) { 10773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<Integer> arr = new ArrayList<>(); 10783b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe arr.add(channelId); 10793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe for (int i = 0; i < selectResponse.size(); i++) { 10803b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe arr.add((int) selectResponse.get(i)); 10813b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 10823b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseIntArrayList(responseInfo, arr); 10833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1084246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 10853b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 10863b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 10873b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 10883b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void iccCloseLogicalChannelResponse(RadioResponseInfo responseInfo) { 10893b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 10903b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1091246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 10923b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 10933b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 10943b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 10953b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param result IccIoResult as defined in types.hal 10963b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 1097246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void iccTransmitApduLogicalChannelResponse( 1098246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan RadioResponseInfo responseInfo, 10993b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe android.hardware.radio.V1_0.IccIoResult result) { 11003b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseIccIo(responseInfo, result); 11013b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1102246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 11033b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 11043b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 11053b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 11063b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param result string containing the contents of the NV item 11073b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 11083b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void nvReadItemResponse(RadioResponseInfo responseInfo, String result) { 11093b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseString(responseInfo, result); 11103b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1111246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 11123b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 11133b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 11143b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 11153b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void nvWriteItemResponse(RadioResponseInfo responseInfo) { 11163b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 11173b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1118246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 11193b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 11203b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 11213b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 11223b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void nvWriteCdmaPrlResponse(RadioResponseInfo responseInfo) { 11233b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 11243b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1125246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 11263b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 11273b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 11283b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 11293b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void nvResetConfigResponse(RadioResponseInfo responseInfo) { 11303b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 11313b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1132246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 11333b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 11343b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 11353b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 11363b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setUiccSubscriptionResponse(RadioResponseInfo responseInfo) { 11373b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 11383b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1139246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 11403b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 11413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 11423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 11433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setDataAllowedResponse(RadioResponseInfo responseInfo) { 11443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 11453b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1146246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 1147246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getHardwareConfigResponse( 1148246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan RadioResponseInfo responseInfo, 1149d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan ArrayList<android.hardware.radio.V1_0.HardwareConfig> config) { 1150d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan responseHardwareConfig(responseInfo, config); 1151d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1152246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 11533b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 11543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 11553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 11563b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param result IccIoResult as defined in types.hal 11573b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 11583b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void requestIccSimAuthenticationResponse(RadioResponseInfo responseInfo, 11593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe android.hardware.radio.V1_0.IccIoResult 11603b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe result) { 11613b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseICC_IOBase64(responseInfo, result); 11623b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1163246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 11643b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 11653b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 11663b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 11673b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setDataProfileResponse(RadioResponseInfo responseInfo) { 11683b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 11693b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1170246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 11713b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 11723b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 11733b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 11743b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void requestShutdownResponse(RadioResponseInfo responseInfo) { 11753b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseVoid(responseInfo); 11763b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1177246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 1178246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getRadioCapabilityResponse(RadioResponseInfo responseInfo, 1179d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan android.hardware.radio.V1_0.RadioCapability rc) { 1180d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan RILRequest rr = mRil.processResponse(responseInfo); 1181d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 1182d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (rr != null) { 11839240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan RadioCapability ret = RIL.convertHalRadioCapability(rc, mRil); 11849240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if (responseInfo.error == RadioError.REQUEST_NOT_SUPPORTED 11859240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan || responseInfo.error == RadioError.GENERIC_FAILURE) { 1186d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan // we should construct the RAF bitmask the radio 1187d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan // supports based on preferred network bitmasks 1188d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan ret = mRil.makeStaticRadioCapability(); 1189d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan responseInfo.error = RadioError.NONE; 1190d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 11916f75943d15075631cd775a6efe6ff114334ebabdAmit Mahajan if (responseInfo.error == RadioError.NONE) { 11926f75943d15075631cd775a6efe6ff114334ebabdAmit Mahajan sendMessageResponse(rr.mResult, ret); 11936f75943d15075631cd775a6efe6ff114334ebabdAmit Mahajan } 1194d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan mRil.processResponseDone(rr, responseInfo, ret); 1195d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1196d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1197246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 1198246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void setRadioCapabilityResponse(RadioResponseInfo responseInfo, 1199d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan android.hardware.radio.V1_0.RadioCapability rc) { 1200d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan responseRadioCapability(responseInfo, rc); 1201d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1202246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 12033b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 12043b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 12053b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 12063b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param statusInfo LceStatusInfo indicating LCE status 12073b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 12083b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void startLceServiceResponse(RadioResponseInfo responseInfo, LceStatusInfo statusInfo) { 12093b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseLceStatus(responseInfo, statusInfo); 12103b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1211246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 12123b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 12133b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 12143b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 12153b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param statusInfo LceStatusInfo indicating LCE status 12163b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 12173b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void stopLceServiceResponse(RadioResponseInfo responseInfo, LceStatusInfo statusInfo) { 12183b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseLceStatus(responseInfo, statusInfo); 12193b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1220246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 1221d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan public void pullLceDataResponse(RadioResponseInfo responseInfo, LceDataInfo lceInfo) { 1222d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan responseLceData(responseInfo, lceInfo); 1223d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1224246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 12253b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 12263b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 12273b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 12283b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param activityInfo modem activity information 12293b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 1230246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan public void getModemActivityInfoResponse(RadioResponseInfo responseInfo, 12313b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ActivityStatsInfo activityInfo) { 12323b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseActivityData(responseInfo, activityInfo); 12333b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1234246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 12353b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 12363b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 12373b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 12383b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param numAllowed number of allowed carriers which have been set correctly. 12393b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * On success, it must match the length of list Carriers->allowedCarriers. 12403b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * if Length of allowed carriers list is 0, numAllowed = 0. 12413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 12423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void setAllowedCarriersResponse(RadioResponseInfo responseInfo, int numAllowed) { 12433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseInts(responseInfo, numAllowed); 12443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1245246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 12463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /** 12473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * 12483b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param responseInfo Response info struct containing response type, serial no. and error 12493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param allAllowed true only when all carriers are allowed. Ignore "carriers" struct. 12503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * If false, consider "carriers" struct 12513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe * @param carriers Carrier restriction information. 12523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe */ 12533b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe public void getAllowedCarriersResponse(RadioResponseInfo responseInfo, boolean allAllowed, 12543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe CarrierRestrictions carriers) { 12553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseCarrierIdentifiers(responseInfo, allAllowed, carriers); 12563b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 1257246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 125850b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu /** 125950b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu * @param responseInfo Response info struct containing response type, serial no. and error 126050b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu */ 126150b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu public void sendDeviceStateResponse(RadioResponseInfo responseInfo) { 126250b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu responseVoid(responseInfo); 126350b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu } 12646509576d8eb86664d1b5383a1b637e00748e807eJack Yu 126550b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu /** 126650b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu * @param responseInfo Response info struct containing response type, serial no. and error 126750b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu */ 1268e5d195404d66c60c1f35e9ac900768d86c2956a6pkanwar public void setCarrierInfoForImsiEncryptionResponse(RadioResponseInfo responseInfo) { 1269e5d195404d66c60c1f35e9ac900768d86c2956a6pkanwar responseVoid(responseInfo); 1270e5d195404d66c60c1f35e9ac900768d86c2956a6pkanwar } 1271e5d195404d66c60c1f35e9ac900768d86c2956a6pkanwar 1272e5d195404d66c60c1f35e9ac900768d86c2956a6pkanwar /** 1273e5d195404d66c60c1f35e9ac900768d86c2956a6pkanwar * @param responseInfo Response info struct containing response type, serial no. and error 1274e5d195404d66c60c1f35e9ac900768d86c2956a6pkanwar */ 127550b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu public void setIndicationFilterResponse(RadioResponseInfo responseInfo) { 127650b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu responseVoid(responseInfo); 127750b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu } 12786509576d8eb86664d1b5383a1b637e00748e807eJack Yu 1279df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu /** 1280df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu * @param responseInfo Response info struct containing response type, serial no. and error 1281df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu */ 1282df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu public void setSimCardPowerResponse(RadioResponseInfo responseInfo) { 1283df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu responseVoid(responseInfo); 1284df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu } 1285df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu 1286ed77f7847ae02b52a068cc4248987d1511328731Grace Chen /** 1287ed77f7847ae02b52a068cc4248987d1511328731Grace Chen * @param responseInfo Response info struct containing response type, serial no. and error 1288ed77f7847ae02b52a068cc4248987d1511328731Grace Chen */ 1289ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach public void setSignalStrengthReportingCriteriaResponse(RadioResponseInfo responseInfo) { 1290ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach responseVoid(responseInfo); 1291ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach } 1292ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach 1293ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach /** 1294ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach * @param responseInfo Response info struct containing response type, serial no. and error 1295ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach */ 1296ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach public void setLinkCapacityReportingCriteriaResponse(RadioResponseInfo responseInfo) { 1297ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach responseVoid(responseInfo); 1298ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach } 1299ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach 1300ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach /** 1301ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach * @param responseInfo Response info struct containing response type, serial no. and error 1302ebb82d1f70b71d7901540134c5de85f82aab82f9Eric Schwarzenbach */ 1303ed77f7847ae02b52a068cc4248987d1511328731Grace Chen public void setSimCardPowerResponse_1_1(RadioResponseInfo responseInfo) { 1304ed77f7847ae02b52a068cc4248987d1511328731Grace Chen responseVoid(responseInfo); 1305ed77f7847ae02b52a068cc4248987d1511328731Grace Chen } 1306ed77f7847ae02b52a068cc4248987d1511328731Grace Chen 130721cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold 130826cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold /** 130926cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold * @param responseInfo Response info struct containing response type, serial no. and error 131026cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold * @param keepaliveStatus status of the keepalive with a handle for the session 131126cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold */ 131226cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold public void startKeepaliveResponse(RadioResponseInfo responseInfo, 131321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold android.hardware.radio.V1_1.KeepaliveStatus keepaliveStatus) { 131421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold 131521cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold RILRequest rr = mRil.processResponse(responseInfo); 131621cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold 131721cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold if (rr == null) { 131821cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold return; 131921cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold } 132021cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold 132121cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold KeepaliveStatus ret = null; 132221cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold 132321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold switch(responseInfo.error) { 132421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold case RadioError.NONE: 132521cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold int convertedStatus = convertHalKeepaliveStatusCode(keepaliveStatus.code); 132621cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold if (convertedStatus < 0) { 132721cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold ret = new KeepaliveStatus(KeepaliveStatus.ERROR_UNSUPPORTED); 132821cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold } else { 132921cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold ret = new KeepaliveStatus(keepaliveStatus.sessionHandle, convertedStatus); 133021cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold } 133121cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold break; 133221cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold case RadioError.REQUEST_NOT_SUPPORTED: 133321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold ret = new KeepaliveStatus(KeepaliveStatus.ERROR_UNSUPPORTED); 133421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold // The request is unsupported, which is ok. We'll report it to the higher 133521cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold // layer and treat it as acceptable in the RIL. 133621cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold responseInfo.error = RadioError.NONE; 133721cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold break; 133821cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold case RadioError.NO_RESOURCES: 133921cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold ret = new KeepaliveStatus(KeepaliveStatus.ERROR_NO_RESOURCES); 134021cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold break; 134121cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold default: 134221cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold ret = new KeepaliveStatus(KeepaliveStatus.ERROR_UNKNOWN); 134321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold break; 134421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold } 134521cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold sendMessageResponse(rr.mResult, ret); 134621cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold mRil.processResponseDone(rr, responseInfo, ret); 134726cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold } 134826cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold 134926cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold /** 135026cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold * @param responseInfo Response info struct containing response type, serial no. and error 135126cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold */ 135226cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold public void stopKeepaliveResponse(RadioResponseInfo responseInfo) { 135321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold RILRequest rr = mRil.processResponse(responseInfo); 135421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold 135521cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold if (rr == null) { 135621cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold return; 135721cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold } 135821cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold 135921cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold if (responseInfo.error == RadioError.NONE) { 136021cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold sendMessageResponse(rr.mResult, null); 136121cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold mRil.processResponseDone(rr, responseInfo, null); 136221cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold } else { 136321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold //TODO: Error code translation 136421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold } 136521cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold } 136621cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold 136721cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold private int convertHalKeepaliveStatusCode(int halCode) { 136821cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold switch (halCode) { 136921cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold case android.hardware.radio.V1_1.KeepaliveStatusCode.ACTIVE: 137021cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold return KeepaliveStatus.STATUS_ACTIVE; 137121cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold case android.hardware.radio.V1_1.KeepaliveStatusCode.INACTIVE: 137221cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold return KeepaliveStatus.STATUS_INACTIVE; 137321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold case android.hardware.radio.V1_1.KeepaliveStatusCode.PENDING: 137421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold return KeepaliveStatus.STATUS_PENDING; 137521cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold default: 137621cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold mRil.riljLog("Invalid Keepalive Status" + halCode); 137721cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold return -1; 137821cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold } 137926cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold } 138026cacd7346a126a6e5cba72bcc9e300d95f6eee8Nathan Harold 13814e10a61602bd065cdf71d0335493ac3444d5055ayinxu private IccCardStatus convertHalCardStatus(CardStatus cardStatus) { 13824e10a61602bd065cdf71d0335493ac3444d5055ayinxu IccCardStatus iccCardStatus = new IccCardStatus(); 13834e10a61602bd065cdf71d0335493ac3444d5055ayinxu iccCardStatus.setCardState(cardStatus.cardState); 13844e10a61602bd065cdf71d0335493ac3444d5055ayinxu iccCardStatus.setUniversalPinState(cardStatus.universalPinState); 13854e10a61602bd065cdf71d0335493ac3444d5055ayinxu iccCardStatus.mGsmUmtsSubscriptionAppIndex = cardStatus.gsmUmtsSubscriptionAppIndex; 13864e10a61602bd065cdf71d0335493ac3444d5055ayinxu iccCardStatus.mCdmaSubscriptionAppIndex = cardStatus.cdmaSubscriptionAppIndex; 13874e10a61602bd065cdf71d0335493ac3444d5055ayinxu iccCardStatus.mImsSubscriptionAppIndex = cardStatus.imsSubscriptionAppIndex; 13884e10a61602bd065cdf71d0335493ac3444d5055ayinxu int numApplications = cardStatus.applications.size(); 13894e10a61602bd065cdf71d0335493ac3444d5055ayinxu 13904e10a61602bd065cdf71d0335493ac3444d5055ayinxu // limit to maximum allowed applications 13914e10a61602bd065cdf71d0335493ac3444d5055ayinxu if (numApplications 13924e10a61602bd065cdf71d0335493ac3444d5055ayinxu > com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS) { 13934e10a61602bd065cdf71d0335493ac3444d5055ayinxu numApplications = 13944e10a61602bd065cdf71d0335493ac3444d5055ayinxu com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS; 13954e10a61602bd065cdf71d0335493ac3444d5055ayinxu } 13964e10a61602bd065cdf71d0335493ac3444d5055ayinxu iccCardStatus.mApplications = new IccCardApplicationStatus[numApplications]; 13974e10a61602bd065cdf71d0335493ac3444d5055ayinxu for (int i = 0; i < numApplications; i++) { 13984e10a61602bd065cdf71d0335493ac3444d5055ayinxu AppStatus rilAppStatus = cardStatus.applications.get(i); 13994e10a61602bd065cdf71d0335493ac3444d5055ayinxu IccCardApplicationStatus appStatus = new IccCardApplicationStatus(); 14004e10a61602bd065cdf71d0335493ac3444d5055ayinxu appStatus.app_type = appStatus.AppTypeFromRILInt(rilAppStatus.appType); 14014e10a61602bd065cdf71d0335493ac3444d5055ayinxu appStatus.app_state = appStatus.AppStateFromRILInt(rilAppStatus.appState); 14024e10a61602bd065cdf71d0335493ac3444d5055ayinxu appStatus.perso_substate = appStatus.PersoSubstateFromRILInt( 14034e10a61602bd065cdf71d0335493ac3444d5055ayinxu rilAppStatus.persoSubstate); 14044e10a61602bd065cdf71d0335493ac3444d5055ayinxu appStatus.aid = rilAppStatus.aidPtr; 14054e10a61602bd065cdf71d0335493ac3444d5055ayinxu appStatus.app_label = rilAppStatus.appLabelPtr; 14064e10a61602bd065cdf71d0335493ac3444d5055ayinxu appStatus.pin1_replaced = rilAppStatus.pin1Replaced; 14074e10a61602bd065cdf71d0335493ac3444d5055ayinxu appStatus.pin1 = appStatus.PinStateFromRILInt(rilAppStatus.pin1); 14084e10a61602bd065cdf71d0335493ac3444d5055ayinxu appStatus.pin2 = appStatus.PinStateFromRILInt(rilAppStatus.pin2); 14094e10a61602bd065cdf71d0335493ac3444d5055ayinxu iccCardStatus.mApplications[i] = appStatus; 1410ea3a4caa4fe516faceeaf47da08fad349df7eb5ayinxu mRil.riljLog("IccCardApplicationStatus " + i + ":" + appStatus.toString()); 14114e10a61602bd065cdf71d0335493ac3444d5055ayinxu } 14124e10a61602bd065cdf71d0335493ac3444d5055ayinxu return iccCardStatus; 14134e10a61602bd065cdf71d0335493ac3444d5055ayinxu } 14144e10a61602bd065cdf71d0335493ac3444d5055ayinxu 141513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe private void responseIccCardStatus(RadioResponseInfo responseInfo, CardStatus cardStatus) { 141613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 1417246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 141813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe if (rr != null) { 14194e10a61602bd065cdf71d0335493ac3444d5055ayinxu IccCardStatus iccCardStatus = convertHalCardStatus(cardStatus); 14204e10a61602bd065cdf71d0335493ac3444d5055ayinxu mRil.riljLog("responseIccCardStatus: from HIDL: " + iccCardStatus); 14214e10a61602bd065cdf71d0335493ac3444d5055ayinxu if (responseInfo.error == RadioError.NONE) { 14224e10a61602bd065cdf71d0335493ac3444d5055ayinxu sendMessageResponse(rr.mResult, iccCardStatus); 14239240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 14244e10a61602bd065cdf71d0335493ac3444d5055ayinxu mRil.processResponseDone(rr, responseInfo, iccCardStatus); 14254e10a61602bd065cdf71d0335493ac3444d5055ayinxu } 14264e10a61602bd065cdf71d0335493ac3444d5055ayinxu } 14274e10a61602bd065cdf71d0335493ac3444d5055ayinxu 14284e10a61602bd065cdf71d0335493ac3444d5055ayinxu private void responseIccCardStatus_1_2(RadioResponseInfo responseInfo, 14294e10a61602bd065cdf71d0335493ac3444d5055ayinxu android.hardware.radio.V1_2.CardStatus cardStatus) { 14304e10a61602bd065cdf71d0335493ac3444d5055ayinxu RILRequest rr = mRil.processResponse(responseInfo); 14314e10a61602bd065cdf71d0335493ac3444d5055ayinxu 14324e10a61602bd065cdf71d0335493ac3444d5055ayinxu if (rr != null) { 14334e10a61602bd065cdf71d0335493ac3444d5055ayinxu IccCardStatus iccCardStatus = convertHalCardStatus(cardStatus.base); 14344e10a61602bd065cdf71d0335493ac3444d5055ayinxu iccCardStatus.physicalSlotIndex = cardStatus.physicalSlotId; 14354e10a61602bd065cdf71d0335493ac3444d5055ayinxu iccCardStatus.atr = cardStatus.atr; 14364e10a61602bd065cdf71d0335493ac3444d5055ayinxu iccCardStatus.iccid = cardStatus.iccid; 14379240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.riljLog("responseIccCardStatus: from HIDL: " + iccCardStatus); 143813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe if (responseInfo.error == RadioError.NONE) { 14399240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan sendMessageResponse(rr.mResult, iccCardStatus); 144013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 14419240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.processResponseDone(rr, responseInfo, iccCardStatus); 144213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 144313b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 1444246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 144513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe private void responseInts(RadioResponseInfo responseInfo, int ...var) { 14463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe final ArrayList<Integer> ints = new ArrayList<>(); 14473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe for (int i = 0; i < var.length; i++) { 14483b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ints.add(var[i]); 14493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 14503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe responseIntArrayList(responseInfo, ints); 14513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 14523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 14533b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseIntArrayList(RadioResponseInfo responseInfo, ArrayList<Integer> var) { 145413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 1455246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan 145613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe if (rr != null) { 14579240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan int[] ret = new int[var.size()]; 14589240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan for (int i = 0; i < var.size(); i++) { 14599240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i] = var.get(i); 14609240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 146113b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe if (responseInfo.error == RadioError.NONE) { 146213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe sendMessageResponse(rr.mResult, ret); 146313b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 146413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 1465246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan } 146613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 146713b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 146813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe private void responseCurrentCalls(RadioResponseInfo responseInfo, 146913b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe ArrayList<android.hardware.radio.V1_0.Call> calls) { 147013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 147113b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 147213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe if (rr != null) { 14739240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan int num = calls.size(); 14749240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ArrayList<DriverCall> dcCalls = new ArrayList<DriverCall>(num); 14759240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan DriverCall dc; 14769240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan 14779240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan for (int i = 0; i < num; i++) { 14789240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc = new DriverCall(); 14799240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan // TODO: change name of function stateFromCLCC() in DriverCall.java to name 14809240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan // clarifying what is CLCC 14819240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.state = DriverCall.stateFromCLCC((int) (calls.get(i).state)); 14829240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.index = calls.get(i).index; 14839240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.TOA = calls.get(i).toa; 14849240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.isMpty = calls.get(i).isMpty; 14859240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.isMT = calls.get(i).isMT; 14869240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.als = calls.get(i).als; 14879240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.isVoice = calls.get(i).isVoice; 14889240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.isVoicePrivacy = calls.get(i).isVoicePrivacy; 14899240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.number = calls.get(i).number; 14909240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.numberPresentation = 14919240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan DriverCall.presentationFromCLIP( 14929240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan (int) (calls.get(i).numberPresentation)); 14939240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.name = calls.get(i).name; 14949240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.namePresentation = 14959240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan DriverCall.presentationFromCLIP((int) (calls.get(i).namePresentation)); 14969240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if (calls.get(i).uusInfo.size() == 1) { 14979240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.uusInfo = new UUSInfo(); 14989240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.uusInfo.setType(calls.get(i).uusInfo.get(0).uusType); 14999240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.uusInfo.setDcs(calls.get(i).uusInfo.get(0).uusDcs); 15000b23fe5834db6b9f53111487e2911cbc394fe761sqian if (!TextUtils.isEmpty(calls.get(i).uusInfo.get(0).uusData)) { 15019240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan byte[] userData = calls.get(i).uusInfo.get(0).uusData.getBytes(); 15029240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.uusInfo.setUserData(userData); 150313b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } else { 15040b23fe5834db6b9f53111487e2911cbc394fe761sqian mRil.riljLog("responseCurrentCalls: uusInfo data is null or empty"); 150513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 150613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 15079240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.riljLogv(String.format("Incoming UUS : type=%d, dcs=%d, length=%d", 15089240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.uusInfo.getType(), dc.uusInfo.getDcs(), 15099240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.uusInfo.getUserData().length)); 15109240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.riljLogv("Incoming UUS : data (hex): " 15119240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan + IccUtils.bytesToHexString(dc.uusInfo.getUserData())); 15129240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } else { 15139240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.riljLogv("Incoming UUS : NOT present!"); 15149240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 151513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 15169240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan // Make sure there's a leading + on addresses with a TOA of 145 15179240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dc.number = PhoneNumberUtils.stringFromStringAndTOA(dc.number, dc.TOA); 151813b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 15199240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan dcCalls.add(dc); 15209240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan 15219240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if (dc.isVoicePrivacy) { 15229240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.mVoicePrivacyOnRegistrants.notifyRegistrants(); 15239240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.riljLog("InCall VoicePrivacy is enabled"); 15249240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } else { 15259240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.mVoicePrivacyOffRegistrants.notifyRegistrants(); 15269240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.riljLog("InCall VoicePrivacy is disabled"); 152713b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 15289240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 152913b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 15309240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan Collections.sort(dcCalls); 153113b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 15329240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if ((num == 0) && mRil.mTestingEmergencyCall.getAndSet(false)) { 15339240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if (mRil.mEmergencyCallbackModeRegistrant != null) { 15349240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.riljLog("responseCurrentCalls: call ended, testing emergency call," 15359240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan + " notify ECM Registrants"); 15369240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.mEmergencyCallbackModeRegistrant.notifyRegistrant(); 153713b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 15389240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 153913b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 15409240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if (responseInfo.error == RadioError.NONE) { 15419240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan sendMessageResponse(rr.mResult, dcCalls); 154213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 15439240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.processResponseDone(rr, responseInfo, dcCalls); 154413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 154513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 154613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 15474e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka private void responseCurrentCalls_1_2(RadioResponseInfo responseInfo, 15484e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka ArrayList<android.hardware.radio.V1_2.Call> calls) { 15494e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka RILRequest rr = mRil.processResponse(responseInfo); 15504e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 15514e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka if (rr != null) { 15524e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka int num = calls.size(); 15534e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka ArrayList<DriverCall> dcCalls = new ArrayList<DriverCall>(num); 15544e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka DriverCall dc; 15554e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 15564e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka for (int i = 0; i < num; i++) { 15574e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc = new DriverCall(); 15584e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka // TODO: change name of function stateFromCLCC() in DriverCall.java to name 15594e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka // clarifying what is CLCC 15604e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.state = DriverCall.stateFromCLCC((int) (calls.get(i).base.state)); 15614e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.index = calls.get(i).base.index; 15624e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.TOA = calls.get(i).base.toa; 15634e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.isMpty = calls.get(i).base.isMpty; 15644e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.isMT = calls.get(i).base.isMT; 15654e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.als = calls.get(i).base.als; 15664e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.isVoice = calls.get(i).base.isVoice; 15674e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.isVoicePrivacy = calls.get(i).base.isVoicePrivacy; 15684e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.number = calls.get(i).base.number; 15694e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.numberPresentation = 15704e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka DriverCall.presentationFromCLIP( 15714e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka (int) (calls.get(i).base.numberPresentation)); 15724e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.name = calls.get(i).base.name; 15734e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.namePresentation = 15744e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka DriverCall.presentationFromCLIP((int) (calls.get(i).base.namePresentation)); 15754e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka if (calls.get(i).base.uusInfo.size() == 1) { 15764e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.uusInfo = new UUSInfo(); 15774e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.uusInfo.setType(calls.get(i).base.uusInfo.get(0).uusType); 15784e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.uusInfo.setDcs(calls.get(i).base.uusInfo.get(0).uusDcs); 15794e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka if (!TextUtils.isEmpty(calls.get(i).base.uusInfo.get(0).uusData)) { 15804e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka byte[] userData = calls.get(i).base.uusInfo.get(0).uusData.getBytes(); 15814e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.uusInfo.setUserData(userData); 15824e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } else { 15834e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka mRil.riljLog("responseCurrentCalls: uusInfo data is null or empty"); 15844e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } 15854e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 15864e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka mRil.riljLogv(String.format("Incoming UUS : type=%d, dcs=%d, length=%d", 15874e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.uusInfo.getType(), dc.uusInfo.getDcs(), 15884e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.uusInfo.getUserData().length)); 15894e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka mRil.riljLogv("Incoming UUS : data (hex): " 15904e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka + IccUtils.bytesToHexString(dc.uusInfo.getUserData())); 15914e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } else { 15924e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka mRil.riljLogv("Incoming UUS : NOT present!"); 15934e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } 15944e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 15954e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka // Make sure there's a leading + on addresses with a TOA of 145 15964e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.number = PhoneNumberUtils.stringFromStringAndTOA(dc.number, dc.TOA); 15974e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 15984e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dc.audioQuality = (int) (calls.get(i).audioQuality); 15994e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 16004e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka dcCalls.add(dc); 16014e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 16024e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka if (dc.isVoicePrivacy) { 16034e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka mRil.mVoicePrivacyOnRegistrants.notifyRegistrants(); 16044e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka mRil.riljLog("InCall VoicePrivacy is enabled"); 16054e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } else { 16064e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka mRil.mVoicePrivacyOffRegistrants.notifyRegistrants(); 16074e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka mRil.riljLog("InCall VoicePrivacy is disabled"); 16084e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } 16094e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } 16104e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 16114e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka Collections.sort(dcCalls); 16124e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 16134e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka if ((num == 0) && mRil.mTestingEmergencyCall.getAndSet(false)) { 16144e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka if (mRil.mEmergencyCallbackModeRegistrant != null) { 16154e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka mRil.riljLog("responseCurrentCalls: call ended, testing emergency call," 16164e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka + " notify ECM Registrants"); 16174e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka mRil.mEmergencyCallbackModeRegistrant.notifyRegistrant(); 16184e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } 16194e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } 16204e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 16214e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka if (responseInfo.error == RadioError.NONE) { 16224e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka sendMessageResponse(rr.mResult, dcCalls); 16234e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } 16244e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka mRil.processResponseDone(rr, responseInfo, dcCalls); 16254e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } 16264e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka } 16274e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 16284e5766109645e58abfb272261f3e6b18d584aab4Adrian Muzyka 162913b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe private void responseVoid(RadioResponseInfo responseInfo) { 163013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 163113b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 163213b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe if (rr != null) { 163313b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe Object ret = null; 163413b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe if (responseInfo.error == RadioError.NONE) { 163513b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe sendMessageResponse(rr.mResult, ret); 163613b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe } 163713b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 1638246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan } 1639246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan } 164013b2867e7d74a0234735502c4f922a281c8b0438Sanket Padawe 16413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseString(RadioResponseInfo responseInfo, String str) { 16423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 16433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 16443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 16453b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (responseInfo.error == RadioError.NONE) { 16469240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan sendMessageResponse(rr.mResult, str); 16473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 16489240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan mRil.processResponseDone(rr, responseInfo, str); 16493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 16503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 16513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 16523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseStrings(RadioResponseInfo responseInfo, String ...str) { 16533b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<String> strings = new ArrayList<>(); 16543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe for (int i = 0; i < str.length; i++) { 16553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe strings.add(str[i]); 16563b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 165772c0d812e2e53b35c09ee9bfffe04779636678a3Amit Mahajan responseStringArrayList(mRil, responseInfo, strings); 16583b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 16593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 166072c0d812e2e53b35c09ee9bfffe04779636678a3Amit Mahajan static void responseStringArrayList(RIL ril, RadioResponseInfo responseInfo, 166172c0d812e2e53b35c09ee9bfffe04779636678a3Amit Mahajan ArrayList<String> strings) { 166272c0d812e2e53b35c09ee9bfffe04779636678a3Amit Mahajan RILRequest rr = ril.processResponse(responseInfo); 16633b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 16643b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 16659240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan String[] ret = new String[strings.size()]; 16669240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan for (int i = 0; i < strings.size(); i++) { 16679240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i] = strings.get(i); 16689240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 16693b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (responseInfo.error == RadioError.NONE) { 16703b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 16713b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 167272c0d812e2e53b35c09ee9bfffe04779636678a3Amit Mahajan ril.processResponseDone(rr, responseInfo, ret); 16733b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 16743b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 16753b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 16763b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseLastCallFailCauseInfo(RadioResponseInfo responseInfo, 16773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe LastCallFailCauseInfo fcInfo) { 16783b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 16793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 16803b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 16819240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan LastCallFailCause ret = new LastCallFailCause(); 16829240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret.causeCode = fcInfo.causeCode; 16839240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret.vendorCause = fcInfo.vendorCause; 16843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (responseInfo.error == RadioError.NONE) { 16853b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 16863b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 16873b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 16883b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 16893b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 16903b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 1691e6702220aa471f98579102516afa8aa268820856Wei Huang private void responseSignalStrength( 1692e6702220aa471f98579102516afa8aa268820856Wei Huang RadioResponseInfo responseInfo, 1693e6702220aa471f98579102516afa8aa268820856Wei Huang android.hardware.radio.V1_0.SignalStrength signalStrength) { 1694e6702220aa471f98579102516afa8aa268820856Wei Huang RILRequest rr = mRil.processResponse(responseInfo); 1695e6702220aa471f98579102516afa8aa268820856Wei Huang 1696e6702220aa471f98579102516afa8aa268820856Wei Huang if (rr != null) { 1697e6702220aa471f98579102516afa8aa268820856Wei Huang SignalStrength ret = RIL.convertHalSignalStrength(signalStrength); 1698e6702220aa471f98579102516afa8aa268820856Wei Huang if (responseInfo.error == RadioError.NONE) { 1699e6702220aa471f98579102516afa8aa268820856Wei Huang sendMessageResponse(rr.mResult, ret); 1700e6702220aa471f98579102516afa8aa268820856Wei Huang } 1701e6702220aa471f98579102516afa8aa268820856Wei Huang mRil.processResponseDone(rr, responseInfo, ret); 1702e6702220aa471f98579102516afa8aa268820856Wei Huang } 1703e6702220aa471f98579102516afa8aa268820856Wei Huang } 1704e6702220aa471f98579102516afa8aa268820856Wei Huang 1705e6702220aa471f98579102516afa8aa268820856Wei Huang private void responseSignalStrength_1_2( 1706e6702220aa471f98579102516afa8aa268820856Wei Huang RadioResponseInfo responseInfo, 1707e6702220aa471f98579102516afa8aa268820856Wei Huang android.hardware.radio.V1_2.SignalStrength signalStrength) { 1708d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan RILRequest rr = mRil.processResponse(responseInfo); 1709d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 1710d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (rr != null) { 1711e6702220aa471f98579102516afa8aa268820856Wei Huang SignalStrength ret = RIL.convertHalSignalStrength_1_2(signalStrength); 1712d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (responseInfo.error == RadioError.NONE) { 1713d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan sendMessageResponse(rr.mResult, ret); 1714d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1715d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan mRil.processResponseDone(rr, responseInfo, ret); 1716d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1717d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1718d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 17193b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseSms(RadioResponseInfo responseInfo, SendSmsResult sms) { 17203b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 17213b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 17223b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 17239240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan SmsResponse ret = new SmsResponse(sms.messageRef, sms.ackPDU, sms.errorCode); 17243b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (responseInfo.error == RadioError.NONE) { 17253b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 17263b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 17273b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 17283b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 17293b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 17303b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 1731d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan private void responseSetupDataCall(RadioResponseInfo responseInfo, 1732caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu SetupDataCallResult setupDataCallResult) { 1733d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan RILRequest rr = mRil.processResponse(responseInfo); 1734d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 1735d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (rr != null) { 1736d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (responseInfo.error == RadioError.NONE) { 173771f909237a9921f52d91440fb8f9c6fc97465a52Jack Yu sendMessageResponse(rr.mResult, setupDataCallResult); 1738d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 173971f909237a9921f52d91440fb8f9c6fc97465a52Jack Yu mRil.processResponseDone(rr, responseInfo, setupDataCallResult); 1740d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1741d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1742d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 17433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseIccIo(RadioResponseInfo responseInfo, 17443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe android.hardware.radio.V1_0.IccIoResult result) { 17453b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 17463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 17473b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 17489240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan IccIoResult ret = new IccIoResult(result.sw1, result.sw2, result.simResponse); 17493b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (responseInfo.error == RadioError.NONE) { 17503b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 17513b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 17523b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 17533b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 17543b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 17553b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 17563b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseCallForwardInfo(RadioResponseInfo responseInfo, 17573b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<android.hardware.radio.V1_0.CallForwardInfo> 17583b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe callForwardInfos) { 17593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 17603b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 17619240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan CallForwardInfo[] ret = new CallForwardInfo[callForwardInfos.size()]; 17629240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan for (int i = 0; i < callForwardInfos.size(); i++) { 17639240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i] = new CallForwardInfo(); 17649240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i].status = callForwardInfos.get(i).status; 17659240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i].reason = callForwardInfos.get(i).reason; 17669240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i].serviceClass = callForwardInfos.get(i).serviceClass; 17679240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i].toa = callForwardInfos.get(i).toa; 17689240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i].number = callForwardInfos.get(i).number; 17699240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i].timeSeconds = callForwardInfos.get(i).timeSeconds; 17709240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 17713b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (responseInfo.error == RadioError.NONE) { 17723b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 17733b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 17743b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 17753b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 17763b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 17773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 1778caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu private static String convertOpertatorInfoToString(int status) { 17793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (status == android.hardware.radio.V1_0.OperatorStatus.UNKNOWN) { 17803b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe return "unknown"; 17813b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } else if (status == android.hardware.radio.V1_0.OperatorStatus.AVAILABLE) { 17823b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe return "available"; 17833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } else if (status == android.hardware.radio.V1_0.OperatorStatus.CURRENT) { 17843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe return "current"; 17853b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } else if (status == android.hardware.radio.V1_0.OperatorStatus.FORBIDDEN) { 17863b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe return "forbidden"; 17873b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } else { 17883b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe return ""; 17893b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 17903b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 17913b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 17923b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseOperatorInfos(RadioResponseInfo responseInfo, 17933b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<android.hardware.radio.V1_0.OperatorInfo> 17943b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe networkInfos) { 17953b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 17963b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 17973b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 17989240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ArrayList<OperatorInfo> ret = new ArrayList<OperatorInfo>(); 17999240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan for (int i = 0; i < networkInfos.size(); i++) { 18009240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret.add(new OperatorInfo(networkInfos.get(i).alphaLong, 18019240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan networkInfos.get(i).alphaShort, networkInfos.get(i).operatorNumeric, 18029240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan convertOpertatorInfoToString(networkInfos.get(i).status))); 18039240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 18043b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (responseInfo.error == RadioError.NONE) { 18053b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 18063b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 18073b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 18083b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 18093b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 18103b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 1811ffcdbea80c50d4911d52f61611722e446af72b66yinxu private void responseScanStatus(RadioResponseInfo responseInfo) { 1812ffcdbea80c50d4911d52f61611722e446af72b66yinxu RILRequest rr = mRil.processResponse(responseInfo); 1813ffcdbea80c50d4911d52f61611722e446af72b66yinxu 1814ffcdbea80c50d4911d52f61611722e446af72b66yinxu if (rr != null) { 18154f4a1971ab6607c9b9d840173205e31a7c2de4b0yinxu NetworkScanResult nsr = null; 18164f4a1971ab6607c9b9d840173205e31a7c2de4b0yinxu if (responseInfo.error == RadioError.NONE) { 18174f4a1971ab6607c9b9d840173205e31a7c2de4b0yinxu nsr = new NetworkScanResult( 18184f4a1971ab6607c9b9d840173205e31a7c2de4b0yinxu NetworkScanResult.SCAN_STATUS_PARTIAL, RadioError.NONE, null); 18194f4a1971ab6607c9b9d840173205e31a7c2de4b0yinxu sendMessageResponse(rr.mResult, nsr); 18204f4a1971ab6607c9b9d840173205e31a7c2de4b0yinxu } 1821ffcdbea80c50d4911d52f61611722e446af72b66yinxu mRil.processResponseDone(rr, responseInfo, nsr); 1822ffcdbea80c50d4911d52f61611722e446af72b66yinxu } 1823ffcdbea80c50d4911d52f61611722e446af72b66yinxu } 1824ffcdbea80c50d4911d52f61611722e446af72b66yinxu 1825d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan private void responseDataCallList(RadioResponseInfo responseInfo, 1826caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu ArrayList<SetupDataCallResult> dataCallResultList) { 1827d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan RILRequest rr = mRil.processResponse(responseInfo); 1828d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 1829d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (rr != null) { 1830d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (responseInfo.error == RadioError.NONE) { 183171f909237a9921f52d91440fb8f9c6fc97465a52Jack Yu sendMessageResponse(rr.mResult, dataCallResultList); 1832d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 183371f909237a9921f52d91440fb8f9c6fc97465a52Jack Yu mRil.processResponseDone(rr, responseInfo, dataCallResultList); 1834d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1835d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1836d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 18373b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseCellList(RadioResponseInfo responseInfo, 18383b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<NeighboringCell> cells) { 18393b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 18403b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 18413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 18423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe int rssi; 18433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe String location; 18449240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ArrayList<NeighboringCellInfo> ret = new ArrayList<NeighboringCellInfo>(); 18453b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe NeighboringCellInfo cell; 18463b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 18479240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan int[] subId = SubscriptionManager.getSubId(mRil.mPhoneId); 18489240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan int radioType = 18499240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ((TelephonyManager) mRil.mContext.getSystemService( 18509240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan Context.TELEPHONY_SERVICE)).getDataNetworkType(subId[0]); 18519240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan 18529240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if (radioType != TelephonyManager.NETWORK_TYPE_UNKNOWN) { 18539240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan for (int i = 0; i < cells.size(); i++) { 18549240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan rssi = cells.get(i).rssi; 18559240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan location = cells.get(i).cid; 18569240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan cell = new NeighboringCellInfo(rssi, location, radioType); 18579240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret.add(cell); 18583b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 18599240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 18609240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if (responseInfo.error == RadioError.NONE) { 18613b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 18623b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 18633b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 18643b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 18653b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 18663b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 18673b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseGmsBroadcastConfig(RadioResponseInfo responseInfo, 18683b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<GsmBroadcastSmsConfigInfo> configs) { 18693b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 18703b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 18713b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 18729240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ArrayList<SmsBroadcastConfigInfo> ret = new ArrayList<SmsBroadcastConfigInfo>(); 18739240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan for (int i = 0; i < configs.size(); i++) { 18749240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret.add(new SmsBroadcastConfigInfo(configs.get(i).fromServiceId, 18759240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan configs.get(i).toServiceId, configs.get(i).fromCodeScheme, 18769240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan configs.get(i).toCodeScheme, configs.get(i).selected)); 18779240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 18783b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (responseInfo.error == RadioError.NONE) { 18793b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 18803b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 18813b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 18823b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 18833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 18843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 18853b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseCdmaBroadcastConfig(RadioResponseInfo responseInfo, 18863b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ArrayList<CdmaBroadcastSmsConfigInfo> configs) { 18873b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 18883b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 18893b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 18903b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe int[] ret = null; 18913b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 18929240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan int numServiceCategories = configs.size(); 18939240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan 18949240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if (numServiceCategories == 0) { 18959240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan // TODO: The logic of providing default values should 18969240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan // not be done by this transport layer. And needs to 18979240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan // be done by the vendor ril or application logic. 18989240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan int numInts; 18999240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan numInts = CDMA_BROADCAST_SMS_NO_OF_SERVICE_CATEGORIES 19009240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan * CDMA_BSI_NO_OF_INTS_STRUCT + 1; 19019240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret = new int[numInts]; 19029240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan 19039240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan // Faking a default record for all possible records. 19049240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[0] = CDMA_BROADCAST_SMS_NO_OF_SERVICE_CATEGORIES; 19059240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan 19069240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan // Loop over CDMA_BROADCAST_SMS_NO_OF_SERVICE_CATEGORIES set 'english' as 19079240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan // default language and selection status to false for all. 19089240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan for (int i = 1; i < numInts; i += CDMA_BSI_NO_OF_INTS_STRUCT) { 19099240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i + 0] = i / CDMA_BSI_NO_OF_INTS_STRUCT; 19109240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i + 1] = 1; 19119240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i + 2] = 0; 19129240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 19139240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } else { 19149240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan int numInts; 19159240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan numInts = (numServiceCategories * CDMA_BSI_NO_OF_INTS_STRUCT) + 1; 19169240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret = new int[numInts]; 19179240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan 19189240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[0] = numServiceCategories; 19199240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan for (int i = 1, j = 0; j < configs.size(); 19209240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan j++, i = i + CDMA_BSI_NO_OF_INTS_STRUCT) { 19219240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i] = configs.get(j).serviceCategory; 19229240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i + 1] = configs.get(j).language; 19239240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret[i + 2] = configs.get(j).selected ? 1 : 0; 19243b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 19259240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 19269240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if (responseInfo.error == RadioError.NONE) { 19273b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 19283b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 19293b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 19303b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 19313b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 19323b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 1933d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan private void responseCellInfoList(RadioResponseInfo responseInfo, 1934d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan ArrayList<android.hardware.radio.V1_0.CellInfo> cellInfo) { 1935d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan RILRequest rr = mRil.processResponse(responseInfo); 1936d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 1937d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (rr != null) { 19389240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ArrayList<CellInfo> ret = RIL.convertHalCellInfoList(cellInfo); 1939d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (responseInfo.error == RadioError.NONE) { 1940d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan sendMessageResponse(rr.mResult, ret); 1941d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1942d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan mRil.processResponseDone(rr, responseInfo, ret); 1943d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1944d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1945d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 1946e9c396cfd047b045c6df08a32ef546600f921bfaCassie private void responseCellInfoList_1_2( 1947e9c396cfd047b045c6df08a32ef546600f921bfaCassie RadioResponseInfo responseInfo, 1948e9c396cfd047b045c6df08a32ef546600f921bfaCassie ArrayList<android.hardware.radio.V1_2.CellInfo> cellInfo) { 1949e9c396cfd047b045c6df08a32ef546600f921bfaCassie RILRequest rr = mRil.processResponse(responseInfo); 1950e9c396cfd047b045c6df08a32ef546600f921bfaCassie 1951e9c396cfd047b045c6df08a32ef546600f921bfaCassie if (rr != null) { 1952e9c396cfd047b045c6df08a32ef546600f921bfaCassie ArrayList<CellInfo> ret = RIL.convertHalCellInfoList_1_2(cellInfo); 1953e9c396cfd047b045c6df08a32ef546600f921bfaCassie if (responseInfo.error == RadioError.NONE) { 1954e9c396cfd047b045c6df08a32ef546600f921bfaCassie sendMessageResponse(rr.mResult, ret); 1955e9c396cfd047b045c6df08a32ef546600f921bfaCassie } 1956e9c396cfd047b045c6df08a32ef546600f921bfaCassie mRil.processResponseDone(rr, responseInfo, ret); 1957e9c396cfd047b045c6df08a32ef546600f921bfaCassie } 1958e9c396cfd047b045c6df08a32ef546600f921bfaCassie } 1959e9c396cfd047b045c6df08a32ef546600f921bfaCassie 19603b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseActivityData(RadioResponseInfo responseInfo, 19613b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ActivityStatsInfo activityInfo) { 19623b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 19633b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 19643b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 19653b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ModemActivityInfo ret = null; 19663b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (responseInfo.error == RadioError.NONE) { 19673b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe final int sleepModeTimeMs = activityInfo.sleepModeTimeMs; 19683b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe final int idleModeTimeMs = activityInfo.idleModeTimeMs; 19693b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe int [] txModeTimeMs = new int[ModemActivityInfo.TX_POWER_LEVELS]; 19703b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe for (int i = 0; i < ModemActivityInfo.TX_POWER_LEVELS; i++) { 19713b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe txModeTimeMs[i] = activityInfo.txmModetimeMs[i]; 19723b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 19733b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe final int rxModeTimeMs = activityInfo.rxModeTimeMs; 19743b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ret = new ModemActivityInfo(SystemClock.elapsedRealtime(), sleepModeTimeMs, 19753b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe idleModeTimeMs, txModeTimeMs, rxModeTimeMs, 0); 19763b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } else { 19773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe ret = new ModemActivityInfo(0, 0, 0, new int [ModemActivityInfo.TX_POWER_LEVELS], 19783b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 0, 0); 1979d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan responseInfo.error = RadioError.NONE; 19803b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 19813b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 19823b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 19833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 19843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 19853b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 1986d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan private void responseHardwareConfig( 1987d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan RadioResponseInfo responseInfo, 1988d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan ArrayList<android.hardware.radio.V1_0.HardwareConfig> config) { 1989d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan RILRequest rr = mRil.processResponse(responseInfo); 1990d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 1991d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (rr != null) { 19929240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ArrayList<HardwareConfig> ret = RIL.convertHalHwConfigList(config, mRil); 1993d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (responseInfo.error == RadioError.NONE) { 1994d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan sendMessageResponse(rr.mResult, ret); 1995d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1996d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan mRil.processResponseDone(rr, responseInfo, ret); 1997d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1998d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 1999d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 20003b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseICC_IOBase64(RadioResponseInfo responseInfo, 20013b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe android.hardware.radio.V1_0.IccIoResult result) { 20023b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 20033b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 20043b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 20059240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan IccIoResult ret = new IccIoResult( 20069240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan result.sw1, 20079240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan result.sw2, 20089240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan (!(result.simResponse).equals("")) 20099240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ? android.util.Base64.decode(result.simResponse, 20109240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan android.util.Base64.DEFAULT) : (byte[]) null); 20113b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (responseInfo.error == RadioError.NONE) { 20123b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 20133b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 20143b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 20153b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 20163b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 20173b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 2018d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan private void responseRadioCapability(RadioResponseInfo responseInfo, 2019d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan android.hardware.radio.V1_0.RadioCapability rc) { 2020d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan RILRequest rr = mRil.processResponse(responseInfo); 2021d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 2022d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (rr != null) { 20239240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan RadioCapability ret = RIL.convertHalRadioCapability(rc, mRil); 2024d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (responseInfo.error == RadioError.NONE) { 2025d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan sendMessageResponse(rr.mResult, ret); 2026d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 2027d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan mRil.processResponseDone(rr, responseInfo, ret); 2028d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 2029d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 2030d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 20313b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseLceStatus(RadioResponseInfo responseInfo, LceStatusInfo statusInfo) { 20323b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 20333b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 20343b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 20359240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ArrayList<Integer> ret = new ArrayList<Integer>(); 20369240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret.add(statusInfo.lceStatus); 2037152ec067149afef2e05216fe7137bd21c1584ff0Amit Mahajan ret.add(Byte.toUnsignedInt(statusInfo.actualIntervalMs)); 20383b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (responseInfo.error == RadioError.NONE) { 20393b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 20403b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 20413b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 20423b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 20433b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 20443b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 2045d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan private void responseLceData(RadioResponseInfo responseInfo, LceDataInfo lceInfo) { 2046d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan RILRequest rr = mRil.processResponse(responseInfo); 2047d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 2048d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (rr != null) { 20497afdb3942adde7efd33b5af5556fead92243e49cNathan Harold LinkCapacityEstimate ret = RIL.convertHalLceData(lceInfo, mRil); 2050d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan if (responseInfo.error == RadioError.NONE) { 2051d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan sendMessageResponse(rr.mResult, ret); 2052d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 2053d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan mRil.processResponseDone(rr, responseInfo, ret); 2054d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 2055d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan } 2056d8fe3ba2e6fbc96e80609f694cb0031ef40371e4Amit Mahajan 20573b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe private void responseCarrierIdentifiers(RadioResponseInfo responseInfo, boolean allAllowed, 20583b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe CarrierRestrictions carriers) { 20593b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe RILRequest rr = mRil.processResponse(responseInfo); 20603b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe 20613b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe if (rr != null) { 20629240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan List<CarrierIdentifier> ret = new ArrayList<CarrierIdentifier>(); 20639240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan for (int i = 0; i < carriers.allowedCarriers.size(); i++) { 20649240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan String mcc = carriers.allowedCarriers.get(i).mcc; 20659240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan String mnc = carriers.allowedCarriers.get(i).mnc; 20669240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan String spn = null, imsi = null, gid1 = null, gid2 = null; 20679240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan int matchType = carriers.allowedCarriers.get(i).matchType; 20689240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan String matchData = carriers.allowedCarriers.get(i).matchData; 20699240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if (matchType == CarrierIdentifier.MatchType.SPN) { 20709240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan spn = matchData; 20719240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } else if (matchType == CarrierIdentifier.MatchType.IMSI_PREFIX) { 20729240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan imsi = matchData; 20739240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } else if (matchType == CarrierIdentifier.MatchType.GID1) { 20749240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan gid1 = matchData; 20759240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } else if (matchType == CarrierIdentifier.MatchType.GID2) { 20769240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan gid2 = matchData; 20773b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 20789240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan ret.add(new CarrierIdentifier(mcc, mnc, spn, imsi, gid1, gid2)); 20799240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan } 20809240572c00c2f5b0fe5d01864eaec7d541d08aa1Amit Mahajan if (responseInfo.error == RadioError.NONE) { 20813b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe /* TODO: Handle excluded carriers */ 20823b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe sendMessageResponse(rr.mResult, ret); 20833b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 20843b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe mRil.processResponseDone(rr, responseInfo, ret); 20853b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 20863b51aec7f0eca9a2b7af7fdf605ae7bf9d9c5f4aSanket Padawe } 2087246295a9ce6d2ae2613ff95b3e85ea1c0406d164Amit Mahajan} 2088