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