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