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