1 /*
2 * Copyright (c) 2022 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 #include "ril_impl.h"
17
18 #include <hdf_base.h>
19 #include <hdf_log.h>
20
21 namespace OHOS {
22 namespace HDI {
23 namespace Ril {
24 namespace V1_3 {
25 static std::mutex mutex_;
26 static sptr<V1_1::IRilCallback> callback1_1_;
27 static sptr<V1_2::IRilCallback> callback1_2_;
28 static sptr<V1_3::IRilCallback> callback_;
29 namespace {
30 sptr<RilImpl::RilDeathRecipient> g_deathRecipient = nullptr;
31 }
RilImplGetInstance(void)32 extern "C" IRil *RilImplGetInstance(void)
33 {
34 using OHOS::HDI::Ril::V1_3::RilImpl;
35 RilImpl *service = new (std::nothrow) RilImpl();
36 if (service == nullptr) {
37 return nullptr;
38 }
39 if (service->Init() != HDF_SUCCESS) {
40 delete service;
41 service = nullptr;
42 return nullptr;
43 }
44 return service;
45 }
46
47 // Call
SetEmergencyCallList(int32_t slotId,int32_t serialId,const EmergencyInfoList & emergencyInfoList)48 int32_t RilImpl::SetEmergencyCallList(
49 int32_t slotId, int32_t serialId, const EmergencyInfoList &emergencyInfoList)
50 {
51 return TaskSchedule(&Telephony::HRilManager::SetEmergencyCallList, slotId, serialId, emergencyInfoList);
52 }
53
GetEmergencyCallList(int32_t slotId,int32_t serialId)54 int32_t RilImpl::GetEmergencyCallList(int32_t slotId, int32_t serialId)
55 {
56 return TaskSchedule(&Telephony::HRilManager::GetEmergencyCallList, slotId, serialId);
57 }
58
GetCallList(int32_t slotId,int32_t serialId)59 int32_t RilImpl::GetCallList(int32_t slotId, int32_t serialId)
60 {
61 return TaskSchedule(&Telephony::HRilManager::GetCallList, slotId, serialId);
62 }
63
Dial(int32_t slotId,int32_t serialId,const DialInfo & dialInfo)64 int32_t RilImpl::Dial(int32_t slotId, int32_t serialId, const DialInfo &dialInfo)
65 {
66 return TaskSchedule(&Telephony::HRilManager::Dial, slotId, serialId, dialInfo);
67 }
68
Reject(int32_t slotId,int32_t serialId)69 int32_t RilImpl::Reject(int32_t slotId, int32_t serialId)
70 {
71 return TaskSchedule(&Telephony::HRilManager::Reject, slotId, serialId);
72 }
73
Hangup(int32_t slotId,int32_t serialId,int32_t gsmIndex)74 int32_t RilImpl::Hangup(int32_t slotId, int32_t serialId, int32_t gsmIndex)
75 {
76 return TaskSchedule(&Telephony::HRilManager::Hangup, slotId, serialId, gsmIndex);
77 }
78
Answer(int32_t slotId,int32_t serialId)79 int32_t RilImpl::Answer(int32_t slotId, int32_t serialId)
80 {
81 return TaskSchedule(&Telephony::HRilManager::Answer, slotId, serialId);
82 }
83
HoldCall(int32_t slotId,int32_t serialId)84 int32_t RilImpl::HoldCall(int32_t slotId, int32_t serialId)
85 {
86 return TaskSchedule(&Telephony::HRilManager::HoldCall, slotId, serialId);
87 }
88
UnHoldCall(int32_t slotId,int32_t serialId)89 int32_t RilImpl::UnHoldCall(int32_t slotId, int32_t serialId)
90 {
91 return TaskSchedule(&Telephony::HRilManager::UnHoldCall, slotId, serialId);
92 }
93
SwitchCall(int32_t slotId,int32_t serialId)94 int32_t RilImpl::SwitchCall(int32_t slotId, int32_t serialId)
95 {
96 return TaskSchedule(&Telephony::HRilManager::SwitchCall, slotId, serialId);
97 }
98
CombineConference(int32_t slotId,int32_t serialId,int32_t callType)99 int32_t RilImpl::CombineConference(int32_t slotId, int32_t serialId, int32_t callType)
100 {
101 return TaskSchedule(&Telephony::HRilManager::CombineConference, slotId, serialId, callType);
102 }
103
SeparateConference(int32_t slotId,int32_t serialId,int32_t callIndex,int32_t callType)104 int32_t RilImpl::SeparateConference(
105 int32_t slotId, int32_t serialId, int32_t callIndex, int32_t callType)
106 {
107 return TaskSchedule(&Telephony::HRilManager::SeparateConference, slotId, serialId, callIndex, callType);
108 }
109
GetCallWaiting(int32_t slotId,int32_t serialId)110 int32_t RilImpl::GetCallWaiting(int32_t slotId, int32_t serialId)
111 {
112 return TaskSchedule(&Telephony::HRilManager::GetCallWaiting, slotId, serialId);
113 }
114
SetCallWaiting(int32_t slotId,int32_t serialId,int32_t activate)115 int32_t RilImpl::SetCallWaiting(int32_t slotId, int32_t serialId, int32_t activate)
116 {
117 return TaskSchedule(&Telephony::HRilManager::SetCallWaiting, slotId, serialId, activate);
118 }
119
GetCallTransferInfo(int32_t slotId,int32_t serialId,int32_t reason)120 int32_t RilImpl::GetCallTransferInfo(int32_t slotId, int32_t serialId, int32_t reason)
121 {
122 return TaskSchedule(&Telephony::HRilManager::GetCallTransferInfo, slotId, serialId, reason);
123 }
124
SetCallTransferInfo(int32_t slotId,int32_t serialId,const CallForwardSetInfo & callForwardSetInfo)125 int32_t RilImpl::SetCallTransferInfo(
126 int32_t slotId, int32_t serialId, const CallForwardSetInfo &callForwardSetInfo)
127 {
128 return TaskSchedule(&Telephony::HRilManager::SetCallTransferInfo, slotId, serialId, callForwardSetInfo);
129 }
130
GetCallRestriction(int32_t slotId,int32_t serialId,const std::string & fac)131 int32_t RilImpl::GetCallRestriction(int32_t slotId, int32_t serialId, const std::string &fac)
132 {
133 return TaskSchedule(&Telephony::HRilManager::GetCallRestriction, slotId, serialId, fac);
134 }
135
SetCallRestriction(int32_t slotId,int32_t serialId,const CallRestrictionInfo & callRestrictionInfo)136 int32_t RilImpl::SetCallRestriction(
137 int32_t slotId, int32_t serialId, const CallRestrictionInfo &callRestrictionInfo)
138 {
139 return TaskSchedule(&Telephony::HRilManager::SetCallRestriction, slotId, serialId, callRestrictionInfo);
140 }
141
GetClip(int32_t slotId,int32_t serialId)142 int32_t RilImpl::GetClip(int32_t slotId, int32_t serialId)
143 {
144 return TaskSchedule(&Telephony::HRilManager::GetClip, slotId, serialId);
145 }
146
SetClip(int32_t slotId,int32_t serialId,int32_t action)147 int32_t RilImpl::SetClip(int32_t slotId, int32_t serialId, int32_t action)
148 {
149 return TaskSchedule(&Telephony::HRilManager::SetClip, slotId, serialId, action);
150 }
151
GetClir(int32_t slotId,int32_t serialId)152 int32_t RilImpl::GetClir(int32_t slotId, int32_t serialId)
153 {
154 return TaskSchedule(&Telephony::HRilManager::GetClir, slotId, serialId);
155 }
156
SetClir(int32_t slotId,int32_t serialId,int32_t action)157 int32_t RilImpl::SetClir(int32_t slotId, int32_t serialId, int32_t action)
158 {
159 return TaskSchedule(&Telephony::HRilManager::SetClir, slotId, serialId, action);
160 }
161
SetCallPreferenceMode(int32_t slotId,int32_t serialId,int32_t mode)162 int32_t RilImpl::SetCallPreferenceMode(int32_t slotId, int32_t serialId, int32_t mode)
163 {
164 return TaskSchedule(&Telephony::HRilManager::SetCallPreferenceMode, slotId, serialId, mode);
165 }
166
GetCallPreferenceMode(int32_t slotId,int32_t serialId)167 int32_t RilImpl::GetCallPreferenceMode(int32_t slotId, int32_t serialId)
168 {
169 return TaskSchedule(&Telephony::HRilManager::GetCallPreferenceMode, slotId, serialId);
170 }
171
SetUssd(int32_t slotId,int32_t serialId,const std::string & str)172 int32_t RilImpl::SetUssd(int32_t slotId, int32_t serialId, const std::string &str)
173 {
174 return TaskSchedule(&Telephony::HRilManager::SetUssd, slotId, serialId, str);
175 }
176
CloseUnFinishedUssd(int32_t slotId,int32_t serialId)177 int32_t RilImpl::CloseUnFinishedUssd(int32_t slotId, int32_t serialId)
178 {
179 return TaskSchedule(&Telephony::HRilManager::CloseUnFinishedUssd, slotId, serialId);
180 }
181
GetUssd(int32_t slotId,int32_t serialId)182 int32_t RilImpl::GetUssd(int32_t slotId, int32_t serialId)
183 {
184 return TaskSchedule(&Telephony::HRilManager::GetUssd, slotId, serialId);
185 }
186
SetMute(int32_t slotId,int32_t serialId,int32_t mute)187 int32_t RilImpl::SetMute(int32_t slotId, int32_t serialId, int32_t mute)
188 {
189 return TaskSchedule(&Telephony::HRilManager::SetMute, slotId, serialId, mute);
190 }
191
GetMute(int32_t slotId,int32_t serialId)192 int32_t RilImpl::GetMute(int32_t slotId, int32_t serialId)
193 {
194 return TaskSchedule(&Telephony::HRilManager::GetMute, slotId, serialId);
195 }
196
GetCallFailReason(int32_t slotId,int32_t serialId)197 int32_t RilImpl::GetCallFailReason(int32_t slotId, int32_t serialId)
198 {
199 return TaskSchedule(&Telephony::HRilManager::GetCallFailReason, slotId, serialId);
200 }
201
CallSupplement(int32_t slotId,int32_t serialId,int32_t type)202 int32_t RilImpl::CallSupplement(int32_t slotId, int32_t serialId, int32_t type)
203 {
204 return TaskSchedule(&Telephony::HRilManager::CallSupplement, slotId, serialId, type);
205 }
206
SendDtmf(int32_t slotId,int32_t serialId,const DtmfInfo & dtmfInfo)207 int32_t RilImpl::SendDtmf(int32_t slotId, int32_t serialId, const DtmfInfo &dtmfInfo)
208 {
209 return TaskSchedule(&Telephony::HRilManager::SendDtmf, slotId, serialId, dtmfInfo);
210 }
211
StartDtmf(int32_t slotId,int32_t serialId,const DtmfInfo & dtmfInfo)212 int32_t RilImpl::StartDtmf(int32_t slotId, int32_t serialId, const DtmfInfo &dtmfInfo)
213 {
214 return TaskSchedule(&Telephony::HRilManager::StartDtmf, slotId, serialId, dtmfInfo);
215 }
216
StopDtmf(int32_t slotId,int32_t serialId,const DtmfInfo & dtmfInfo)217 int32_t RilImpl::StopDtmf(int32_t slotId, int32_t serialId, const DtmfInfo &dtmfInfo)
218 {
219 return TaskSchedule(&Telephony::HRilManager::StopDtmf, slotId, serialId, dtmfInfo);
220 }
221
SetBarringPassword(int32_t slotId,int32_t serialId,const SetBarringInfo & setBarringInfo)222 int32_t RilImpl::SetBarringPassword(
223 int32_t slotId, int32_t serialId, const SetBarringInfo &setBarringInfo)
224 {
225 return TaskSchedule(&Telephony::HRilManager::SetBarringPassword, slotId, serialId, setBarringInfo);
226 }
227
SetVonrSwitch(int32_t slotId,int32_t serialId,int32_t status)228 int32_t RilImpl::SetVonrSwitch(int32_t slotId, int32_t serialId, int32_t status)
229 {
230 return TaskSchedule(&Telephony::HRilManager::SetVonrSwitch, slotId, serialId, status);
231 }
232
233 // Data
ActivatePdpContext(int32_t slotId,int32_t serialId,const DataCallInfo & dataCallInfo)234 int32_t RilImpl::ActivatePdpContext(int32_t slotId, int32_t serialId, const DataCallInfo &dataCallInfo)
235 {
236 return TaskSchedule(&Telephony::HRilManager::ActivatePdpContext, slotId, serialId, dataCallInfo);
237 }
238
ActivatePdpContextWithApnTypes(int32_t slotId,int32_t serialId,const DataCallInfoWithApnTypes & dataCallInfo)239 int32_t RilImpl::ActivatePdpContextWithApnTypes(int32_t slotId, int32_t serialId,
240 const DataCallInfoWithApnTypes &dataCallInfo)
241 {
242 return TaskSchedule(&Telephony::HRilManager::ActivatePdpContextWithApnTypes, slotId, serialId, dataCallInfo);
243 }
244
DeactivatePdpContext(int32_t slotId,int32_t serialId,const UniInfo & uniInfo)245 int32_t RilImpl::DeactivatePdpContext(int32_t slotId, int32_t serialId, const UniInfo &uniInfo)
246 {
247 return TaskSchedule(&Telephony::HRilManager::DeactivatePdpContext, slotId, serialId, uniInfo);
248 }
249
GetPdpContextList(int32_t slotId,int32_t serialId,const UniInfo & uniInfo)250 int32_t RilImpl::GetPdpContextList(int32_t slotId, int32_t serialId, const UniInfo &uniInfo)
251 {
252 return TaskSchedule(&Telephony::HRilManager::GetPdpContextList, slotId, serialId, uniInfo);
253 }
254
SetInitApnInfo(int32_t slotId,int32_t serialId,const DataProfileDataInfo & dataProfileDataInfo)255 int32_t RilImpl::SetInitApnInfo(
256 int32_t slotId, int32_t serialId, const DataProfileDataInfo &dataProfileDataInfo)
257 {
258 return TaskSchedule(&Telephony::HRilManager::SetInitApnInfo, slotId, serialId, dataProfileDataInfo);
259 }
260
GetLinkBandwidthInfo(int32_t slotId,int32_t serialId,int32_t cid)261 int32_t RilImpl::GetLinkBandwidthInfo(int32_t slotId, int32_t serialId, int32_t cid)
262 {
263 return TaskSchedule(&Telephony::HRilManager::GetLinkBandwidthInfo, slotId, serialId, cid);
264 }
265
GetLinkCapability(int32_t slotId,int32_t serialId)266 int32_t RilImpl::GetLinkCapability(int32_t slotId, int32_t serialId)
267 {
268 return TaskSchedule(&Telephony::HRilManager::GetLinkCapability, slotId, serialId);
269 }
270
SetLinkBandwidthReportingRule(int32_t slotId,int32_t serialId,const DataLinkBandwidthReportingRule & dataLinkBandwidthReportingRule)271 int32_t RilImpl::SetLinkBandwidthReportingRule(
272 int32_t slotId, int32_t serialId, const DataLinkBandwidthReportingRule &dataLinkBandwidthReportingRule)
273 {
274 return TaskSchedule(
275 &Telephony::HRilManager::SetLinkBandwidthReportingRule, slotId, serialId, dataLinkBandwidthReportingRule);
276 }
277
SetDataPermitted(int32_t slotId,int32_t serialId,int32_t dataPermitted)278 int32_t RilImpl::SetDataPermitted(int32_t slotId, int32_t serialId, int32_t dataPermitted)
279 {
280 return TaskSchedule(&Telephony::HRilManager::SetDataPermitted, slotId, serialId, dataPermitted);
281 }
282
SetDataProfileInfo(int32_t slotId,int32_t serialId,const DataProfilesInfo & dataProfilesInfo)283 int32_t RilImpl::SetDataProfileInfo(
284 int32_t slotId, int32_t serialId, const DataProfilesInfo &dataProfilesInfo)
285 {
286 return TaskSchedule(&Telephony::HRilManager::SetDataProfileInfo, slotId, serialId, dataProfilesInfo);
287 }
288
SendDataPerformanceMode(int32_t slotId,int32_t serialId,const DataPerformanceInfo & dataPerformanceInfo)289 int32_t RilImpl::SendDataPerformanceMode(
290 int32_t slotId, int32_t serialId, const DataPerformanceInfo &dataPerformanceInfo)
291 {
292 return TaskSchedule(&Telephony::HRilManager::SendDataPerformanceMode, slotId, serialId, dataPerformanceInfo);
293 }
294
SendDataSleepMode(int32_t slotId,int32_t serialId,const DataSleepInfo & dataSleepInfo)295 int32_t RilImpl::SendDataSleepMode(
296 int32_t slotId, int32_t serialId, const DataSleepInfo &dataSleepInfo)
297 {
298 return TaskSchedule(&Telephony::HRilManager::SendDataSleepMode, slotId, serialId, dataSleepInfo);
299 }
300
CleanAllConnections(int32_t slotId,int32_t serialId)301 int32_t RilImpl::CleanAllConnections(int32_t slotId, int32_t serialId)
302 {
303 return TaskSchedule(&Telephony::HRilManager::CleanAllConnections, slotId, serialId);
304 }
305
306 // Modem
SetRadioState(int32_t slotId,int32_t serialId,int32_t fun,int32_t rst)307 int32_t RilImpl::SetRadioState(int32_t slotId, int32_t serialId, int32_t fun, int32_t rst)
308 {
309 return TaskSchedule(&Telephony::HRilManager::SetRadioState, slotId, serialId, fun, rst);
310 }
311
GetRadioState(int32_t slotId,int32_t serialId)312 int32_t RilImpl::GetRadioState(int32_t slotId, int32_t serialId)
313 {
314 return TaskSchedule(&Telephony::HRilManager::GetRadioState, slotId, serialId);
315 }
316
GetImei(int32_t slotId,int32_t serialId)317 int32_t RilImpl::GetImei(int32_t slotId, int32_t serialId)
318 {
319 return TaskSchedule(&Telephony::HRilManager::GetImei, slotId, serialId);
320 }
321
GetImeiSv(int32_t slotId,int32_t serialId)322 int32_t RilImpl::GetImeiSv(int32_t slotId, int32_t serialId)
323 {
324 return TaskSchedule(&Telephony::HRilManager::GetImeiSv, slotId, serialId);
325 }
326
GetMeid(int32_t slotId,int32_t serialId)327 int32_t RilImpl::GetMeid(int32_t slotId, int32_t serialId)
328 {
329 return TaskSchedule(&Telephony::HRilManager::GetMeid, slotId, serialId);
330 }
331
GetVoiceRadioTechnology(int32_t slotId,int32_t serialId)332 int32_t RilImpl::GetVoiceRadioTechnology(int32_t slotId, int32_t serialId)
333 {
334 return TaskSchedule(&Telephony::HRilManager::GetVoiceRadioTechnology, slotId, serialId);
335 }
336
GetBasebandVersion(int32_t slotId,int32_t serialId)337 int32_t RilImpl::GetBasebandVersion(int32_t slotId, int32_t serialId)
338 {
339 return TaskSchedule(&Telephony::HRilManager::GetBasebandVersion, slotId, serialId);
340 }
341
ShutDown(int32_t slotId,int32_t serialId)342 int32_t RilImpl::ShutDown(int32_t slotId, int32_t serialId)
343 {
344 return TaskSchedule(&Telephony::HRilManager::ShutDown, slotId, serialId);
345 }
346
347 // Network
GetSignalStrength(int32_t slotId,int32_t serialId)348 int32_t RilImpl::GetSignalStrength(int32_t slotId, int32_t serialId)
349 {
350 return TaskSchedule(&Telephony::HRilManager::GetSignalStrength, slotId, serialId);
351 }
352
GetCsRegStatus(int32_t slotId,int32_t serialId)353 int32_t RilImpl::GetCsRegStatus(int32_t slotId, int32_t serialId)
354 {
355 return TaskSchedule(&Telephony::HRilManager::GetCsRegStatus, slotId, serialId);
356 }
357
GetPsRegStatus(int32_t slotId,int32_t serialId)358 int32_t RilImpl::GetPsRegStatus(int32_t slotId, int32_t serialId)
359 {
360 return TaskSchedule(&Telephony::HRilManager::GetPsRegStatus, slotId, serialId);
361 }
362
GetOperatorInfo(int32_t slotId,int32_t serialId)363 int32_t RilImpl::GetOperatorInfo(int32_t slotId, int32_t serialId)
364 {
365 return TaskSchedule(&Telephony::HRilManager::GetOperatorInfo, slotId, serialId);
366 }
367
GetNetworkSearchInformation(int32_t slotId,int32_t serialId)368 int32_t RilImpl::GetNetworkSearchInformation(int32_t slotId, int32_t serialId)
369 {
370 return TaskSchedule(&Telephony::HRilManager::GetNetworkSearchInformation, slotId, serialId);
371 }
372
GetNetworkSelectionMode(int32_t slotId,int32_t serialId)373 int32_t RilImpl::GetNetworkSelectionMode(int32_t slotId, int32_t serialId)
374 {
375 return TaskSchedule(&Telephony::HRilManager::GetNetworkSelectionMode, slotId, serialId);
376 }
377
SetNetworkSelectionMode(int32_t slotId,int32_t serialId,const SetNetworkModeInfo & networkModeInfo)378 int32_t RilImpl::SetNetworkSelectionMode(
379 int32_t slotId, int32_t serialId, const SetNetworkModeInfo &networkModeInfo)
380 {
381 return TaskSchedule(&Telephony::HRilManager::SetNetworkSelectionMode, slotId, serialId, networkModeInfo);
382 }
383
GetNeighboringCellInfoList(int32_t slotId,int32_t serialId)384 int32_t RilImpl::GetNeighboringCellInfoList(int32_t slotId, int32_t serialId)
385 {
386 return TaskSchedule(&Telephony::HRilManager::GetNeighboringCellInfoList, slotId, serialId);
387 }
388
GetCurrentCellInfo(int32_t slotId,int32_t serialId)389 int32_t RilImpl::GetCurrentCellInfo(int32_t slotId, int32_t serialId)
390 {
391 return TaskSchedule(&Telephony::HRilManager::GetCurrentCellInfo, slotId, serialId);
392 }
393
SetPreferredNetwork(int32_t slotId,int32_t serialId,int32_t preferredNetworkType)394 int32_t RilImpl::SetPreferredNetwork(int32_t slotId, int32_t serialId, int32_t preferredNetworkType)
395 {
396 return TaskSchedule(&Telephony::HRilManager::SetPreferredNetwork, slotId, serialId, preferredNetworkType);
397 }
398
GetPreferredNetwork(int32_t slotId,int32_t serialId)399 int32_t RilImpl::GetPreferredNetwork(int32_t slotId, int32_t serialId)
400 {
401 return TaskSchedule(&Telephony::HRilManager::GetPreferredNetwork, slotId, serialId);
402 }
403
GetPhysicalChannelConfig(int32_t slotId,int32_t serialId)404 int32_t RilImpl::GetPhysicalChannelConfig(int32_t slotId, int32_t serialId)
405 {
406 return TaskSchedule(&Telephony::HRilManager::GetPhysicalChannelConfig, slotId, serialId);
407 }
408
SetLocateUpdates(int32_t slotId,int32_t serialId,const RilRegNotifyMode mode)409 int32_t RilImpl::SetLocateUpdates(int32_t slotId, int32_t serialId, const RilRegNotifyMode mode)
410 {
411 return TaskSchedule(&Telephony::HRilManager::SetLocateUpdates, slotId, serialId, mode);
412 }
413
SetNotificationFilter(int32_t slotId,int32_t serialId,int32_t newFilter)414 int32_t RilImpl::SetNotificationFilter(int32_t slotId, int32_t serialId, int32_t newFilter)
415 {
416 return TaskSchedule(&Telephony::HRilManager::SetNotificationFilter, slotId, serialId, newFilter);
417 }
418
SetDeviceState(int32_t slotId,int32_t serialId,int32_t deviceStateType,int32_t deviceStateOn)419 int32_t RilImpl::SetDeviceState(
420 int32_t slotId, int32_t serialId, int32_t deviceStateType, int32_t deviceStateOn)
421 {
422 return TaskSchedule(
423 &Telephony::HRilManager::SetDeviceState, slotId, serialId, deviceStateType, deviceStateOn);
424 }
425
SetNrOptionMode(int32_t slotId,int32_t serialId,int32_t mode)426 int32_t RilImpl::SetNrOptionMode(int32_t slotId, int32_t serialId, int32_t mode)
427 {
428 return TaskSchedule(&Telephony::HRilManager::SetNrOptionMode, slotId, serialId, mode);
429 }
430
GetNrOptionMode(int32_t slotId,int32_t serialId)431 int32_t RilImpl::GetNrOptionMode(int32_t slotId, int32_t serialId)
432 {
433 return TaskSchedule(&Telephony::HRilManager::GetNrOptionMode, slotId, serialId);
434 }
435
GetRrcConnectionState(int32_t slotId,int32_t serialId)436 int32_t RilImpl::GetRrcConnectionState(int32_t slotId, int32_t serialId)
437 {
438 return TaskSchedule(&Telephony::HRilManager::GetRrcConnectionState, slotId, serialId);
439 }
440
GetNrSsbId(int32_t slotId,int32_t serialId)441 int32_t RilImpl::GetNrSsbId(int32_t slotId, int32_t serialId)
442 {
443 return TaskSchedule(&Telephony::HRilManager::GetNrSsbId, slotId, serialId);
444 }
445
SetCallback(const sptr<V1_1::IRilCallback> & rilCallback)446 int32_t RilImpl::SetCallback(const sptr<V1_1::IRilCallback> &rilCallback)
447 {
448 return HDF_SUCCESS;
449 }
450
SetCallback1_2(const sptr<V1_2::IRilCallback> & rilCallback)451 int32_t RilImpl::SetCallback1_2(const sptr<V1_2::IRilCallback> &rilCallback)
452 {
453 return HDF_SUCCESS;
454 }
455
SetCallback1_3(const sptr<V1_3::IRilCallback> & rilCallback)456 int32_t RilImpl::SetCallback1_3(const sptr<V1_3::IRilCallback> &rilCallback)
457 {
458 std::lock_guard<std::mutex> lock(mutex_);
459 callback_ = rilCallback;
460 if (callback_ == nullptr) {
461 UnRegister();
462 return HDF_SUCCESS;
463 }
464 g_deathRecipient = new RilDeathRecipient(this);
465 if (g_deathRecipient == nullptr) {
466 HDF_LOGE("SetCallback1_3 fail g_deathRecipient is null");
467 return HDF_FAILURE;
468 }
469 AddRilDeathRecipient(callback_);
470 Telephony::HRilManager::GetInstance().SetRilCallback(callback_);
471 return HDF_SUCCESS;
472 }
473
GetSimIO(int32_t slotId,int32_t serialId,const SimIoRequestInfo & simIO)474 int32_t RilImpl::GetSimIO(int32_t slotId, int32_t serialId, const SimIoRequestInfo &simIO)
475 {
476 return TaskSchedule(&Telephony::HRilManager::GetSimIO, slotId, serialId, simIO);
477 }
478
GetSimStatus(int32_t slotId,int32_t serialId)479 int32_t RilImpl::GetSimStatus(int32_t slotId, int32_t serialId)
480 {
481 return TaskSchedule(&Telephony::HRilManager::GetSimStatus, slotId, serialId);
482 }
483
GetImsi(int32_t slotId,int32_t serialId)484 int32_t RilImpl::GetImsi(int32_t slotId, int32_t serialId)
485 {
486 return TaskSchedule(&Telephony::HRilManager::GetImsi, slotId, serialId);
487 }
488
GetSimLockStatus(int32_t slotId,int32_t serialId,const SimLockInfo & simLockInfo)489 int32_t RilImpl::GetSimLockStatus(int32_t slotId, int32_t serialId, const SimLockInfo &simLockInfo)
490 {
491 return TaskSchedule(&Telephony::HRilManager::GetSimLockStatus, slotId, serialId, simLockInfo);
492 }
493
SetSimLock(int32_t slotId,int32_t serialId,const SimLockInfo & simLockInfo)494 int32_t RilImpl::SetSimLock(int32_t slotId, int32_t serialId, const SimLockInfo &simLockInfo)
495 {
496 return TaskSchedule(&Telephony::HRilManager::SetSimLock, slotId, serialId, simLockInfo);
497 }
498
ChangeSimPassword(int32_t slotId,int32_t serialId,const SimPasswordInfo & simPassword)499 int32_t RilImpl::ChangeSimPassword(int32_t slotId, int32_t serialId, const SimPasswordInfo &simPassword)
500 {
501 return TaskSchedule(&Telephony::HRilManager::ChangeSimPassword, slotId, serialId, simPassword);
502 }
503
UnlockPin(int32_t slotId,int32_t serialId,const std::string & pin)504 int32_t RilImpl::UnlockPin(int32_t slotId, int32_t serialId, const std::string &pin)
505 {
506 return TaskSchedule(&Telephony::HRilManager::UnlockPin, slotId, serialId, pin);
507 }
508
UnlockPuk(int32_t slotId,int32_t serialId,const std::string & puk,const std::string & pin)509 int32_t RilImpl::UnlockPuk(int32_t slotId, int32_t serialId, const std::string &puk, const std::string &pin)
510 {
511 return TaskSchedule(&Telephony::HRilManager::UnlockPuk, slotId, serialId, puk, pin);
512 }
513
UnlockPin2(int32_t slotId,int32_t serialId,const std::string & pin2)514 int32_t RilImpl::UnlockPin2(int32_t slotId, int32_t serialId, const std::string &pin2)
515 {
516 return TaskSchedule(&Telephony::HRilManager::UnlockPin2, slotId, serialId, pin2);
517 }
518
UnlockPuk2(int32_t slotId,int32_t serialId,const std::string & puk2,const std::string & pin2)519 int32_t RilImpl::UnlockPuk2(int32_t slotId, int32_t serialId, const std::string &puk2, const std::string &pin2)
520 {
521 return TaskSchedule(&Telephony::HRilManager::UnlockPuk2, slotId, serialId, puk2, pin2);
522 }
523
SetActiveSim(int32_t slotId,int32_t serialId,int32_t index,int32_t enable)524 int32_t RilImpl::SetActiveSim(int32_t slotId, int32_t serialId, int32_t index, int32_t enable)
525 {
526 return TaskSchedule(&Telephony::HRilManager::SetActiveSim, slotId, serialId, index, enable);
527 }
528
SimStkSendTerminalResponse(int32_t slotId,int32_t serialId,const std::string & strCmd)529 int32_t RilImpl::SimStkSendTerminalResponse(int32_t slotId, int32_t serialId, const std::string &strCmd)
530 {
531 return TaskSchedule(&Telephony::HRilManager::SimStkSendTerminalResponse, slotId, serialId, strCmd);
532 }
533
SimStkSendEnvelope(int32_t slotId,int32_t serialId,const std::string & strCmd)534 int32_t RilImpl::SimStkSendEnvelope(int32_t slotId, int32_t serialId, const std::string &strCmd)
535 {
536 return TaskSchedule(&Telephony::HRilManager::SimStkSendEnvelope, slotId, serialId, strCmd);
537 }
538
SimStkSendCallSetupRequestResult(int32_t slotId,int32_t serialId,int32_t accept)539 int32_t RilImpl::SimStkSendCallSetupRequestResult(int32_t slotId, int32_t serialId, int32_t accept)
540 {
541 return TaskSchedule(&Telephony::HRilManager::SimStkSendCallSetupRequestResult, slotId, serialId, accept);
542 }
543
SimStkIsReady(int32_t slotId,int32_t serialId)544 int32_t RilImpl::SimStkIsReady(int32_t slotId, int32_t serialId)
545 {
546 return TaskSchedule(&Telephony::HRilManager::SimStkIsReady, slotId, serialId);
547 }
548
GetRadioProtocol(int32_t slotId,int32_t serialId)549 int32_t RilImpl::GetRadioProtocol(int32_t slotId, int32_t serialId)
550 {
551 return TaskSchedule(&Telephony::HRilManager::GetRadioProtocol, slotId, serialId);
552 }
553
SetRadioProtocol(int32_t slotId,int32_t serialId,const RadioProtocol & radioProtocol)554 int32_t RilImpl::SetRadioProtocol(int32_t slotId, int32_t serialId, const RadioProtocol &radioProtocol)
555 {
556 return TaskSchedule(&Telephony::HRilManager::SetRadioProtocol, slotId, serialId, radioProtocol);
557 }
558
SimOpenLogicalChannel(int32_t slotId,int32_t serialId,const std::string & appID,int32_t p2)559 int32_t RilImpl::SimOpenLogicalChannel(int32_t slotId, int32_t serialId, const std::string &appID, int32_t p2)
560 {
561 return TaskSchedule(&Telephony::HRilManager::SimOpenLogicalChannel, slotId, serialId, appID, p2);
562 }
563
SimCloseLogicalChannel(int32_t slotId,int32_t serialId,int32_t channelId)564 int32_t RilImpl::SimCloseLogicalChannel(int32_t slotId, int32_t serialId, int32_t channelId)
565 {
566 return TaskSchedule(&Telephony::HRilManager::SimCloseLogicalChannel, slotId, serialId, channelId);
567 }
568
SimTransmitApduLogicalChannel(int32_t slotId,int32_t serialId,const ApduSimIORequestInfo & apduSimIO)569 int32_t RilImpl::SimTransmitApduLogicalChannel(int32_t slotId, int32_t serialId, const ApduSimIORequestInfo &apduSimIO)
570 {
571 return TaskSchedule(&Telephony::HRilManager::SimTransmitApduLogicalChannel, slotId, serialId, apduSimIO);
572 }
573
SimTransmitApduBasicChannel(int32_t slotId,int32_t serialId,const ApduSimIORequestInfo & apduSimIO)574 int32_t RilImpl::SimTransmitApduBasicChannel(int32_t slotId, int32_t serialId, const ApduSimIORequestInfo &apduSimIO)
575 {
576 return TaskSchedule(&Telephony::HRilManager::SimTransmitApduBasicChannel, slotId, serialId, apduSimIO);
577 }
578
SimAuthentication(int32_t slotId,int32_t serialId,const SimAuthenticationRequestInfo & simAuthInfo)579 int32_t RilImpl::SimAuthentication(int32_t slotId, int32_t serialId, const SimAuthenticationRequestInfo &simAuthInfo)
580 {
581 return TaskSchedule(&Telephony::HRilManager::SimAuthentication, slotId, serialId, simAuthInfo);
582 }
583
UnlockSimLock(int32_t slotId,int32_t serialId,int32_t lockType,const std::string & key)584 int32_t RilImpl::UnlockSimLock(int32_t slotId, int32_t serialId, int32_t lockType, const std::string &key)
585 {
586 return TaskSchedule(&Telephony::HRilManager::UnlockSimLock, slotId, serialId, lockType, key);
587 }
588
SendSimMatchedOperatorInfo(int32_t slotId,int32_t serialId,const NcfgOperatorInfo & ncfgOperatorInfo)589 int32_t RilImpl::SendSimMatchedOperatorInfo(int32_t slotId, int32_t serialId, const NcfgOperatorInfo &ncfgOperatorInfo)
590 {
591 return TaskSchedule(&Telephony::HRilManager::SendSimMatchedOperatorInfo, slotId, serialId, ncfgOperatorInfo);
592 }
593
594 // Sms
SendGsmSms(int32_t slotId,int32_t serialId,const GsmSmsMessageInfo & gsmSmsMessageInfo)595 int32_t RilImpl::SendGsmSms(int32_t slotId, int32_t serialId, const GsmSmsMessageInfo &gsmSmsMessageInfo)
596 {
597 return TaskSchedule(&Telephony::HRilManager::SendGsmSms, slotId, serialId, gsmSmsMessageInfo);
598 }
599
SendCdmaSms(int32_t slotId,int32_t serialId,const SendCdmaSmsMessageInfo & cdmaSmsMessageInfo)600 int32_t RilImpl::SendCdmaSms(int32_t slotId, int32_t serialId, const SendCdmaSmsMessageInfo &cdmaSmsMessageInfo)
601 {
602 return TaskSchedule(&Telephony::HRilManager::SendCdmaSms, slotId, serialId, cdmaSmsMessageInfo);
603 }
604
AddSimMessage(int32_t slotId,int32_t serialId,const SmsMessageIOInfo & smsMessageIOInfo)605 int32_t RilImpl::AddSimMessage(int32_t slotId, int32_t serialId, const SmsMessageIOInfo &smsMessageIOInfo)
606 {
607 return TaskSchedule(&Telephony::HRilManager::AddSimMessage, slotId, serialId, smsMessageIOInfo);
608 }
609
DelSimMessage(int32_t slotId,int32_t serialId,int32_t index)610 int32_t RilImpl::DelSimMessage(int32_t slotId, int32_t serialId, int32_t index)
611 {
612 return TaskSchedule(&Telephony::HRilManager::DelSimMessage, slotId, serialId, index);
613 }
614
UpdateSimMessage(int32_t slotId,int32_t serialId,const SmsMessageIOInfo & smsMessageIOInfo)615 int32_t RilImpl::UpdateSimMessage(int32_t slotId, int32_t serialId, const SmsMessageIOInfo &smsMessageIOInfo)
616 {
617 return TaskSchedule(&Telephony::HRilManager::UpdateSimMessage, slotId, serialId, smsMessageIOInfo);
618 }
619
AddCdmaSimMessage(int32_t slotId,int32_t serialId,const SmsMessageIOInfo & smsMessageIOInfo)620 int32_t RilImpl::AddCdmaSimMessage(int32_t slotId, int32_t serialId, const SmsMessageIOInfo &smsMessageIOInfo)
621 {
622 return TaskSchedule(&Telephony::HRilManager::AddCdmaSimMessage, slotId, serialId, smsMessageIOInfo);
623 }
624
DelCdmaSimMessage(int32_t slotId,int32_t serialId,int32_t index)625 int32_t RilImpl::DelCdmaSimMessage(int32_t slotId, int32_t serialId, int32_t index)
626 {
627 return TaskSchedule(&Telephony::HRilManager::DelCdmaSimMessage, slotId, serialId, index);
628 }
629
UpdateCdmaSimMessage(int32_t slotId,int32_t serialId,const SmsMessageIOInfo & smsMessageIOInfo)630 int32_t RilImpl::UpdateCdmaSimMessage(int32_t slotId, int32_t serialId, const SmsMessageIOInfo &smsMessageIOInfo)
631 {
632 return TaskSchedule(&Telephony::HRilManager::UpdateCdmaSimMessage, slotId, serialId, smsMessageIOInfo);
633 }
634
SetSmscAddr(int32_t slotId,int32_t serialId,const ServiceCenterAddress & serviceCenterAddress)635 int32_t RilImpl::SetSmscAddr(int32_t slotId, int32_t serialId, const ServiceCenterAddress &serviceCenterAddress)
636 {
637 return TaskSchedule(&Telephony::HRilManager::SetSmscAddr, slotId, serialId, serviceCenterAddress);
638 }
639
GetSmscAddr(int32_t slotId,int32_t serialId)640 int32_t RilImpl::GetSmscAddr(int32_t slotId, int32_t serialId)
641 {
642 return TaskSchedule(&Telephony::HRilManager::GetSmscAddr, slotId, serialId);
643 }
644
SetCBConfig(int32_t slotId,int32_t serialId,const CBConfigInfo & cellBroadcastInfo)645 int32_t RilImpl::SetCBConfig(int32_t slotId, int32_t serialId, const CBConfigInfo &cellBroadcastInfo)
646 {
647 return TaskSchedule(&Telephony::HRilManager::SetCBConfig, slotId, serialId, cellBroadcastInfo);
648 }
649
GetCBConfig(int32_t slotId,int32_t serialId)650 int32_t RilImpl::GetCBConfig(int32_t slotId, int32_t serialId)
651 {
652 return TaskSchedule(&Telephony::HRilManager::GetCBConfig, slotId, serialId);
653 }
654
SetCdmaCBConfig(int32_t slotId,int32_t serialId,const CdmaCBConfigInfoList & cdmaCBConfigInfoList)655 int32_t RilImpl::SetCdmaCBConfig(int32_t slotId, int32_t serialId, const CdmaCBConfigInfoList &cdmaCBConfigInfoList)
656 {
657 return TaskSchedule(&Telephony::HRilManager::SetCdmaCBConfig, slotId, serialId, cdmaCBConfigInfoList);
658 }
659
GetCdmaCBConfig(int32_t slotId,int32_t serialId)660 int32_t RilImpl::GetCdmaCBConfig(int32_t slotId, int32_t serialId)
661 {
662 return TaskSchedule(&Telephony::HRilManager::GetCdmaCBConfig, slotId, serialId);
663 }
664
SendSmsMoreMode(int32_t slotId,int32_t serialId,const GsmSmsMessageInfo & gsmSmsMessageInfo)665 int32_t RilImpl::SendSmsMoreMode(int32_t slotId, int32_t serialId, const GsmSmsMessageInfo &gsmSmsMessageInfo)
666 {
667 return TaskSchedule(&Telephony::HRilManager::SendSmsMoreMode, slotId, serialId, gsmSmsMessageInfo);
668 }
669
SendSmsAck(int32_t slotId,int32_t serialId,const ModeData & modeData)670 int32_t RilImpl::SendSmsAck(int32_t slotId, int32_t serialId, const ModeData &modeData)
671 {
672 return TaskSchedule(&Telephony::HRilManager::SendSmsAck, slotId, serialId, modeData);
673 }
674
SendRilAck()675 int32_t RilImpl::SendRilAck()
676 {
677 return Telephony::HRilManager::GetInstance().SendRilAck();
678 }
679
AddRilDeathRecipient(const sptr<IRilCallback> & callback)680 int32_t RilImpl::AddRilDeathRecipient(const sptr<IRilCallback> &callback)
681 {
682 const sptr<IRemoteObject> &remote = OHOS::HDI::hdi_objcast<IRilCallback>(callback);
683 if (!remote->AddDeathRecipient(g_deathRecipient)) {
684 HDF_LOGE("AddRilDeathRecipient fail");
685 return HDF_FAILURE;
686 }
687 return HDF_SUCCESS;
688 }
689
RemoveRilDeathRecipient(const sptr<IRilCallback> & callback)690 int32_t RilImpl::RemoveRilDeathRecipient(const sptr<IRilCallback> &callback)
691 {
692 if (callback == nullptr) {
693 return HDF_FAILURE;
694 }
695 const sptr<IRemoteObject> &remote = OHOS::HDI::hdi_objcast<IRilCallback>(callback);
696 if (!remote->RemoveDeathRecipient(g_deathRecipient)) {
697 HDF_LOGI("RemoveRilDeathRecipient fail");
698 return HDF_FAILURE;
699 }
700 return HDF_SUCCESS;
701 }
702
OnRemoteDied(const wptr<IRemoteObject> & object)703 void RilImpl::RilDeathRecipient::OnRemoteDied(const wptr<IRemoteObject> &object)
704 {
705 if (rilInterfaceImpl_ == nullptr) {
706 HDF_LOGE("RilImpl::RilDeathRecipient::OnRemoteDied fail rilInterfaceImpl_ is null");
707 return;
708 }
709 rilInterfaceImpl_->UnRegister();
710 }
711
UnRegister()712 int32_t RilImpl::UnRegister()
713 {
714 HDF_LOGI("UnRegister");
715 RemoveRilDeathRecipient(callback_);
716 callback_ = nullptr;
717 Telephony::HRilManager::GetInstance().SetRilCallback(nullptr);
718 return HDF_SUCCESS;
719 }
720
Init()721 int32_t RilImpl::Init()
722 {
723 return HDF_SUCCESS;
724 }
725 } // namespace V1_3
726 } // namespace Ril
727 } // namespace HDI
728 } // namespace OHOS
729