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