• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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