1 /*
2  * Copyright (C) 2022-2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef OHOS_RIL_CALLBACK_TEST_H
17 #define OHOS_RIL_CALLBACK_TEST_H
18 
19 #include "condition_variable"
20 #include "map"
21 #include "mutex"
22 #include "v1_3/iril.h"
23 
24 namespace OHOS {
25 namespace Telephony {
26 constexpr static int32_t SLOTID_1 = 0;
27 constexpr static int32_t SLOTID_2 = 1;
28 constexpr static int32_t SUCCESS = 0;
29 constexpr static int32_t WAIT_TIME_SECOND = 20;
30 constexpr static int32_t WAIT_TIME_SECOND_LONG = 40;
31 constexpr static int32_t CID = 1;
32 constexpr static int32_t REASON = 2;
33 constexpr int32_t TEST_TOSCA = 0;
34 const std::string TEST_STORAGE_PDU = "1234";
35 const std::string TEST_SEND_PDU = "A10305810180F6000004F4F29C0E";
36 const std::string TEST_SMSC_PDU = "00";
37 const std::string TEST_CDMA_PDU = "pdu";
38 const std::string TEST_ID_LIST = "0,1,320-478,922";
39 const std::string TEST_DCS_LIST = "0-3,5";
40 const int32_t TEST_MODE = 0;
41 const bool TEST_RESULT = true;
42 
43 enum class HdiId {
44     HREQ_NONE = -1,
45     HREQ_CALL_BASE = 0,
46     HREQ_CALL_GET_CALL_LIST,
47     HREQ_CALL_DIAL,
48     HREQ_CALL_HANGUP,
49     HREQ_CALL_REJECT,
50     HREQ_CALL_ANSWER,
51     HREQ_CALL_HOLD_CALL, // call hold value 6
52     HREQ_CALL_UNHOLD_CALL, // call active value 6
53     HREQ_CALL_SWITCH_CALL,
54     HREQ_CALL_COMBINE_CONFERENCE,
55     HREQ_CALL_SEPARATE_CONFERENCE, // Keep all other calls except the xth call
56     HREQ_CALL_CALL_SUPPLEMENT,
57     HREQ_CALL_SEND_DTMF,
58     HREQ_CALL_START_DTMF,
59     HREQ_CALL_STOP_DTMF,
60     HREQ_CALL_SET_CLIP,
61     HREQ_CALL_GET_CLIP,
62     HREQ_CALL_GET_CALL_WAITING,
63     HREQ_CALL_SET_CALL_WAITING,
64     HREQ_CALL_GET_CALL_RESTRICTION,
65     HREQ_CALL_SET_CALL_RESTRICTION,
66     HREQ_CALL_GET_CALL_TRANSFER_INFO,
67     HREQ_CALL_SET_CALL_TRANSFER_INFO,
68     HREQ_CALL_GET_CLIR,
69     HREQ_CALL_SET_CLIR,
70     HREQ_CALL_GET_CALL_PREFERENCE,
71     HREQ_CALL_SET_CALL_PREFERENCE,
72     HREQ_CALL_SET_USSD,
73     HREQ_CALL_GET_USSD,
74     HREQ_CALL_SET_MUTE,
75     HREQ_CALL_GET_MUTE,
76     HREQ_CALL_GET_EMERGENCY_LIST,
77     HREQ_CALL_SET_EMERGENCY_LIST,
78     HREQ_CALL_GET_FAIL_REASON,
79     HREQ_CALL_SET_BARRING_PASSWORD,
80     HREQ_CALL_CLOSE_UNFINISHED_USSD,
81     HREQ_SET_VONR_SWITCH,
82 
83     HREQ_SMS_BASE = 100,
84     HREQ_SMS_SEND_GSM_SMS,
85     HREQ_SMS_SEND_CDMA_SMS,
86     HREQ_SMS_ADD_SIM_MESSAGE,
87     HREQ_SMS_DEL_SIM_MESSAGE,
88     HREQ_SMS_UPDATE_SIM_MESSAGE,
89     HREQ_SMS_SEND_SMS_MORE_MODE,
90     HREQ_SMS_SEND_SMS_ACK,
91     HREQ_SMS_SET_SMSC_ADDR,
92     HREQ_SMS_GET_SMSC_ADDR,
93     HREQ_SMS_SET_CB_CONFIG,
94     HREQ_SMS_GET_CB_CONFIG,
95     HREQ_SMS_GET_CDMA_CB_CONFIG,
96     HREQ_SMS_SET_CDMA_CB_CONFIG,
97     HREQ_SMS_ADD_CDMA_SIM_MESSAGE,
98     HREQ_SMS_DEL_CDMA_SIM_MESSAGE,
99     HREQ_SMS_UPDATE_CDMA_SIM_MESSAGE,
100 
101     HREQ_SIM_BASE = 200,
102     HREQ_SIM_GET_SIM_STATUS,
103     HREQ_SIM_GET_IMSI,
104     HREQ_SIM_GET_SIM_IO,
105     HREQ_SIM_GET_SIM_LOCK_STATUS,
106     HREQ_SIM_SET_SIM_LOCK,
107     HREQ_SIM_CHANGE_SIM_PASSWORD,
108     HREQ_SIM_UNLOCK_PIN,
109     HREQ_SIM_UNLOCK_PUK,
110     HREQ_SIM_GET_SIM_PIN_INPUT_TIMES,
111     HREQ_SIM_UNLOCK_PIN2,
112     HREQ_SIM_UNLOCK_PUK2,
113     HREQ_SIM_GET_SIM_PIN2_INPUT_TIMES,
114     HREQ_SIM_SET_ACTIVE_SIM,
115     HREQ_SIM_RADIO_PROTOCOL,
116     HREQ_SIM_STK_SEND_TERMINAL_RESPONSE,
117     HREQ_SIM_STK_SEND_ENVELOPE,
118     HREQ_SIM_STK_SEND_CALL_SETUP_REQUEST_RESULT,
119     HREQ_SIM_STK_IS_READY,
120     HREQ_SIM_OPEN_LOGICAL_CHANNEL,
121     HREQ_SIM_CLOSE_LOGICAL_CHANNEL,
122     HREQ_SIM_TRANSMIT_APDU_LOGICAL_CHANNEL,
123     HREQ_SIM_TRANSMIT_APDU_BASIC_CHANNEL,
124     HREQ_SIM_AUTHENTICATION,
125     HREQ_SIM_UNLOCK_SIM_LOCK,
126     HREQ_SIM_SEND_NCFG_OPER_INFO,
127 
128     HREQ_DATA_BASE = 300,
129     HREQ_DATA_SET_INIT_APN_INFO,
130     HREQ_DATA_DEACTIVATE_PDP_CONTEXT,
131     HREQ_DATA_ACTIVATE_PDP_CONTEXT,
132     HREQ_DATA_GET_PDP_CONTEXT_LIST,
133     HREQ_DATA_GET_LINK_BANDWIDTH_INFO,
134     HREQ_DATA_SET_LINK_BANDWIDTH_REPORTING_RULE,
135     HREQ_DATA_SET_DATA_PROFILE_INFO,
136     HREQ_DATA_SET_DATA_PERMITTED,
137     HREQ_DATA_GET_LINK_CAPABILITY,
138     HREQ_DATA_CLEAN_ALL_CONNECTIONS,
139 
140     HREQ_NETWORK_BASE = 400,
141     HREQ_NETWORK_GET_SIGNAL_STRENGTH,
142     HREQ_NETWORK_GET_CS_REG_STATUS,
143     HREQ_NETWORK_GET_PS_REG_STATUS,
144     HREQ_NETWORK_GET_OPERATOR_INFO,
145     HREQ_NETWORK_GET_NETWORK_SEARCH_INFORMATION,
146     HREQ_NETWORK_GET_NETWORK_SELECTION_MODE,
147     HREQ_NETWORK_SET_NETWORK_SELECTION_MODE,
148     HREQ_NETWORK_GET_NEIGHBORING_CELLINFO_LIST,
149     HREQ_NETWORK_GET_CURRENT_CELL_INFO,
150     HREQ_NETWORK_SET_PREFERRED_NETWORK,
151     HREQ_NETWORK_GET_PREFERRED_NETWORK,
152     HREQ_NETWORK_GET_RADIO_CAPABILITY,
153     HREQ_NETWORK_GET_PHYSICAL_CHANNEL_CONFIG,
154     HREQ_NETWORK_SET_LOCATE_UPDATES,
155     HREQ_NETWORK_SET_NOTIFICATION_FILTER,
156     HREQ_NETWORK_SET_DEVICE_STATE,
157     HREQ_NETWORK_SET_NR_OPTION_MODE,
158     HREQ_NETWORK_GET_NR_OPTION_MODE,
159     HREQ_NETWORK_GET_RRC_CONNECTION_STATE,
160     HREQ_NETWORK_GET_NR_SSBID_INFO,
161 
162     HREQ_COMMON_BASE = 500,
163     HREQ_MODEM_SHUT_DOWN,
164     HREQ_MODEM_SET_RADIO_STATUS,
165     HREQ_MODEM_GET_RADIO_STATUS,
166     HREQ_MODEM_GET_IMEI,
167     HREQ_MODEM_GET_IMEISV,
168     HREQ_MODEM_GET_MEID,
169     HREQ_MODEM_GET_BASEBAND_VERSION,
170     HREQ_MODEM_GET_VOICE_RADIO,
171     HREQ_MODEM_EXIT = 1000
172 };
173 
174 enum class DeviceStateType { POWER_SAVE_MODE, CHARGING_STATE, LOW_DATA_STATE };
175 
176 enum class NotificationFilter {
177     NOTIFICATION_FILTER_ALL = -1,
178     NOTIFICATION_FILTER_NONE = 0,
179     NOTIFICATION_FILTER_SIGNAL_STRENGTH = 1,
180     NOTIFICATION_FILTER_NETWORK_STATE = 2,
181     NOTIFICATION_FILTER_DATA_CALL = 4,
182     NOTIFICATION_FILTER_LINK_CAPACITY = 8,
183     NOTIFICATION_FILTER_PHYSICAL_CHANNEL_CONFIG = 16
184 };
185 
186 enum class RatType {
187     NETWORK_TYPE_UNKNOWN = 0,
188     NETWORK_TYPE_GSM,
189     NETWORK_TYPE_CDMA,
190     NETWORK_TYPE_WCDMA,
191     NETWORK_TYPE_TDSCDMA,
192     NETWORK_TYPE_LTE,
193     NETWORK_TYPE_NR
194 };
195 
196 enum class SelectionMode { MODE_TYPE_UNKNOWN = -1, MODE_TYPE_AUTO = 0, MODE_TYPE_MANUAL = 1 };
197 
198 enum class PreferredNetworkMode {
199     CORE_NETWORK_MODE_AUTO = 0,
200     CORE_NETWORK_MODE_GSM = 1,
201     CORE_NETWORK_MODE_WCDMA = 2,
202     CORE_NETWORK_MODE_LTE = 3,
203     CORE_NETWORK_MODE_LTE_WCDMA = 4,
204     CORE_NETWORK_MODE_LTE_WCDMA_GSM = 5,
205     CORE_NETWORK_MODE_WCDMA_GSM = 6,
206     CORE_NETWORK_MODE_CDMA = 7,
207     CORE_NETWORK_MODE_EVDO = 8,
208     CORE_NETWORK_MODE_EVDO_CDMA = 9,
209     CORE_NETWORK_MODE_WCDMA_GSM_EVDO_CDMA = 10,
210     CORE_NETWORK_MODE_LTE_EVDO_CDMA = 11,
211     CORE_NETWORK_MODE_LTE_WCDMA_GSM_EVDO_CDMA = 12,
212     CORE_NETWORK_MODE_TDSCDMA = 13,
213     CORE_NETWORK_MODE_TDSCDMA_GSM = 14,
214     CORE_NETWORK_MODE_TDSCDMA_WCDMA = 15,
215     CORE_NETWORK_MODE_TDSCDMA_WCDMA_GSM = 16,
216     CORE_NETWORK_MODE_LTE_TDSCDMA = 17,
217     CORE_NETWORK_MODE_LTE_TDSCDMA_GSM = 18,
218     CORE_NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19,
219     CORE_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM = 20,
220     CORE_NETWORK_MODE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 21,
221     CORE_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 22,
222     CORE_NETWORK_MODE_NR = 31,
223     CORE_NETWORK_MODE_NR_LTE = 32,
224     CORE_NETWORK_MODE_NR_LTE_WCDMA = 33,
225     CORE_NETWORK_MODE_NR_LTE_WCDMA_GSM = 34,
226     CORE_NETWORK_MODE_NR_LTE_EVDO_CDMA = 35,
227     CORE_NETWORK_MODE_NR_LTE_WCDMA_GSM_EVDO_CDMA = 36,
228     CORE_NETWORK_MODE_NR_LTE_TDSCDMA = 37,
229     CORE_NETWORK_MODE_NR_LTE_TDSCDMA_GSM = 38,
230     CORE_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA = 39,
231     CORE_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM = 40,
232     CORE_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 41,
233     CORE_NETWORK_MODE_MAX_VALUE = 99,
234 };
235 
236 enum class SimMessageStatus {
237     SIM_MESSAGE_STATUS_UNREAD = 0,
238     SIM_MESSAGE_STATUS_READ = 1,
239     SIM_MESSAGE_STATUS_UNSENT = 2,
240     SIM_MESSAGE_STATUS_SENT = 3,
241 };
242 
243 class RilCallbackTest : public HDI::Ril::V1_3::IRilCallback {
244 public:
245     void NotifyAll();
246     void WaitFor(int32_t timeoutSecond);
247     bool GetBoolResult(HdiId hdiId_);
248     void Clean();
249 
250     // Call
251     int32_t CallStateUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
252     int32_t CallRingbackVoiceNotice(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
253         const HDI::Ril::V1_1::RingbackVoice &ringbackVoice) override;
254     int32_t CallSrvccStatusNotice(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
255         const HDI::Ril::V1_1::SrvccStatus &srvccStatus) override;
256     int32_t CallUssdNotice(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
257         const HDI::Ril::V1_1::UssdNoticeInfo &ussdNoticeInfo) override;
258     int32_t CallSsNotice(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
259         const HDI::Ril::V1_1::SsNoticeInfo &ssNoticeInfo) override;
260     int32_t CallEmergencyNotice(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
261         const HDI::Ril::V1_1::EmergencyInfoList &emergencyInfoList) override;
262     int32_t CallRsrvccStatusNotify(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
263     int32_t SetEmergencyCallListResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
264     int32_t GetEmergencyCallListResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
265         const HDI::Ril::V1_1::EmergencyInfoList &emergencyInfoList) override;
266     int32_t GetCallListResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
267         const HDI::Ril::V1_1::CallInfoList &callList) override;
268     int32_t DialResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
269     int32_t HangupResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
270     int32_t RejectResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
271     int32_t AnswerResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
272     int32_t HoldCallResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
273     int32_t UnHoldCallResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
274     int32_t SwitchCallResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
275     int32_t GetClipResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
276         const HDI::Ril::V1_1::GetClipResult &getClipResult) override;
277     int32_t SetClipResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
278     int32_t CombineConferenceResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
279     int32_t SeparateConferenceResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
280     int32_t CallSupplementResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
281     int32_t GetCallWaitingResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
282         const HDI::Ril::V1_1::CallWaitResult &callWaitResult) override;
283     int32_t SetCallWaitingResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
284     int32_t GetCallTransferInfoResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
285         const HDI::Ril::V1_1::CallForwardQueryInfoList &cFQueryList) override;
286     int32_t SetCallTransferInfoResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
287     int32_t GetCallRestrictionResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
288         const HDI::Ril::V1_1::CallRestrictionResult &result) override;
289     int32_t SetCallRestrictionResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
290     int32_t GetClirResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
291         const HDI::Ril::V1_1::GetClirResult &getClirResult) override;
292     int32_t SetClirResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
293     int32_t StartDtmfResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
294     int32_t SendDtmfResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
295     int32_t StopDtmfResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
296     int32_t GetCallPreferenceModeResponse(
297         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, int32_t mode) override;
298     int32_t SetCallPreferenceModeResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
299     int32_t SetUssdResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
300     int32_t GetUssdResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, int32_t cusd) override;
301     int32_t SetMuteResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
302     int32_t GetMuteResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, int32_t mute) override;
303     int32_t GetCallFailReasonResponse(
304         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, int32_t callFail) override;
305     int32_t SetBarringPasswordResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
306     int32_t CloseUnFinishedUssdResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
307     int32_t SetVonrSwitchResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
308 
309     // Data
310     int32_t PdpContextListUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
311         const HDI::Ril::V1_1::DataCallResultList &dataCallResultList) override;
312     int32_t DataLinkCapabilityUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
313         const HDI::Ril::V1_1::DataLinkCapability &dataLinkCapability) override;
314     int32_t ActivatePdpContextResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
315         const HDI::Ril::V1_1::SetupDataCallResultInfo &setupDataCallResultInfo) override;
316     int32_t DeactivatePdpContextResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
317     int32_t GetPdpContextListResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
318         const HDI::Ril::V1_1::DataCallResultList &dataCallResultList) override;
319     int32_t SetInitApnInfoResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
320     int32_t SetLinkBandwidthReportingRuleResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
321     int32_t GetLinkBandwidthInfoResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
322         const HDI::Ril::V1_1::DataLinkBandwidthInfo &dataLinkBandwidthInfo) override;
323     int32_t SetDataPermittedResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
324     int32_t SetDataProfileInfoResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo);
325     int32_t GetLinkCapabilityResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
326         const HDI::Ril::V1_1::DataLinkCapability &dataLinkCapability) override;
327     int32_t CleanAllConnectionsResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
328     // Modem
329     int32_t RadioStateUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, int32_t state) override;
330     int32_t VoiceRadioTechUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
331         const HDI::Ril::V1_1::VoiceRadioTechnology &voiceRadioTechnology) override;
332     int32_t DsdsModeUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, int32_t mode) override;
333     int32_t ShutDownResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
334     int32_t SetRadioStateResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
335     int32_t GetRadioStateResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, int32_t state) override;
336     int32_t GetImeiResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const std::string &imei) override;
337     int32_t GetImeiSvResponse(
338         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const std::string &imeiSv) override;
339     int32_t GetMeidResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const std::string &meid) override;
340     int32_t GetVoiceRadioTechnologyResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
341         const HDI::Ril::V1_1::VoiceRadioTechnology &voiceRadioTechnology) override;
342     int32_t GetBasebandVersionResponse(
343         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const std::string &basebandVersion) override;
344 
345     // Sim notice
346     int32_t SimStateUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
347     int32_t SimStkSessionEndNotify(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
348     int32_t SimStkProactiveNotify(
349         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const std::string &response) override;
350     int32_t SimStkAlphaNotify(
351         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const std::string &response) override;
352     int32_t SimStkEventNotify(
353         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const std::string &response) override;
354     int32_t SimStkCallSetupNotify(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
355     int32_t SimRefreshNotify(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
SimRadioProtocolUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo & responseInfo,const HDI::Ril::V1_1::RadioProtocol & radioProtocol)356     int32_t SimRadioProtocolUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
357         const HDI::Ril::V1_1::RadioProtocol &radioProtocol) override
358     {
359         return 0;
360     }
361     // Sim response
362     int32_t GetSimIOResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
363         const HDI::Ril::V1_1::IccIoResultInfo &result) override;
364     int32_t GetSimStatusResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
365         const HDI::Ril::V1_1::CardStatusInfo &result) override;
366     int32_t GetSimCardStatusResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
367         const HDI::Ril::V1_3::SimCardStatusInfo &result) override;
368     int32_t GetImsiResponse(
369         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const std::string &response) override;
370     int32_t GetSimLockStatusResponse(
371         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, int32_t simLockStatus) override;
372     int32_t SetSimLockResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
373         const HDI::Ril::V1_1::LockStatusResp &lockStatus) override;
374     int32_t ChangeSimPasswordResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
375         const HDI::Ril::V1_1::LockStatusResp &lockStatus) override;
376     int32_t UnlockPinResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
377         const HDI::Ril::V1_1::LockStatusResp &lockStatus) override;
378     int32_t UnlockPukResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
379         const HDI::Ril::V1_1::LockStatusResp &lockStatus) override;
380     int32_t UnlockPin2Response(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
381         const HDI::Ril::V1_1::LockStatusResp &lockStatus) override;
382     int32_t UnlockPuk2Response(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
383         const HDI::Ril::V1_1::LockStatusResp &lockStatus) override;
384     int32_t SetActiveSimResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
385     int32_t SimStkSendTerminalResponseResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
386     int32_t SimStkSendEnvelopeResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
387     int32_t SimStkSendCallSetupRequestResultResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
388     int32_t SimStkIsReadyResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
389     int32_t SetRadioProtocolResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
390         const HDI::Ril::V1_1::RadioProtocol &radioProtocol) override;
GetRadioProtocolResponse(const HDI::Ril::V1_1::RilRadioResponseInfo & responseInfo,const HDI::Ril::V1_1::RadioProtocol & radioProtocol)391     int32_t GetRadioProtocolResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
392         const HDI::Ril::V1_1::RadioProtocol &radioProtocol) override
393     {
394         return 0;
395     }
396     int32_t SimOpenLogicalChannelResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
397         const HDI::Ril::V1_1::OpenLogicalChannelResponse &pOpenLogicalChannelResponse) override;
398     int32_t SimCloseLogicalChannelResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
399     int32_t SimTransmitApduLogicalChannelResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
400         const HDI::Ril::V1_1::IccIoResultInfo &result) override;
401     int32_t SimTransmitApduBasicChannelResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
402         const HDI::Ril::V1_1::IccIoResultInfo &result) override;
403     int32_t SimAuthenticationResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
404         const HDI::Ril::V1_1::IccIoResultInfo &result) override;
405     int32_t UnlockSimLockResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
406         const HDI::Ril::V1_1::LockStatusResp &lockStatus) override;
407     int32_t SendSimMatchedOperatorInfoResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
408 
409     // Network
410     int32_t NetworkCsRegStatusUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
411         const HDI::Ril::V1_1::CsRegStatusInfo &csRegStatusInfo) override;
412     int32_t NetworkPsRegStatusUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
413         const HDI::Ril::V1_1::PsRegStatusInfo &psRegStatusInfo) override;
414     int32_t SignalStrengthUpdated(
415         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const HDI::Ril::V1_1::Rssi &rssi) override;
416     int32_t NetworkTimeZoneUpdated(
417         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const std::string &timeZoneStr) override;
418     int32_t NetworkTimeUpdated(
419         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const std::string &timeStr) override;
420     int32_t NetworkPhyChnlCfgUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
421         const HDI::Ril::V1_1::ChannelConfigInfoList &channelConfigInfoList) override;
422     int32_t NetworkCurrentCellUpdated(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
423         const HDI::Ril::V1_1::CellListCurrentInfo &cellListCurrentInfo) override;
424     int32_t NetworkCurrentCellUpdated_1_1(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
425         const HDI::Ril::V1_1::CellListCurrentInfo_1_1 &cellListCurrentInfo) override;
426     int32_t NetworkCurrentCellUpdated_1_2(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
427         const HDI::Ril::V1_2::CellListCurrentInfo_1_2 &cellListCurrentInfo) override;
428     int32_t ResidentNetworkUpdated(
429         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const std::string &plmn) override;
430     int32_t GetSignalStrengthResponse(
431         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const HDI::Ril::V1_1::Rssi &rssi) override;
432     int32_t GetCsRegStatusResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
433         const HDI::Ril::V1_1::CsRegStatusInfo &csRegStatusInfo) override;
434     int32_t GetPsRegStatusResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
435         const HDI::Ril::V1_1::PsRegStatusInfo &psRegStatusInfo) override;
436     int32_t GetOperatorInfoResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
437         const HDI::Ril::V1_1::OperatorInfo &operatorInfo) override;
438     int32_t GetNetworkSearchInformationResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
439         const HDI::Ril::V1_1::AvailableNetworkList &availableNetworkList) override;
440     int32_t GetNetworkSelectionModeResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
441         const HDI::Ril::V1_1::SetNetworkModeInfo &setNetworkModeInfo) override;
442     int32_t SetNetworkSelectionModeResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
443     int32_t GetNeighboringCellInfoListResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
444         const HDI::Ril::V1_1::CellListNearbyInfo &cellInfoList) override;
445     int32_t GetNeighboringCellInfoListResponse_1_2(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
446         const HDI::Ril::V1_2::CellListNearbyInfo_1_2 &cellInfoList) override;
447     int32_t GetCurrentCellInfoResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
448         const HDI::Ril::V1_1::CellListCurrentInfo &cellInfoList) override;
449     int32_t GetCurrentCellInfoResponse_1_1(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
450         const HDI::Ril::V1_1::CellListCurrentInfo_1_1 &cellListCurrentInfo) override;
451     int32_t GetCurrentCellInfoResponse_1_2(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
452         const HDI::Ril::V1_2::CellListCurrentInfo_1_2 &cellListCurrentInfo) override;
453     int32_t SetPreferredNetworkResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
454     int32_t GetPreferredNetworkResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
455         const HDI::Ril::V1_1::PreferredNetworkTypeInfo &preferredNetworkTypeInfo) override;
456     int32_t GetPhysicalChannelConfigResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
457         const HDI::Ril::V1_1::ChannelConfigInfoList &channelConfigInfoList) override;
458     int32_t SetLocateUpdatesResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
459     int32_t SetNotificationFilterResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
460     int32_t SetDeviceStateResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
461     int32_t SetNrOptionModeResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
462     int32_t GetNrOptionModeResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, int32_t mode) override;
463     int32_t GetRrcConnectionStateResponse(
464         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, int32_t rrcConnectionState) override;
465     int32_t GetRrcConnectionStateUpdated(
466         const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, int32_t state) override;
467     int32_t GetNrSsbIdResponse(const HDI::Ril::V1_2::RilRadioResponseInfo &responseInfo,
468         const HDI::Ril::V1_2::NrCellSsbIds &nrCellSsbIds) override;
469 
470     // Sms
471     int32_t NewSmsNotify(const HDI::Ril::V1_1::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
472         const HDI::Ril::V1_1::SmsMessageInfo &smsMessageInfo) override;
473     int32_t NewCdmaSmsNotify(const HDI::Ril::V1_1::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
474         const HDI::Ril::V1_1::SmsMessageInfo &smsMessageInfo) override;
475     int32_t SmsStatusReportNotify(const HDI::Ril::V1_1::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
476         const HDI::Ril::V1_1::SmsMessageInfo &smsMessageInfo) override;
477     int32_t NewSmsStoredOnSimNotify(const HDI::Ril::V1_1::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
478         int32_t recordNumber, int32_t indicationType) override;
479     int32_t CBConfigNotify(const HDI::Ril::V1_1::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
480         const HDI::Ril::V1_1::CBConfigReportInfo &cellBroadConfigReportInfo) override;
481     int32_t SendGsmSmsResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
482         const HDI::Ril::V1_1::SendSmsResultInfo &sendSmsResultInfo) override;
483     int32_t SendCdmaSmsResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
484         const HDI::Ril::V1_1::SendSmsResultInfo &sendSmsResultInfo) override;
485     int32_t AddSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
486     int32_t DelSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
487     int32_t UpdateSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
488     int32_t AddCdmaSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
489     int32_t DelCdmaSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
490     int32_t UpdateCdmaSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
491     int32_t SetSmscAddrResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
492     int32_t GetSmscAddrResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
493         const HDI::Ril::V1_1::ServiceCenterAddress &serviceCenterAddress) override;
494     int32_t SetCBConfigResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
495     int32_t GetCBConfigResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
496         const HDI::Ril::V1_1::CBConfigInfo &cellBroadcastInfo) override;
497     int32_t SetCdmaCBConfigResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
498     int32_t GetCdmaCBConfigResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
499         const HDI::Ril::V1_1::CdmaCBConfigInfo &cdmaCBConfigInfo) override;
500     int32_t SendSmsMoreModeResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
501         const HDI::Ril::V1_1::SendSmsResultInfo &sendSmsResultInfo) override;
502     int32_t SendSmsAckResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
503 
504     int32_t CommonErrorResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo) override;
GetSerialId()505     int32_t GetSerialId()
506     {
507         currentSerialId_ = rand() % RAND_MAX;
508         return currentSerialId_;
509     }
IsReady(int32_t slotId)510     bool IsReady(int32_t slotId)
511     {
512         return simState_[slotId] != 0;
513     }
GetCurrentChannelId()514     int32_t GetCurrentChannelId()
515     {
516         return currentChannelId_;
517     }
518 
GetSmscAddr()519     std::string GetSmscAddr()
520     {
521         return smscAddr_;
522     }
523 
524 private:
525     std::map<int32_t, int32_t> simState_;
526     std::mutex callbackMutex_;
527     std::condition_variable cv_;
528     int32_t currentChannelId_ = 1;
529     std::string smscAddr_ = "00";
530     HdiId hdiId_;
531     HDI::Ril::V1_1::RilRadioResponseInfo resultInfo_;
532     int32_t currentSerialId_ = 0;
533 };
534 } // namespace Telephony
535 } // namespace OHOS
536 #endif // OHOS_RIL_CALLBACK_TEST_H
537