1e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe/* 2e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * Copyright (C) 2017 The Android Open Source Project 3e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * 4e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * Licensed under the Apache License, Version 2.0 (the "License"); 5e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * you may not use this file except in compliance with the License. 6e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * You may obtain a copy of the License at 7e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * 8e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * http://www.apache.org/licenses/LICENSE-2.0 9e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * 10e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * Unless required by applicable law or agreed to in writing, software 11e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * distributed under the License is distributed on an "AS IS" BASIS, 12e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * See the License for the specific language governing permissions and 14e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe * limitations under the License. 15e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe */ 16e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 17e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe#include <android-base/logging.h> 18e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 196b8720110bf2d40ac1364c364a85c31b358889f1Yuexi Ma#include <VtsHalHidlTargetTestBase.h> 2021b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang#include <VtsHalHidlTargetTestEnvBase.h> 21e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe#include <chrono> 22e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe#include <condition_variable> 23e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe#include <mutex> 24e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 25e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe#include <android/hardware/radio/1.0/IRadio.h> 26e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe#include <android/hardware/radio/1.0/IRadioIndication.h> 2787bde3312ab61714a3469f59084b40c46a6627deYuexi Ma#include <android/hardware/radio/1.0/IRadioResponse.h> 28e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe#include <android/hardware/radio/1.0/types.h> 29e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 300c74fc78392703e19ba51ce0ced510a55a0a994bsqian#include "vts_test_util.h" 31fcc61188827e1472965b36041c29b80cbe4079basqian 3254d88b7a997888b71c682dddf0f24d6dccbfbcddsqianusing namespace ::android::hardware::radio::V1_0; 33e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 34e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padaweusing ::android::hardware::hidl_string; 3528fc10fba95e34337038587e4d306af0c2b8a3c8Sanket Padaweusing ::android::hardware::hidl_vec; 36e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padaweusing ::android::hardware::Return; 37e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padaweusing ::android::hardware::Void; 38e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padaweusing ::android::sp; 39e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 4008e90550f19de78894ddd5879f17f64c0a1ea8b6sqian#define TIMEOUT_PERIOD 75 41807bc1546b62f1041bab8a1b1e308dd4014968c8Sanket Padawe#define RADIO_SERVICE_NAME "slot1" 42e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 43e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padaweclass RadioHidlTest; 441512edb314e42dbae1e7b55971d466904ed88e13Sanket Padaweextern CardStatus cardStatus; 45e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 46e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe/* Callback class for radio response */ 47e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padaweclass RadioResponse : public IRadioResponse { 480c74fc78392703e19ba51ce0ced510a55a0a994bsqian protected: 49fcc61188827e1472965b36041c29b80cbe4079basqian RadioHidlTest& parent; 50e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 51fcc61188827e1472965b36041c29b80cbe4079basqian public: 52fcc61188827e1472965b36041c29b80cbe4079basqian RadioResponseInfo rspInfo; 53fcc61188827e1472965b36041c29b80cbe4079basqian hidl_string imsi; 54fcc61188827e1472965b36041c29b80cbe4079basqian IccIoResult iccIoResult; 55fcc61188827e1472965b36041c29b80cbe4079basqian int channelId; 56e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 57fcc61188827e1472965b36041c29b80cbe4079basqian // Sms 58fcc61188827e1472965b36041c29b80cbe4079basqian SendSmsResult sendSmsResult; 59fcc61188827e1472965b36041c29b80cbe4079basqian hidl_string smscAddress; 60fcc61188827e1472965b36041c29b80cbe4079basqian uint32_t writeSmsToSimIndex; 61fcc61188827e1472965b36041c29b80cbe4079basqian uint32_t writeSmsToRuimIndex; 62064ee51e0793ab7c8ad8cc440843c995f145e0a4Shuoq 63fcc61188827e1472965b36041c29b80cbe4079basqian RadioResponse(RadioHidlTest& parent); 64e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 65fcc61188827e1472965b36041c29b80cbe4079basqian virtual ~RadioResponse() = default; 66e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 67fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getIccCardStatusResponse(const RadioResponseInfo& info, 68fcc61188827e1472965b36041c29b80cbe4079basqian const CardStatus& cardStatus); 69e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 70fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> supplyIccPinForAppResponse(const RadioResponseInfo& info, 71fcc61188827e1472965b36041c29b80cbe4079basqian int32_t remainingRetries); 72e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 73fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> supplyIccPukForAppResponse(const RadioResponseInfo& info, 74fcc61188827e1472965b36041c29b80cbe4079basqian int32_t remainingRetries); 75e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 76fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> supplyIccPin2ForAppResponse(const RadioResponseInfo& info, 77fcc61188827e1472965b36041c29b80cbe4079basqian int32_t remainingRetries); 78e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 79fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> supplyIccPuk2ForAppResponse(const RadioResponseInfo& info, 80fcc61188827e1472965b36041c29b80cbe4079basqian int32_t remainingRetries); 81e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 82fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> changeIccPinForAppResponse(const RadioResponseInfo& info, 83fcc61188827e1472965b36041c29b80cbe4079basqian int32_t remainingRetries); 84e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 85fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> changeIccPin2ForAppResponse(const RadioResponseInfo& info, 86fcc61188827e1472965b36041c29b80cbe4079basqian int32_t remainingRetries); 87e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 88fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> supplyNetworkDepersonalizationResponse(const RadioResponseInfo& info, 89fcc61188827e1472965b36041c29b80cbe4079basqian int32_t remainingRetries); 90e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 91fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getCurrentCallsResponse(const RadioResponseInfo& info, 92fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_vec<Call>& calls); 93e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 94fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> dialResponse(const RadioResponseInfo& info); 95e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 96fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getIMSIForAppResponse(const RadioResponseInfo& info, 97fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& imsi); 98e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 99fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> hangupConnectionResponse(const RadioResponseInfo& info); 100e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 101fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> hangupWaitingOrBackgroundResponse(const RadioResponseInfo& info); 102e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 103fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> hangupForegroundResumeBackgroundResponse(const RadioResponseInfo& info); 104e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 105fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> switchWaitingOrHoldingAndActiveResponse(const RadioResponseInfo& info); 106e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 107fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> conferenceResponse(const RadioResponseInfo& info); 108e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 109fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> rejectCallResponse(const RadioResponseInfo& info); 110e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 111fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getLastCallFailCauseResponse(const RadioResponseInfo& info, 112fcc61188827e1472965b36041c29b80cbe4079basqian const LastCallFailCauseInfo& failCauseInfo); 113e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 114fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getSignalStrengthResponse(const RadioResponseInfo& info, 115fcc61188827e1472965b36041c29b80cbe4079basqian const SignalStrength& sigStrength); 116e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 117fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getVoiceRegistrationStateResponse(const RadioResponseInfo& info, 118fcc61188827e1472965b36041c29b80cbe4079basqian const VoiceRegStateResult& voiceRegResponse); 119e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 120fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getDataRegistrationStateResponse(const RadioResponseInfo& info, 121fcc61188827e1472965b36041c29b80cbe4079basqian const DataRegStateResult& dataRegResponse); 122e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 123fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getOperatorResponse(const RadioResponseInfo& info, 124fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& longName, 125fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& shortName, 126fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& numeric); 127e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 128fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setRadioPowerResponse(const RadioResponseInfo& info); 129e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 130fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendDtmfResponse(const RadioResponseInfo& info); 131e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 132fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendSmsResponse(const RadioResponseInfo& info, const SendSmsResult& sms); 133e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 134fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendSMSExpectMoreResponse(const RadioResponseInfo& info, const SendSmsResult& sms); 135e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 136fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setupDataCallResponse(const RadioResponseInfo& info, 137fcc61188827e1472965b36041c29b80cbe4079basqian const SetupDataCallResult& dcResponse); 138e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 139fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> iccIOForAppResponse(const RadioResponseInfo& info, const IccIoResult& iccIo); 140e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 141fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendUssdResponse(const RadioResponseInfo& info); 142e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 143fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> cancelPendingUssdResponse(const RadioResponseInfo& info); 144e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 145fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getClirResponse(const RadioResponseInfo& info, int32_t n, int32_t m); 146e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 147fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setClirResponse(const RadioResponseInfo& info); 148e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 149fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getCallForwardStatusResponse( 150fcc61188827e1472965b36041c29b80cbe4079basqian const RadioResponseInfo& info, 151fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_vec<CallForwardInfo>& call_forwardInfos); 152e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 153fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setCallForwardResponse(const RadioResponseInfo& info); 154e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 155fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getCallWaitingResponse(const RadioResponseInfo& info, bool enable, 156fcc61188827e1472965b36041c29b80cbe4079basqian int32_t serviceClass); 157e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 158fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setCallWaitingResponse(const RadioResponseInfo& info); 159e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 160fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> acknowledgeLastIncomingGsmSmsResponse(const RadioResponseInfo& info); 161e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 162fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> acceptCallResponse(const RadioResponseInfo& info); 163e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 164fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> deactivateDataCallResponse(const RadioResponseInfo& info); 165e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 166fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getFacilityLockForAppResponse(const RadioResponseInfo& info, int32_t response); 167e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 168fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setFacilityLockForAppResponse(const RadioResponseInfo& info, int32_t retry); 169e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 170fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setBarringPasswordResponse(const RadioResponseInfo& info); 171e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 172fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getNetworkSelectionModeResponse(const RadioResponseInfo& info, bool manual); 173e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 174fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setNetworkSelectionModeAutomaticResponse(const RadioResponseInfo& info); 175e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 176fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setNetworkSelectionModeManualResponse(const RadioResponseInfo& info); 177e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 178fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getAvailableNetworksResponse( 179fcc61188827e1472965b36041c29b80cbe4079basqian const RadioResponseInfo& info, 180fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_vec<OperatorInfo>& networkInfos); 181e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 182fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> startDtmfResponse(const RadioResponseInfo& info); 183e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 184fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> stopDtmfResponse(const RadioResponseInfo& info); 185e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 186fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getBasebandVersionResponse(const RadioResponseInfo& info, 187fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& version); 188e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 189fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> separateConnectionResponse(const RadioResponseInfo& info); 190e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 191fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setMuteResponse(const RadioResponseInfo& info); 192e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 193fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getMuteResponse(const RadioResponseInfo& info, bool enable); 194e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 195fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getClipResponse(const RadioResponseInfo& info, ClipStatus status); 196e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 197fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getDataCallListResponse( 198fcc61188827e1472965b36041c29b80cbe4079basqian const RadioResponseInfo& info, 199fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_vec<SetupDataCallResult>& dcResponse); 200e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 201fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendOemRilRequestRawResponse(const RadioResponseInfo& info, 202fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_vec<uint8_t>& data); 203e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 204fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendOemRilRequestStringsResponse( 205fcc61188827e1472965b36041c29b80cbe4079basqian const RadioResponseInfo& info, 206fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_vec<::android::hardware::hidl_string>& data); 207e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 208fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setSuppServiceNotificationsResponse(const RadioResponseInfo& info); 209e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 210fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> writeSmsToSimResponse(const RadioResponseInfo& info, int32_t index); 211e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 212fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> deleteSmsOnSimResponse(const RadioResponseInfo& info); 213e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 214fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setBandModeResponse(const RadioResponseInfo& info); 215e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 216fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getAvailableBandModesResponse( 217fcc61188827e1472965b36041c29b80cbe4079basqian const RadioResponseInfo& info, 218fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_vec<RadioBandMode>& bandModes); 219e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 220fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendEnvelopeResponse(const RadioResponseInfo& info, 221fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& commandResponse); 222e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 223fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendTerminalResponseToSimResponse(const RadioResponseInfo& info); 224e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 225fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> handleStkCallSetupRequestFromSimResponse(const RadioResponseInfo& info); 226e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 227fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> explicitCallTransferResponse(const RadioResponseInfo& info); 228e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 229fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setPreferredNetworkTypeResponse(const RadioResponseInfo& info); 230e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 231fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getPreferredNetworkTypeResponse(const RadioResponseInfo& info, 232fcc61188827e1472965b36041c29b80cbe4079basqian PreferredNetworkType nwType); 233e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 234fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getNeighboringCidsResponse( 235fcc61188827e1472965b36041c29b80cbe4079basqian const RadioResponseInfo& info, const ::android::hardware::hidl_vec<NeighboringCell>& cells); 236e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 237fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setLocationUpdatesResponse(const RadioResponseInfo& info); 238e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 239fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setCdmaSubscriptionSourceResponse(const RadioResponseInfo& info); 240e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 241fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setCdmaRoamingPreferenceResponse(const RadioResponseInfo& info); 242e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 243fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getCdmaRoamingPreferenceResponse(const RadioResponseInfo& info, 244fcc61188827e1472965b36041c29b80cbe4079basqian CdmaRoamingType type); 245e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 246fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setTTYModeResponse(const RadioResponseInfo& info); 247e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 248fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getTTYModeResponse(const RadioResponseInfo& info, TtyMode mode); 249e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 250fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setPreferredVoicePrivacyResponse(const RadioResponseInfo& info); 251e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 252fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getPreferredVoicePrivacyResponse(const RadioResponseInfo& info, bool enable); 253e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 254fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendCDMAFeatureCodeResponse(const RadioResponseInfo& info); 255e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 256fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendBurstDtmfResponse(const RadioResponseInfo& info); 257e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 258fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendCdmaSmsResponse(const RadioResponseInfo& info, const SendSmsResult& sms); 259e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 260fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> acknowledgeLastIncomingCdmaSmsResponse(const RadioResponseInfo& info); 261e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 262fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getGsmBroadcastConfigResponse( 263fcc61188827e1472965b36041c29b80cbe4079basqian const RadioResponseInfo& info, 264fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_vec<GsmBroadcastSmsConfigInfo>& configs); 265e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 266fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setGsmBroadcastConfigResponse(const RadioResponseInfo& info); 267e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 268fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setGsmBroadcastActivationResponse(const RadioResponseInfo& info); 269e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 270fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getCdmaBroadcastConfigResponse( 271fcc61188827e1472965b36041c29b80cbe4079basqian const RadioResponseInfo& info, 272fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_vec<CdmaBroadcastSmsConfigInfo>& configs); 273e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 274fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setCdmaBroadcastConfigResponse(const RadioResponseInfo& info); 275e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 276fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setCdmaBroadcastActivationResponse(const RadioResponseInfo& info); 277e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 278fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getCDMASubscriptionResponse(const RadioResponseInfo& info, 279fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& mdn, 280fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& hSid, 281fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& hNid, 282fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& min, 283fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& prl); 284e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 285fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> writeSmsToRuimResponse(const RadioResponseInfo& info, uint32_t index); 286e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 287fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> deleteSmsOnRuimResponse(const RadioResponseInfo& info); 288e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 289fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getDeviceIdentityResponse(const RadioResponseInfo& info, 290fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& imei, 291fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& imeisv, 292fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& esn, 293fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& meid); 294e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 295fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> exitEmergencyCallbackModeResponse(const RadioResponseInfo& info); 296e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 297fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getSmscAddressResponse(const RadioResponseInfo& info, 298fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& smsc); 299e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 300fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setSmscAddressResponse(const RadioResponseInfo& info); 301e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 302fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> reportSmsMemoryStatusResponse(const RadioResponseInfo& info); 303e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 304fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> reportStkServiceIsRunningResponse(const RadioResponseInfo& info); 305e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 306fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getCdmaSubscriptionSourceResponse(const RadioResponseInfo& info, 307fcc61188827e1472965b36041c29b80cbe4079basqian CdmaSubscriptionSource source); 308e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 309fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> requestIsimAuthenticationResponse( 310fcc61188827e1472965b36041c29b80cbe4079basqian const RadioResponseInfo& info, const ::android::hardware::hidl_string& response); 311e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 312fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> acknowledgeIncomingGsmSmsWithPduResponse(const RadioResponseInfo& info); 313e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 314fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendEnvelopeWithStatusResponse(const RadioResponseInfo& info, 315fcc61188827e1472965b36041c29b80cbe4079basqian const IccIoResult& iccIo); 316e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 317fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getVoiceRadioTechnologyResponse(const RadioResponseInfo& info, 318fcc61188827e1472965b36041c29b80cbe4079basqian RadioTechnology rat); 319e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 320fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getCellInfoListResponse(const RadioResponseInfo& info, 321fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_vec<CellInfo>& cellInfo); 322e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 323fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setCellInfoListRateResponse(const RadioResponseInfo& info); 324e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 325fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setInitialAttachApnResponse(const RadioResponseInfo& info); 326e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 327fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getImsRegistrationStateResponse(const RadioResponseInfo& info, bool isRegistered, 328fcc61188827e1472965b36041c29b80cbe4079basqian RadioTechnologyFamily ratFamily); 329e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 330fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendImsSmsResponse(const RadioResponseInfo& info, const SendSmsResult& sms); 331e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 332fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> iccTransmitApduBasicChannelResponse(const RadioResponseInfo& info, 333fcc61188827e1472965b36041c29b80cbe4079basqian const IccIoResult& result); 334e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 335fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> iccOpenLogicalChannelResponse( 336fcc61188827e1472965b36041c29b80cbe4079basqian const RadioResponseInfo& info, int32_t channelId, 337fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_vec<int8_t>& selectResponse); 338e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 339fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> iccCloseLogicalChannelResponse(const RadioResponseInfo& info); 340e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 341fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> iccTransmitApduLogicalChannelResponse(const RadioResponseInfo& info, 342fcc61188827e1472965b36041c29b80cbe4079basqian const IccIoResult& result); 343e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 344fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> nvReadItemResponse(const RadioResponseInfo& info, 345fcc61188827e1472965b36041c29b80cbe4079basqian const ::android::hardware::hidl_string& result); 346e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 347fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> nvWriteItemResponse(const RadioResponseInfo& info); 348e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 349fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> nvWriteCdmaPrlResponse(const RadioResponseInfo& info); 350e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 351fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> nvResetConfigResponse(const RadioResponseInfo& info); 352e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 353fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setUiccSubscriptionResponse(const RadioResponseInfo& info); 354e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 355fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setDataAllowedResponse(const RadioResponseInfo& info); 356e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 357fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getHardwareConfigResponse( 358fcc61188827e1472965b36041c29b80cbe4079basqian const RadioResponseInfo& info, const ::android::hardware::hidl_vec<HardwareConfig>& config); 359e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 360fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> requestIccSimAuthenticationResponse(const RadioResponseInfo& info, 361fcc61188827e1472965b36041c29b80cbe4079basqian const IccIoResult& result); 362e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 363fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setDataProfileResponse(const RadioResponseInfo& info); 364e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 365fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> requestShutdownResponse(const RadioResponseInfo& info); 366e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 367fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getRadioCapabilityResponse(const RadioResponseInfo& info, 368fcc61188827e1472965b36041c29b80cbe4079basqian const RadioCapability& rc); 369e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 370fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setRadioCapabilityResponse(const RadioResponseInfo& info, 371fcc61188827e1472965b36041c29b80cbe4079basqian const RadioCapability& rc); 372e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 373fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> startLceServiceResponse(const RadioResponseInfo& info, 374fcc61188827e1472965b36041c29b80cbe4079basqian const LceStatusInfo& statusInfo); 375e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 376fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> stopLceServiceResponse(const RadioResponseInfo& info, 377fcc61188827e1472965b36041c29b80cbe4079basqian const LceStatusInfo& statusInfo); 378e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 379fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> pullLceDataResponse(const RadioResponseInfo& info, const LceDataInfo& lceInfo); 380e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 381fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getModemActivityInfoResponse(const RadioResponseInfo& info, 382fcc61188827e1472965b36041c29b80cbe4079basqian const ActivityStatsInfo& activityInfo); 383e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 384fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setAllowedCarriersResponse(const RadioResponseInfo& info, int32_t numAllowed); 385e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 386fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> getAllowedCarriersResponse(const RadioResponseInfo& info, bool allAllowed, 387fcc61188827e1472965b36041c29b80cbe4079basqian const CarrierRestrictions& carriers); 388e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 389fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> sendDeviceStateResponse(const RadioResponseInfo& info); 390e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 391fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setIndicationFilterResponse(const RadioResponseInfo& info); 392e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 393fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> setSimCardPowerResponse(const RadioResponseInfo& info); 394680564a69f646f54c239a0bd8ebe2756b28e6fc2Sanket Padawe 395fcc61188827e1472965b36041c29b80cbe4079basqian Return<void> acknowledgeRequest(int32_t serial); 396e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe}; 397e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 39854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian/* Callback class for radio indication */ 39954d88b7a997888b71c682dddf0f24d6dccbfbcddsqianclass RadioIndication : public IRadioIndication { 40054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian protected: 40154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian RadioHidlTest& parent; 40254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 40354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian public: 40454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian RadioIndication(RadioHidlTest& parent); 40554d88b7a997888b71c682dddf0f24d6dccbfbcddsqian virtual ~RadioIndication() = default; 40654d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 40754d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> radioStateChanged(RadioIndicationType type, RadioState radioState); 40854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 40954d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> callStateChanged(RadioIndicationType type); 41054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 41154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> networkStateChanged(RadioIndicationType type); 41254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 41354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> newSms(RadioIndicationType type, 41454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const ::android::hardware::hidl_vec<uint8_t>& pdu); 41554d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 41654d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> newSmsStatusReport(RadioIndicationType type, 41754d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const ::android::hardware::hidl_vec<uint8_t>& pdu); 41854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 41954d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> newSmsOnSim(RadioIndicationType type, int32_t recordNumber); 42054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 42154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> onUssd(RadioIndicationType type, UssdModeType modeType, 42254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const ::android::hardware::hidl_string& msg); 42354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 42454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> nitzTimeReceived(RadioIndicationType type, 42554d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const ::android::hardware::hidl_string& nitzTime, 42654d88b7a997888b71c682dddf0f24d6dccbfbcddsqian uint64_t receivedTime); 42754d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 42854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> currentSignalStrength(RadioIndicationType type, 42954d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const SignalStrength& signalStrength); 43054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 43154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> dataCallListChanged( 43254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian RadioIndicationType type, const ::android::hardware::hidl_vec<SetupDataCallResult>& dcList); 43354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 43454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> suppSvcNotify(RadioIndicationType type, const SuppSvcNotification& suppSvc); 43554d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 43654d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> stkSessionEnd(RadioIndicationType type); 43754d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 43854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> stkProactiveCommand(RadioIndicationType type, 43954d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const ::android::hardware::hidl_string& cmd); 44054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 44154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> stkEventNotify(RadioIndicationType type, 44254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const ::android::hardware::hidl_string& cmd); 44354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 44454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> stkCallSetup(RadioIndicationType type, int64_t timeout); 44554d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 44654d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> simSmsStorageFull(RadioIndicationType type); 44754d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 44854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> simRefresh(RadioIndicationType type, const SimRefreshResult& refreshResult); 44954d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 45054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> callRing(RadioIndicationType type, bool isGsm, const CdmaSignalInfoRecord& record); 45154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 45254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> simStatusChanged(RadioIndicationType type); 45354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 45454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> cdmaNewSms(RadioIndicationType type, const CdmaSmsMessage& msg); 45554d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 45654d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> newBroadcastSms(RadioIndicationType type, 45754d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const ::android::hardware::hidl_vec<uint8_t>& data); 45854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 45954d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> cdmaRuimSmsStorageFull(RadioIndicationType type); 46054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 46154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> restrictedStateChanged(RadioIndicationType type, PhoneRestrictedState state); 46254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 46354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> enterEmergencyCallbackMode(RadioIndicationType type); 46454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 46554d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> cdmaCallWaiting(RadioIndicationType type, 46654d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const CdmaCallWaiting& callWaitingRecord); 46754d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 46854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> cdmaOtaProvisionStatus(RadioIndicationType type, CdmaOtaProvisionStatus status); 46954d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 47054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> cdmaInfoRec(RadioIndicationType type, const CdmaInformationRecords& records); 47154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 47254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> indicateRingbackTone(RadioIndicationType type, bool start); 47354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 47454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> resendIncallMute(RadioIndicationType type); 47554d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 47654d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> cdmaSubscriptionSourceChanged(RadioIndicationType type, 47754d88b7a997888b71c682dddf0f24d6dccbfbcddsqian CdmaSubscriptionSource cdmaSource); 47854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 47954d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> cdmaPrlChanged(RadioIndicationType type, int32_t version); 48054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 48154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> exitEmergencyCallbackMode(RadioIndicationType type); 48254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 48354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> rilConnected(RadioIndicationType type); 48454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 48554d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> voiceRadioTechChanged(RadioIndicationType type, RadioTechnology rat); 48654d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 48754d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> cellInfoList(RadioIndicationType type, 48854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const ::android::hardware::hidl_vec<CellInfo>& records); 48954d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 49054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> imsNetworkStateChanged(RadioIndicationType type); 49154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 49254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> subscriptionStatusChanged(RadioIndicationType type, bool activate); 49354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 49454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> srvccStateNotify(RadioIndicationType type, SrvccState state); 49554d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 49654d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> hardwareConfigChanged( 49754d88b7a997888b71c682dddf0f24d6dccbfbcddsqian RadioIndicationType type, const ::android::hardware::hidl_vec<HardwareConfig>& configs); 49854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 49954d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> radioCapabilityIndication(RadioIndicationType type, const RadioCapability& rc); 50054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 50154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> onSupplementaryServiceIndication(RadioIndicationType type, 50254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const StkCcUnsolSsResult& ss); 50354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 50454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> stkCallControlAlphaNotify(RadioIndicationType type, 50554d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const ::android::hardware::hidl_string& alpha); 50654d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 50754d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> lceData(RadioIndicationType type, const LceDataInfo& lce); 50854d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 50954d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> pcoData(RadioIndicationType type, const PcoDataInfo& pco); 51054d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 51154d88b7a997888b71c682dddf0f24d6dccbfbcddsqian Return<void> modemReset(RadioIndicationType type, 51254d88b7a997888b71c682dddf0f24d6dccbfbcddsqian const ::android::hardware::hidl_string& reason); 51354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian}; 51454d88b7a997888b71c682dddf0f24d6dccbfbcddsqian 51521b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang// Test environment for Radio HIDL HAL. 51621b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhangclass RadioHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { 51721b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang public: 51821b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang // get the test environment singleton 51921b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang static RadioHidlEnvironment* Instance() { 52021b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang static RadioHidlEnvironment* instance = new RadioHidlEnvironment; 52121b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang return instance; 52221b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang } 52321b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang virtual void registerTestServices() override { registerTestService<IRadio>(); } 52421b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang 52521b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang private: 52621b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang RadioHidlEnvironment() {} 52721b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang}; 52821b0a0ad2555d3cf5231864a474399fdb00992b2Zhuoyao Zhang 529e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe// The main test class for Radio HIDL. 5306b8720110bf2d40ac1364c364a85c31b358889f1Yuexi Maclass RadioHidlTest : public ::testing::VtsHalHidlTargetTestBase { 5310c74fc78392703e19ba51ce0ced510a55a0a994bsqian protected: 532fcc61188827e1472965b36041c29b80cbe4079basqian std::mutex mtx; 533fcc61188827e1472965b36041c29b80cbe4079basqian std::condition_variable cv; 534fcc61188827e1472965b36041c29b80cbe4079basqian int count; 535e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 536788eb8083059ff0dca686734ceebf942042c4893sqian /* Serial number for radio request */ 537788eb8083059ff0dca686734ceebf942042c4893sqian int serial; 538788eb8083059ff0dca686734ceebf942042c4893sqian 539788eb8083059ff0dca686734ceebf942042c4893sqian /* Update Sim Card Status */ 540788eb8083059ff0dca686734ceebf942042c4893sqian void updateSimCardStatus(); 541788eb8083059ff0dca686734ceebf942042c4893sqian 542fcc61188827e1472965b36041c29b80cbe4079basqian public: 543fcc61188827e1472965b36041c29b80cbe4079basqian virtual void SetUp() override; 544e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 545fcc61188827e1472965b36041c29b80cbe4079basqian /* Used as a mechanism to inform the test about data/event callback */ 546788eb8083059ff0dca686734ceebf942042c4893sqian void notify(int receivedSerial); 547e4c6323d0819a4a71c321a37eefcdef7b06e4649Sanket Padawe 548fcc61188827e1472965b36041c29b80cbe4079basqian /* Test code calls this function to wait for response */ 5496429f0677f87c5657802d26345dc3334ab26e33aIris Chang std::cv_status wait(int sec = TIMEOUT_PERIOD); 5501512edb314e42dbae1e7b55971d466904ed88e13Sanket Padawe 551fcc61188827e1472965b36041c29b80cbe4079basqian sp<IRadio> radio; 552fcc61188827e1472965b36041c29b80cbe4079basqian sp<RadioResponse> radioRsp; 55354d88b7a997888b71c682dddf0f24d6dccbfbcddsqian sp<RadioIndication> radioInd; 5546429f0677f87c5657802d26345dc3334ab26e33aIris Chang}; 555