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