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