10de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian/*
20de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian * Copyright (C) 2018 The Android Open Source Project
30de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian *
40de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian * Licensed under the Apache License, Version 2.1 (the "License");
50de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian * you may not use this file except in compliance with the License.
60de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian * You may obtain a copy of the License at
70de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian *
80de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian *      http://www.apache.org/licenses/LICENSE-2.1
90de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian *
100de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian * Unless required by applicable law or agreed to in writing, software
110de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian * distributed under the License is distributed on an "AS IS" BASIS,
120de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian * See the License for the specific language governing permissions and
140de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian * limitations under the License.
150de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian */
160de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian#ifndef ANDROID_HARDWARE_RADIO_V1_2_RADIO_H
170de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian#define ANDROID_HARDWARE_RADIO_V1_2_RADIO_H
180de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian
190de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian#include <android/hardware/radio/1.2/IRadio.h>
200de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian#include <android/hardware/radio/1.2/IRadioIndication.h>
210de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian#include <android/hardware/radio/1.2/IRadioResponse.h>
220de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian#include <hidl/MQDescriptor.h>
230de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian#include <hidl/Status.h>
240de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian#include <log/log.h>
250de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian
260de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqiannamespace android {
270de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqiannamespace hardware {
280de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqiannamespace radio {
290de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqiannamespace V1_2 {
300de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqiannamespace implementation {
310de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian
320de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqianusing ::android::hardware::hidl_array;
330de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqianusing ::android::hardware::hidl_memory;
340de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqianusing ::android::hardware::hidl_string;
350de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqianusing ::android::hardware::hidl_vec;
360de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqianusing ::android::hardware::Return;
370de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqianusing ::android::hardware::Void;
380de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqianusing ::android::sp;
390de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian
400de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqianstruct Radio : public IRadio {
410de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    sp<::android::hardware::radio::V1_0::IRadioResponse> mRadioResponse;
420de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    sp<::android::hardware::radio::V1_0::IRadioIndication> mRadioIndication;
430de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    sp<::android::hardware::radio::V1_1::IRadioResponse> mRadioResponseV1_1;
440de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    sp<::android::hardware::radio::V1_1::IRadioIndication> mRadioIndicationV1_1;
450de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    sp<::android::hardware::radio::V1_2::IRadioResponse> mRadioResponseV1_2;
460de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    sp<::android::hardware::radio::V1_2::IRadioIndication> mRadioIndicationV1_2;
470de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian
480de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    // Methods from ::android::hardware::radio::V1_0::IRadio follow.
490de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setResponseFunctions(
500de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const sp<::android::hardware::radio::V1_0::IRadioResponse>& radioResponse,
510de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const sp<::android::hardware::radio::V1_0::IRadioIndication>& radioIndication) override;
520de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getIccCardStatus(int32_t serial) override;
530de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> supplyIccPinForApp(int32_t serial, const hidl_string& pin,
540de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                    const hidl_string& aid) override;
550de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> supplyIccPukForApp(int32_t serial, const hidl_string& puk, const hidl_string& pin,
560de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                    const hidl_string& aid) override;
570de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> supplyIccPin2ForApp(int32_t serial, const hidl_string& pin2,
580de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                     const hidl_string& aid) override;
590de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> supplyIccPuk2ForApp(int32_t serial, const hidl_string& puk2,
600de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                     const hidl_string& pin2, const hidl_string& aid) override;
610de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> changeIccPinForApp(int32_t serial, const hidl_string& oldPin,
620de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                    const hidl_string& newPin, const hidl_string& aid) override;
630de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> changeIccPin2ForApp(int32_t serial, const hidl_string& oldPin2,
640de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                     const hidl_string& newPin2, const hidl_string& aid) override;
650de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> supplyNetworkDepersonalization(int32_t serial, const hidl_string& netPin) override;
660de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getCurrentCalls(int32_t serial) override;
670de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> dial(int32_t serial,
680de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                      const ::android::hardware::radio::V1_0::Dial& dialInfo) override;
690de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getImsiForApp(int32_t serial, const hidl_string& aid) override;
700de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> hangup(int32_t serial, int32_t gsmIndex) override;
710de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> hangupWaitingOrBackground(int32_t serial) override;
720de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> hangupForegroundResumeBackground(int32_t serial) override;
730de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> switchWaitingOrHoldingAndActive(int32_t serial) override;
740de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> conference(int32_t serial) override;
750de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> rejectCall(int32_t serial) override;
760de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getLastCallFailCause(int32_t serial) override;
770de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getSignalStrength(int32_t serial) override;
780de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getVoiceRegistrationState(int32_t serial) override;
790de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getDataRegistrationState(int32_t serial) override;
800de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getOperator(int32_t serial) override;
810de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setRadioPower(int32_t serial, bool on) override;
820de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendDtmf(int32_t serial, const hidl_string& s) override;
830de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendSms(int32_t serial,
840de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                         const ::android::hardware::radio::V1_0::GsmSmsMessage& message) override;
850de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendSMSExpectMore(
860de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const ::android::hardware::radio::V1_0::GsmSmsMessage& message) override;
870de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setupDataCall(
880de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, ::android::hardware::radio::V1_0::RadioTechnology radioTechnology,
890de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const ::android::hardware::radio::V1_0::DataProfileInfo& dataProfileInfo,
900de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        bool modemCognitive, bool roamingAllowed, bool isRoaming) override;
910de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> iccIOForApp(int32_t serial,
920de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                             const ::android::hardware::radio::V1_0::IccIo& iccIo) override;
930de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendUssd(int32_t serial, const hidl_string& ussd) override;
940de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> cancelPendingUssd(int32_t serial) override;
950de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getClir(int32_t serial) override;
960de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setClir(int32_t serial, int32_t status) override;
970de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getCallForwardStatus(
980de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const ::android::hardware::radio::V1_0::CallForwardInfo& callInfo) override;
990de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setCallForward(
1000de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const ::android::hardware::radio::V1_0::CallForwardInfo& callInfo) override;
1010de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getCallWaiting(int32_t serial, int32_t serviceClass) override;
1020de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setCallWaiting(int32_t serial, bool enable, int32_t serviceClass) override;
1030de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> acknowledgeLastIncomingGsmSms(
1040de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, bool success,
1050de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        ::android::hardware::radio::V1_0::SmsAcknowledgeFailCause cause) override;
1060de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> acceptCall(int32_t serial) override;
1070de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> deactivateDataCall(int32_t serial, int32_t cid, bool reasonRadioShutDown) override;
1080de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getFacilityLockForApp(int32_t serial, const hidl_string& facility,
1090de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                       const hidl_string& password, int32_t serviceClass,
1100de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                       const hidl_string& appId) override;
1110de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setFacilityLockForApp(int32_t serial, const hidl_string& facility, bool lockState,
1120de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                       const hidl_string& password, int32_t serviceClass,
1130de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                       const hidl_string& appId) override;
1140de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setBarringPassword(int32_t serial, const hidl_string& facility,
1150de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                    const hidl_string& oldPassword,
1160de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                    const hidl_string& newPassword) override;
1170de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getNetworkSelectionMode(int32_t serial) override;
1180de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setNetworkSelectionModeAutomatic(int32_t serial) override;
1190de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setNetworkSelectionModeManual(int32_t serial,
1200de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                               const hidl_string& operatorNumeric) override;
1210de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getAvailableNetworks(int32_t serial) override;
1220de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> startDtmf(int32_t serial, const hidl_string& s) override;
1230de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> stopDtmf(int32_t serial) override;
1240de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getBasebandVersion(int32_t serial) override;
1250de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> separateConnection(int32_t serial, int32_t gsmIndex) override;
1260de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setMute(int32_t serial, bool enable) override;
1270de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getMute(int32_t serial) override;
1280de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getClip(int32_t serial) override;
1290de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getDataCallList(int32_t serial) override;
1300de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setSuppServiceNotifications(int32_t serial, bool enable) override;
1310de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> writeSmsToSim(
1320de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial,
1330de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const ::android::hardware::radio::V1_0::SmsWriteArgs& smsWriteArgs) override;
1340de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> deleteSmsOnSim(int32_t serial, int32_t index) override;
1350de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setBandMode(int32_t serial,
1360de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                             ::android::hardware::radio::V1_0::RadioBandMode mode) override;
1370de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getAvailableBandModes(int32_t serial) override;
1380de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendEnvelope(int32_t serial, const hidl_string& command) override;
1390de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendTerminalResponseToSim(int32_t serial,
1400de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                           const hidl_string& commandResponse) override;
1410de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> handleStkCallSetupRequestFromSim(int32_t serial, bool accept) override;
1420de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> explicitCallTransfer(int32_t serial) override;
1430de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setPreferredNetworkType(
1440de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, ::android::hardware::radio::V1_0::PreferredNetworkType nwType) override;
1450de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getPreferredNetworkType(int32_t serial) override;
1460de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getNeighboringCids(int32_t serial) override;
1470de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setLocationUpdates(int32_t serial, bool enable) override;
1480de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setCdmaSubscriptionSource(
1490de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, ::android::hardware::radio::V1_0::CdmaSubscriptionSource cdmaSub) override;
1500de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setCdmaRoamingPreference(
1510de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, ::android::hardware::radio::V1_0::CdmaRoamingType type) override;
1520de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getCdmaRoamingPreference(int32_t serial) override;
1530de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setTTYMode(int32_t serial,
1540de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                            ::android::hardware::radio::V1_0::TtyMode mode) override;
1550de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getTTYMode(int32_t serial) override;
1560de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setPreferredVoicePrivacy(int32_t serial, bool enable) override;
1570de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getPreferredVoicePrivacy(int32_t serial) override;
1580de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendCDMAFeatureCode(int32_t serial, const hidl_string& featureCode) override;
1590de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendBurstDtmf(int32_t serial, const hidl_string& dtmf, int32_t on,
1600de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                               int32_t off) override;
1610de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendCdmaSms(int32_t serial,
1620de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                             const ::android::hardware::radio::V1_0::CdmaSmsMessage& sms) override;
1630de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> acknowledgeLastIncomingCdmaSms(
1640de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const ::android::hardware::radio::V1_0::CdmaSmsAck& smsAck) override;
1650de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getGsmBroadcastConfig(int32_t serial) override;
1660de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setGsmBroadcastConfig(
1670de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial,
1680de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const hidl_vec<::android::hardware::radio::V1_0::GsmBroadcastSmsConfigInfo>& configInfo)
1690de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        override;
1700de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setGsmBroadcastActivation(int32_t serial, bool activate) override;
1710de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getCdmaBroadcastConfig(int32_t serial) override;
1720de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setCdmaBroadcastConfig(
1730de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial,
1740de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const hidl_vec<::android::hardware::radio::V1_0::CdmaBroadcastSmsConfigInfo>& configInfo)
1750de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        override;
1760de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setCdmaBroadcastActivation(int32_t serial, bool activate) override;
1770de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getCDMASubscription(int32_t serial) override;
1780de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> writeSmsToRuim(
1790de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const ::android::hardware::radio::V1_0::CdmaSmsWriteArgs& cdmaSms) override;
1800de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> deleteSmsOnRuim(int32_t serial, int32_t index) override;
1810de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getDeviceIdentity(int32_t serial) override;
1820de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> exitEmergencyCallbackMode(int32_t serial) override;
1830de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getSmscAddress(int32_t serial) override;
1840de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setSmscAddress(int32_t serial, const hidl_string& smsc) override;
1850de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> reportSmsMemoryStatus(int32_t serial, bool available) override;
1860de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> reportStkServiceIsRunning(int32_t serial) override;
1870de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getCdmaSubscriptionSource(int32_t serial) override;
1880de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> requestIsimAuthentication(int32_t serial, const hidl_string& challenge) override;
1890de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> acknowledgeIncomingGsmSmsWithPdu(int32_t serial, bool success,
1900de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                                  const hidl_string& ackPdu) override;
1910de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendEnvelopeWithStatus(int32_t serial, const hidl_string& contents) override;
1920de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getVoiceRadioTechnology(int32_t serial) override;
1930de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getCellInfoList(int32_t serial) override;
1940de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setCellInfoListRate(int32_t serial, int32_t rate) override;
1950de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setInitialAttachApn(
1960de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const ::android::hardware::radio::V1_0::DataProfileInfo& dataProfileInfo,
1970de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        bool modemCognitive, bool isRoaming) override;
1980de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getImsRegistrationState(int32_t serial) override;
1990de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendImsSms(
2000de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const ::android::hardware::radio::V1_0::ImsSmsMessage& message) override;
2010de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> iccTransmitApduBasicChannel(
2020de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const ::android::hardware::radio::V1_0::SimApdu& message) override;
2030de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> iccOpenLogicalChannel(int32_t serial, const hidl_string& aid, int32_t p2) override;
2040de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> iccCloseLogicalChannel(int32_t serial, int32_t channelId) override;
2050de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> iccTransmitApduLogicalChannel(
2060de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const ::android::hardware::radio::V1_0::SimApdu& message) override;
2070de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> nvReadItem(int32_t serial,
2080de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                            ::android::hardware::radio::V1_0::NvItem itemId) override;
2090de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> nvWriteItem(int32_t serial,
2100de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                             const ::android::hardware::radio::V1_0::NvWriteItem& item) override;
2110de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> nvWriteCdmaPrl(int32_t serial, const hidl_vec<uint8_t>& prl) override;
2120de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> nvResetConfig(int32_t serial,
2130de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                               ::android::hardware::radio::V1_0::ResetNvType resetType) override;
2140de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setUiccSubscription(
2150de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const ::android::hardware::radio::V1_0::SelectUiccSub& uiccSub) override;
2160de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setDataAllowed(int32_t serial, bool allow) override;
2170de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getHardwareConfig(int32_t serial) override;
2180de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> requestIccSimAuthentication(int32_t serial, int32_t authContext,
2190de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                             const hidl_string& authData,
2200de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                             const hidl_string& aid) override;
2210de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setDataProfile(
2220de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const hidl_vec<::android::hardware::radio::V1_0::DataProfileInfo>& profiles,
2230de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        bool isRoaming) override;
2240de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> requestShutdown(int32_t serial) override;
2250de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getRadioCapability(int32_t serial) override;
2260de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setRadioCapability(
2270de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, const ::android::hardware::radio::V1_0::RadioCapability& rc) override;
2280de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> startLceService(int32_t serial, int32_t reportInterval, bool pullMode) override;
2290de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> stopLceService(int32_t serial) override;
2300de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> pullLceData(int32_t serial) override;
2310de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getModemActivityInfo(int32_t serial) override;
2320de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setAllowedCarriers(
2330de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, bool allAllowed,
2340de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const ::android::hardware::radio::V1_0::CarrierRestrictions& carriers) override;
2350de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> getAllowedCarriers(int32_t serial) override;
2360de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> sendDeviceState(int32_t serial,
2370de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                 ::android::hardware::radio::V1_0::DeviceStateType deviceStateType,
2380de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                 bool state) override;
2390de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setIndicationFilter(int32_t serial,
2400de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                     hidl_bitfield<IndicationFilter> indicationFilter) override;
2410de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setSimCardPower(int32_t serial, bool powerUp) override;
2420de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> responseAcknowledgement() override;
2430de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian
2440de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    // Methods from ::android::hardware::radio::V1_1::IRadio follow.
2450de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setCarrierInfoForImsiEncryption(
2460de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial,
2470de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const ::android::hardware::radio::V1_1::ImsiEncryptionInfo& imsiEncryptionInfo) override;
2480de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setSimCardPower_1_1(
2490de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, ::android::hardware::radio::V1_1::CardPowerState powerUp) override;
2500de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> startNetworkScan(
2510de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial,
2520de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const ::android::hardware::radio::V1_1::NetworkScanRequest& request) override;
2530de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> stopNetworkScan(int32_t serial) override;
2540de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> startKeepalive(
2550de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial,
2560de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const ::android::hardware::radio::V1_1::KeepaliveRequest& keepalive) override;
2570de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> stopKeepalive(int32_t serial, int32_t sessionHandle) override;
2580de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian
2590de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    // Methods from ::android::hardware::radio::V1_2::IRadio follow.
2600de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> startNetworkScan_1_2(
2610de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial,
2620de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const ::android::hardware::radio::V1_2::NetworkScanRequest& request) override;
2630de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setIndicationFilter_1_2(int32_t serial,
2640de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian                                         hidl_bitfield<IndicationFilter> indicationFilter) override;
2650de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setSignalStrengthReportingCriteria(
2660de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, int32_t hysteresisMs, int32_t hysteresisDb,
2670de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const hidl_vec<int32_t>& thresholdsDbm,
2680de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        ::android::hardware::radio::V1_2::AccessNetwork accessNetwork) override;
2690de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setLinkCapacityReportingCriteria(
2700de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, int32_t hysteresisMs, int32_t hysteresisDlKbps, int32_t hysteresisUlKbps,
2710de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const hidl_vec<int32_t>& thresholdsDownlinkKbps,
2720de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const hidl_vec<int32_t>& thresholdsUplinkKbps,
2730de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        ::android::hardware::radio::V1_2::AccessNetwork accessNetwork) override;
2740de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> setupDataCall_1_2(
2750de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, ::android::hardware::radio::V1_2::AccessNetwork accessNetwork,
2760de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const ::android::hardware::radio::V1_0::DataProfileInfo& dataProfileInfo,
2770de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        bool modemCognitive, bool roamingAllowed, bool isRoaming,
2780de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        ::android::hardware::radio::V1_2::DataRequestReason reason,
2790de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        const hidl_vec<hidl_string>& addresses, const hidl_vec<hidl_string>& dnses) override;
2800de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian    Return<void> deactivateDataCall_1_2(
2810de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        int32_t serial, int32_t cid,
2820de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian        ::android::hardware::radio::V1_2::DataRequestReason reason) override;
2830de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian};
2840de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian
2850de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian}  // namespace implementation
2860de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian}  // namespace V1_2
2870de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian}  // namespace radio
2880de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian}  // namespace hardware
2890de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian}  // namespace android
2900de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian
2910de4d31569444d3d4b819bbf3e783ee9f0f17c9dsqian#endif  // ANDROID_HARDWARE_RADIO_V1_2_RADIO_H
292