1 /*
2 * Copyright (C) 2021 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 "cellular_call_stub.h"
17 #include "call_manager_errors.h"
18
19 #include "emergency_utils.h"
20 #include "i_call_status_callback.h"
21
22 namespace OHOS {
23 namespace Telephony {
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)24 int32_t CellularCallStub::OnRemoteRequest(
25 uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option)
26 {
27 std::u16string myDescriptor = CellularCallStub::GetDescriptor();
28 std::u16string remoteDescriptor = data.ReadInterfaceToken();
29 if (myDescriptor != remoteDescriptor) {
30 TELEPHONY_LOGE("descriptor checked fail");
31 return TELEPHONY_ERR_DESCRIPTOR_MISMATCH;
32 }
33
34 auto itFunc = requestFuncMap_.find(static_cast<OperationType>(code));
35 if (itFunc != requestFuncMap_.end()) {
36 auto requestFunc = itFunc->second;
37 if (requestFunc != nullptr) {
38 return (this->*requestFunc)(data, reply);
39 }
40 }
41 TELEPHONY_LOGI("CellularCallStub::OnRemoteRequest, default case, need check.");
42 return IPCObjectStub::OnRemoteRequest(code, data, reply, option);
43 }
44
CellularCallStub()45 CellularCallStub::CellularCallStub()
46 {
47 TELEPHONY_LOGI("CellularCallStub::CellularCallStub");
48 requestFuncMap_[OperationType::DIAL] = &CellularCallStub::OnDialInner;
49 requestFuncMap_[OperationType::HANG_UP] = &CellularCallStub::OnHangUpInner;
50 requestFuncMap_[OperationType::REJECT] = &CellularCallStub::OnRejectInner;
51 requestFuncMap_[OperationType::ANSWER] = &CellularCallStub::OnAnswerInner;
52 requestFuncMap_[OperationType::EMERGENCY_CALL] = &CellularCallStub::OnIsEmergencyPhoneNumberInner;
53 requestFuncMap_[OperationType::HOLD_CALL] = &CellularCallStub::OnHoldCallInner;
54 requestFuncMap_[OperationType::UN_HOLD_CALL] = &CellularCallStub::OnUnHoldCallInner;
55 requestFuncMap_[OperationType::SWITCH_CALL] = &CellularCallStub::OnSwitchCallInner;
56 requestFuncMap_[OperationType::COMBINE_CONFERENCE] = &CellularCallStub::OnCombineConferenceInner;
57 requestFuncMap_[OperationType::SEPARATE_CONFERENCE] = &CellularCallStub::OnSeparateConferenceInner;
58 requestFuncMap_[OperationType::INVITE_TO_CONFERENCE] = &CellularCallStub::OnInviteToConferenceInner;
59 requestFuncMap_[OperationType::KICK_OUT_CONFERENCE] = &CellularCallStub::OnKickOutFromConferenceInner;
60 requestFuncMap_[OperationType::HANG_UP_ALL_CONNECTION] = &CellularCallStub::OnHangUpAllConnectionInner;
61 requestFuncMap_[OperationType::UPDATE_CALL_MEDIA_MODE] = &CellularCallStub::OnUpdateCallMediaModeInner;
62 requestFuncMap_[OperationType::REGISTER_CALLBACK] = &CellularCallStub::OnRegisterCallBackInner;
63 requestFuncMap_[OperationType::UNREGISTER_CALLBACK] = &CellularCallStub::OnUnRegisterCallBackInner;
64 requestFuncMap_[OperationType::START_DTMF] = &CellularCallStub::OnStartDtmfInner;
65 requestFuncMap_[OperationType::STOP_DTMF] = &CellularCallStub::OnStopDtmfInner;
66 requestFuncMap_[OperationType::SEND_DTMF] = &CellularCallStub::OnSendDtmfInner;
67 requestFuncMap_[OperationType::START_RTT] = &CellularCallStub::OnStartRttInner;
68 requestFuncMap_[OperationType::STOP_RTT] = &CellularCallStub::OnStopRttInner;
69 requestFuncMap_[OperationType::SET_CALL_TRANSFER] = &CellularCallStub::OnSetCallTransferInner;
70 requestFuncMap_[OperationType::GET_CALL_TRANSFER] = &CellularCallStub::OnGetCallTransferInner;
71 requestFuncMap_[OperationType::SET_CALL_WAITING] = &CellularCallStub::OnSetCallWaitingInner;
72 requestFuncMap_[OperationType::GET_CALL_WAITING] = &CellularCallStub::OnGetCallWaitingInner;
73 requestFuncMap_[OperationType::SET_CALL_RESTRICTION] = &CellularCallStub::OnSetCallRestrictionInner;
74 requestFuncMap_[OperationType::GET_CALL_RESTRICTION] = &CellularCallStub::OnGetCallRestrictionInner;
75 requestFuncMap_[OperationType::SET_DOMAIN_PREFERENCE_MODE] = &CellularCallStub::OnSetDomainPreferenceModeInner;
76 requestFuncMap_[OperationType::GET_DOMAIN_PREFERENCE_MODE] = &CellularCallStub::OnGetDomainPreferenceModeInner;
77 requestFuncMap_[OperationType::SET_LTE_IMS_SWITCH_STATUS] = &CellularCallStub::OnSetLteImsSwitchStatusInner;
78 requestFuncMap_[OperationType::GET_LTE_IMS_SWITCH_STATUS] = &CellularCallStub::OnGetLteImsSwitchStatusInner;
79 requestFuncMap_[OperationType::SET_IMS_CONFIG_STRING] = &CellularCallStub::OnSetImsConfigStringInner;
80 requestFuncMap_[OperationType::SET_IMS_CONFIG_INT] = &CellularCallStub::OnSetImsConfigIntInner;
81 requestFuncMap_[OperationType::GET_IMS_CONFIG] = &CellularCallStub::OnGetImsConfigInner;
82 requestFuncMap_[OperationType::SET_IMS_FEATURE] = &CellularCallStub::OnSetImsFeatureValueInner;
83 requestFuncMap_[OperationType::GET_IMS_FEATURE] = &CellularCallStub::OnGetImsFeatureValueInner;
84 requestFuncMap_[OperationType::SET_IMS_SWITCH_ENHANCE_MODE] = &CellularCallStub::OnSetImsSwitchEnhanceModeInner;
85 requestFuncMap_[OperationType::GET_IMS_SWITCH_ENHANCE_MODE] = &CellularCallStub::OnGetImsSwitchEnhanceModeInner;
86 requestFuncMap_[OperationType::CTRL_CAMERA] = &CellularCallStub::OnCtrlCameraInner;
87 requestFuncMap_[OperationType::SET_PREVIEW_WINDOW] = &CellularCallStub::OnSetPreviewWindowInner;
88 requestFuncMap_[OperationType::SET_DISPLAY_WINDOW] = &CellularCallStub::OnSetDisplayWindowInner;
89 requestFuncMap_[OperationType::SET_CAMERA_ZOOM] = &CellularCallStub::OnSetCameraZoomInner;
90 requestFuncMap_[OperationType::SET_PAUSE_IMAGE] = &CellularCallStub::OnSetPauseImageInner;
91 requestFuncMap_[OperationType::SET_DEVICE_DIRECTION] = &CellularCallStub::OnSetDeviceDirectionInner;
92 requestFuncMap_[OperationType::SET_MUTE] = &CellularCallStub::OnSetMuteInner;
93 requestFuncMap_[OperationType::GET_MUTE] = &CellularCallStub::OnGetMuteInner;
94 }
95
~CellularCallStub()96 CellularCallStub::~CellularCallStub()
97 {
98 TELEPHONY_LOGI("CellularCallStub::~CellularCallStub");
99 requestFuncMap_.clear();
100 }
101
OnDialInner(MessageParcel & data,MessageParcel & reply)102 int32_t CellularCallStub::OnDialInner(MessageParcel &data, MessageParcel &reply)
103 {
104 TELEPHONY_LOGI("CellularCallStub::OnDialInner entry");
105 int32_t size = data.ReadInt32();
106 size = ((size > MAX_SIZE) ? 0 : size);
107 if (size <= 0) {
108 TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
109 return TELEPHONY_ERR_FAIL;
110 }
111 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
112 if (pCallInfo == nullptr) {
113 TELEPHONY_LOGE("OnDialInner return, pCallInfo is nullptr.");
114 return TELEPHONY_ERR_ARGUMENT_INVALID;
115 }
116
117 reply.WriteInt32(Dial(*pCallInfo));
118 return TELEPHONY_SUCCESS;
119 }
120
OnHangUpInner(MessageParcel & data,MessageParcel & reply)121 int32_t CellularCallStub::OnHangUpInner(MessageParcel &data, MessageParcel &reply)
122 {
123 TELEPHONY_LOGI("CellularCallStub::OnHangUpInner entry");
124 int32_t size = data.ReadInt32();
125 size = ((size > MAX_SIZE) ? 0 : size);
126 if (size <= 0) {
127 TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
128 return TELEPHONY_ERR_FAIL;
129 }
130 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
131 if (pCallInfo == nullptr) {
132 TELEPHONY_LOGE("OnHangUpInner return, pCallInfo is nullptr.");
133 return TELEPHONY_ERR_ARGUMENT_INVALID;
134 }
135 auto type = static_cast<CallSupplementType>(data.ReadInt32());
136
137 reply.WriteInt32(HangUp(*pCallInfo, type));
138 return TELEPHONY_SUCCESS;
139 }
140
OnRejectInner(MessageParcel & data,MessageParcel & reply)141 int32_t CellularCallStub::OnRejectInner(MessageParcel &data, MessageParcel &reply)
142 {
143 TELEPHONY_LOGI("CellularCallStub::OnRejectInner entry");
144 int32_t size = data.ReadInt32();
145 size = ((size > MAX_SIZE) ? 0 : size);
146 if (size <= 0) {
147 TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
148 return TELEPHONY_ERR_FAIL;
149 }
150 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
151 if (pCallInfo == nullptr) {
152 TELEPHONY_LOGE("OnRejectInner return, pCallInfo is nullptr.");
153 return TELEPHONY_ERR_ARGUMENT_INVALID;
154 }
155
156 reply.WriteInt32(Reject(*pCallInfo));
157 return TELEPHONY_SUCCESS;
158 }
159
OnAnswerInner(MessageParcel & data,MessageParcel & reply)160 int32_t CellularCallStub::OnAnswerInner(MessageParcel &data, MessageParcel &reply)
161 {
162 TELEPHONY_LOGI("CellularCallStub::OnAnswerInner entry");
163 int32_t size = data.ReadInt32();
164 size = ((size > MAX_SIZE) ? 0 : size);
165 if (size <= 0) {
166 TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
167 return TELEPHONY_ERR_FAIL;
168 }
169 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
170 if (pCallInfo == nullptr) {
171 TELEPHONY_LOGE("OnAnswerInner return, pCallInfo is nullptr.");
172 return TELEPHONY_ERR_ARGUMENT_INVALID;
173 }
174
175 reply.WriteInt32(Answer(*pCallInfo));
176 return TELEPHONY_SUCCESS;
177 }
178
OnIsEmergencyPhoneNumberInner(MessageParcel & data,MessageParcel & reply)179 int32_t CellularCallStub::OnIsEmergencyPhoneNumberInner(MessageParcel &data, MessageParcel &reply)
180 {
181 TELEPHONY_LOGI("CellularCallStub::OnIsEmergencyPhoneNumberInner entry.");
182 int32_t size = data.ReadInt32();
183 size = ((size > MAX_SIZE) ? 0 : size);
184 if (size <= 0) {
185 TELEPHONY_LOGE("CellularCallStub::OnIsEmergencyPhoneNumberInner data size error");
186 return TELEPHONY_ERR_FAIL;
187 }
188 int32_t slotId = data.ReadInt32();
189 std::string phoneNum = data.ReadString();
190 int32_t errorCode = data.ReadInt32();
191 reply.WriteInt32(IsEmergencyPhoneNumber(slotId, phoneNum, errorCode));
192
193 reply.WriteInt32(errorCode);
194 return TELEPHONY_SUCCESS;
195 }
196
OnRegisterCallBackInner(MessageParcel & data,MessageParcel & reply)197 int32_t CellularCallStub::OnRegisterCallBackInner(MessageParcel &data, MessageParcel &reply)
198 {
199 TELEPHONY_LOGI("CellularCallStub::OnRegisterCallBackInner entry.");
200 int32_t size = data.ReadInt32();
201 size = ((size > MAX_SIZE) ? 0 : size);
202 if (size <= 0) {
203 TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
204 return TELEPHONY_ERR_FAIL;
205 }
206
207 int32_t result = TELEPHONY_ERR_LOCAL_PTR_NULL;
208 auto remote = data.ReadRemoteObject();
209 if (remote == nullptr) {
210 TELEPHONY_LOGE("CellularCallStub::OnRegisterCallBackInner return, remote is nullptr.");
211 reply.WriteInt32(result);
212 return result;
213 }
214 result = RegisterCallManagerCallBack(iface_cast<ICallStatusCallback>(remote));
215
216 reply.WriteInt32(result);
217 return TELEPHONY_SUCCESS;
218 }
219
OnUnRegisterCallBackInner(MessageParcel & data,MessageParcel & reply)220 int32_t CellularCallStub::OnUnRegisterCallBackInner(MessageParcel &data, MessageParcel &reply)
221 {
222 TELEPHONY_LOGI("CellularCallStub::OnUnRegisterCallBackInner entry.");
223 int32_t size = data.ReadInt32();
224 size = ((size > MAX_SIZE) ? 0 : size);
225 if (size <= 0) {
226 TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
227 return TELEPHONY_ERR_FAIL;
228 }
229 int32_t result = UnRegisterCallManagerCallBack();
230
231 reply.WriteInt32(result);
232 return result;
233 }
234
OnHoldCallInner(MessageParcel & data,MessageParcel & reply)235 int32_t CellularCallStub::OnHoldCallInner(MessageParcel &data, MessageParcel &reply)
236 {
237 TELEPHONY_LOGI("CellularCallStub::OnHoldCallInner entry");
238 int32_t size = data.ReadInt32();
239 size = ((size > MAX_SIZE) ? 0 : size);
240 if (size <= 0) {
241 TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
242 return TELEPHONY_ERR_FAIL;
243 }
244 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
245 if (pCallInfo == nullptr) {
246 TELEPHONY_LOGE("OnHoldCallInner return, pCallInfo is nullptr.");
247 return TELEPHONY_ERR_ARGUMENT_INVALID;
248 }
249
250 reply.WriteInt32(HoldCall(*pCallInfo));
251 return TELEPHONY_SUCCESS;
252 }
253
OnUnHoldCallInner(MessageParcel & data,MessageParcel & reply)254 int32_t CellularCallStub::OnUnHoldCallInner(MessageParcel &data, MessageParcel &reply)
255 {
256 TELEPHONY_LOGI("CellularCallStub::OnUnHoldCallInner entry");
257 int32_t size = data.ReadInt32();
258 size = ((size > MAX_SIZE) ? 0 : size);
259 if (size <= 0) {
260 TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
261 return TELEPHONY_ERR_FAIL;
262 }
263 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
264 if (pCallInfo == nullptr) {
265 TELEPHONY_LOGE("OnUnHoldCallInner return, pCallInfo is nullptr.");
266 return TELEPHONY_ERR_ARGUMENT_INVALID;
267 }
268
269 reply.WriteInt32(UnHoldCall(*pCallInfo));
270 return TELEPHONY_SUCCESS;
271 }
272
OnSwitchCallInner(MessageParcel & data,MessageParcel & reply)273 int32_t CellularCallStub::OnSwitchCallInner(MessageParcel &data, MessageParcel &reply)
274 {
275 TELEPHONY_LOGI("CellularCallStub::OnSwitchCallInner entry");
276 int32_t size = data.ReadInt32();
277 size = ((size > MAX_SIZE) ? 0 : size);
278 if (size <= 0) {
279 TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
280 return TELEPHONY_ERR_FAIL;
281 }
282 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
283 if (pCallInfo == nullptr) {
284 TELEPHONY_LOGE("OnSwitchCallInner return, pCallInfo is nullptr.");
285 return TELEPHONY_ERR_ARGUMENT_INVALID;
286 }
287
288 reply.WriteInt32(SwitchCall(*pCallInfo));
289 return TELEPHONY_SUCCESS;
290 }
291
OnCombineConferenceInner(MessageParcel & data,MessageParcel & reply)292 int32_t CellularCallStub::OnCombineConferenceInner(MessageParcel &data, MessageParcel &reply)
293 {
294 TELEPHONY_LOGI("CellularCallStub::OnCombineConferenceInner entry");
295 int32_t size = data.ReadInt32();
296 size = ((size > MAX_SIZE) ? 0 : size);
297 if (size <= 0) {
298 TELEPHONY_LOGE("CellularCallStub::OnCombineConferenceInner data size error");
299 return TELEPHONY_ERR_FAIL;
300 }
301 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
302 if (pCallInfo == nullptr) {
303 TELEPHONY_LOGE("OnCombineConferenceInner return, pCallInfo is nullptr.");
304 return TELEPHONY_ERR_ARGUMENT_INVALID;
305 }
306
307 reply.WriteInt32(CombineConference(*pCallInfo));
308 return TELEPHONY_SUCCESS;
309 }
310
OnSeparateConferenceInner(MessageParcel & data,MessageParcel & reply)311 int32_t CellularCallStub::OnSeparateConferenceInner(MessageParcel &data, MessageParcel &reply)
312 {
313 TELEPHONY_LOGI("CellularCallStub::OnSeparateConferenceInner entry");
314 int32_t size = data.ReadInt32();
315 size = ((size > MAX_SIZE) ? 0 : size);
316 if (size <= 0) {
317 TELEPHONY_LOGE("CellularCallStub::OnSeparateConferenceInner data size error");
318 return TELEPHONY_ERR_FAIL;
319 }
320
321 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
322 if (pCallInfo == nullptr) {
323 TELEPHONY_LOGE("OnSeparateConferenceInner return, pCallInfo is nullptr.");
324 return TELEPHONY_ERR_ARGUMENT_INVALID;
325 }
326
327 reply.WriteInt32(SeparateConference(*pCallInfo));
328 return TELEPHONY_SUCCESS;
329 }
330
OnInviteToConferenceInner(MessageParcel & data,MessageParcel & reply)331 int32_t CellularCallStub::OnInviteToConferenceInner(MessageParcel &data, MessageParcel &reply)
332 {
333 TELEPHONY_LOGI("CellularCallStub::OnInviteToConferenceInner entry");
334 int32_t size = data.ReadInt32();
335 size = ((size > MAX_SIZE) ? 0 : size);
336 if (size <= 0) {
337 TELEPHONY_LOGE("CellularCallStub::OnInviteToConferenceInner data size error");
338 return TELEPHONY_ERR_FAIL;
339 }
340
341 int32_t slotId = data.ReadInt32();
342 std::vector<std::string> numberList;
343 bool bRead = data.ReadStringVector(&numberList);
344 if (!bRead) {
345 TELEPHONY_LOGE("InviteToConferenceInner return, read fail.");
346 return TELEPHONY_ERR_ARGUMENT_INVALID;
347 }
348 reply.WriteInt32(InviteToConference(slotId, numberList));
349 return TELEPHONY_SUCCESS;
350 }
351
OnKickOutFromConferenceInner(MessageParcel & data,MessageParcel & reply)352 int32_t CellularCallStub::OnKickOutFromConferenceInner(MessageParcel &data, MessageParcel &reply)
353 {
354 TELEPHONY_LOGI("CellularCallStub::OnKickOutFromConferenceInner entry");
355 int32_t size = data.ReadInt32();
356 size = ((size > MAX_SIZE) ? 0 : size);
357 if (size <= 0) {
358 TELEPHONY_LOGE("CellularCallStub::OnKickOutFromConferenceInner data size error");
359 return TELEPHONY_ERR_FAIL;
360 }
361
362 int32_t slotId = data.ReadInt32();
363 std::vector<std::string> numberList;
364 bool bRead = data.ReadStringVector(&numberList);
365 if (!bRead) {
366 TELEPHONY_LOGE("OnKickOutFromConferenceInner return, read fail.");
367 return TELEPHONY_ERR_ARGUMENT_INVALID;
368 }
369 reply.WriteInt32(KickOutFromConference(slotId, numberList));
370 return TELEPHONY_SUCCESS;
371 }
372
OnHangUpAllConnectionInner(MessageParcel & data,MessageParcel & reply)373 int32_t CellularCallStub::OnHangUpAllConnectionInner(MessageParcel &data, MessageParcel &reply)
374 {
375 TELEPHONY_LOGI("CellularCallStub::OnHangUpAllConnectionInner entry");
376 int32_t size = data.ReadInt32();
377 size = ((size > MAX_SIZE) ? 0 : size);
378 if (size <= 0) {
379 TELEPHONY_LOGE("OnHangUpAllConnectionInner data size error");
380 return TELEPHONY_ERR_FAIL;
381 }
382
383 reply.WriteInt32(HangUpAllConnection());
384 return TELEPHONY_SUCCESS;
385 }
386
OnUpdateCallMediaModeInner(MessageParcel & data,MessageParcel & reply)387 int32_t CellularCallStub::OnUpdateCallMediaModeInner(MessageParcel &data, MessageParcel &reply)
388 {
389 TELEPHONY_LOGI("CellularCallStub::OnUpdateCallMediaModeInner entry");
390 int32_t size = data.ReadInt32();
391 size = ((size > MAX_SIZE) ? 0 : size);
392 if (size <= 0) {
393 TELEPHONY_LOGE("OnUpdateCallMediaModeInner data size error");
394 return TELEPHONY_ERR_FAIL;
395 }
396 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
397 if (pCallInfo == nullptr) {
398 TELEPHONY_LOGE("OnUpdateCallMediaModeInner return, pCallInfo is nullptr.");
399 return TELEPHONY_ERR_ARGUMENT_INVALID;
400 }
401 auto mode = static_cast<ImsCallMode>(data.ReadInt32());
402
403 reply.WriteInt32(UpdateImsCallMode(*pCallInfo, mode));
404 return TELEPHONY_SUCCESS;
405 }
406
OnStartDtmfInner(MessageParcel & data,MessageParcel & reply)407 int32_t CellularCallStub::OnStartDtmfInner(MessageParcel &data, MessageParcel &reply)
408 {
409 TELEPHONY_LOGI("CellularCallStub::OnStartDtmfInner entry");
410 int32_t size = data.ReadInt32();
411 size = ((size > MAX_SIZE) ? 0 : size);
412 if (size <= 0) {
413 TELEPHONY_LOGE("CellularCallStub::OnStartDtmfInner data size error");
414 return TELEPHONY_ERR_FAIL;
415 }
416
417 char *pDtmf = (char *)(data.ReadCString());
418 if (pDtmf == nullptr) {
419 TELEPHONY_LOGE("OnStartDtmfInner return, pDtmf is nullptr.");
420 return TELEPHONY_ERR_ARGUMENT_INVALID;
421 }
422 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
423 if (pCallInfo == nullptr) {
424 TELEPHONY_LOGE("OnStartDtmfInner return, pCallInfo is nullptr.");
425 return TELEPHONY_ERR_ARGUMENT_INVALID;
426 }
427
428 reply.WriteInt32(StartDtmf(*pDtmf, *pCallInfo));
429 return TELEPHONY_SUCCESS;
430 }
431
OnStopDtmfInner(MessageParcel & data,MessageParcel & reply)432 int32_t CellularCallStub::OnStopDtmfInner(MessageParcel &data, MessageParcel &reply)
433 {
434 TELEPHONY_LOGI("CellularCallStub::OnStopDtmfInner entry");
435 int32_t size = data.ReadInt32();
436 size = ((size > MAX_SIZE) ? 0 : size);
437 if (size <= 0) {
438 TELEPHONY_LOGE("CellularCallStub::OnStopDtmfInner data size error");
439 return TELEPHONY_ERR_FAIL;
440 }
441
442 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
443 if (pCallInfo == nullptr) {
444 TELEPHONY_LOGE("OnStopDtmfInner return, pCallInfo is nullptr.");
445 return TELEPHONY_ERR_ARGUMENT_INVALID;
446 }
447
448 reply.WriteInt32(StopDtmf(*pCallInfo));
449 return TELEPHONY_SUCCESS;
450 }
451
OnSendDtmfInner(MessageParcel & data,MessageParcel & reply)452 int32_t CellularCallStub::OnSendDtmfInner(MessageParcel &data, MessageParcel &reply)
453 {
454 TELEPHONY_LOGI("CellularCallStub::OnSendDtmfInner entry");
455 int32_t size = data.ReadInt32();
456 size = ((size > MAX_SIZE) ? 0 : size);
457 if (size <= 0) {
458 TELEPHONY_LOGE("CellularCallStub::OnSendDtmfInner data size error");
459 return TELEPHONY_ERR_FAIL;
460 }
461
462 char *pDtmf = (char *)(data.ReadCString());
463 if (pDtmf == nullptr) {
464 TELEPHONY_LOGE("OnSendDtmfInner return, pDtmf is nullptr.");
465 return TELEPHONY_ERR_ARGUMENT_INVALID;
466 }
467 auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
468 if (pCallInfo == nullptr) {
469 TELEPHONY_LOGE("OnSendDtmfInner return, pCallInfo is nullptr.");
470 return TELEPHONY_ERR_ARGUMENT_INVALID;
471 }
472
473 reply.WriteInt32(SendDtmf(*pDtmf, *pCallInfo));
474 return TELEPHONY_SUCCESS;
475 }
476
OnStartRttInner(MessageParcel & data,MessageParcel & reply)477 int32_t CellularCallStub::OnStartRttInner(MessageParcel &data, MessageParcel &reply)
478 {
479 TELEPHONY_LOGI("CellularCallStub::OnStartRttInner entry");
480 int32_t size = data.ReadInt32();
481 size = ((size > MAX_SIZE) ? 0 : size);
482 if (size <= 0) {
483 TELEPHONY_LOGE("CellularCallStub::OnStartRttInner data size error");
484 return TELEPHONY_ERR_FAIL;
485 }
486 int32_t slotId = data.ReadInt32();
487 std::string msg = data.ReadString();
488
489 reply.WriteInt32(StartRtt(slotId, msg));
490 return TELEPHONY_SUCCESS;
491 }
492
OnStopRttInner(MessageParcel & data,MessageParcel & reply)493 int32_t CellularCallStub::OnStopRttInner(MessageParcel &data, MessageParcel &reply)
494 {
495 TELEPHONY_LOGI("CellularCallStub::OnStopRttInner entry");
496 int32_t size = data.ReadInt32();
497 size = ((size > MAX_SIZE) ? 0 : size);
498 if (size <= 0) {
499 TELEPHONY_LOGE("CellularCallStub::OnStopRttInner data size error");
500 return TELEPHONY_ERR_FAIL;
501 }
502 int32_t slotId = data.ReadInt32();
503
504 reply.WriteInt32(StopRtt(slotId));
505 return TELEPHONY_SUCCESS;
506 }
507
OnSetCallTransferInner(MessageParcel & data,MessageParcel & reply)508 int32_t CellularCallStub::OnSetCallTransferInner(MessageParcel &data, MessageParcel &reply)
509 {
510 TELEPHONY_LOGI("CellularCallStub::OnSetCallTransferInner entry");
511 int32_t size = data.ReadInt32();
512 size = ((size > MAX_SIZE) ? 0 : size);
513 if (size <= 0) {
514 TELEPHONY_LOGE("CellularCallStub::OnSetCallTransferInner data size error");
515 return TELEPHONY_ERR_FAIL;
516 }
517 int32_t slotId = data.ReadInt32();
518 auto pCTInfo = (CallTransferInfo *)data.ReadRawData(sizeof(CallTransferInfo));
519 if (pCTInfo == nullptr) {
520 TELEPHONY_LOGE("OnSetCallTransferInner return, pCTInfo is nullptr.");
521 return TELEPHONY_ERR_ARGUMENT_INVALID;
522 }
523
524 reply.WriteInt32(SetCallTransferInfo(slotId, *pCTInfo));
525 return TELEPHONY_SUCCESS;
526 }
527
OnGetCallTransferInner(MessageParcel & data,MessageParcel & reply)528 int32_t CellularCallStub::OnGetCallTransferInner(MessageParcel &data, MessageParcel &reply)
529 {
530 TELEPHONY_LOGI("CellularCallStub::OnGetCallTransferInner entry");
531 int32_t size = data.ReadInt32();
532 size = ((size > MAX_SIZE) ? 0 : size);
533 if (size <= 0) {
534 TELEPHONY_LOGE("CellularCallStub::OnGetCallTransferInner data size error");
535 return TELEPHONY_ERR_FAIL;
536 }
537 int32_t slotId = data.ReadInt32();
538 auto type = static_cast<CallTransferType>(data.ReadInt32());
539
540 reply.WriteInt32(GetCallTransferInfo(slotId, type));
541 return TELEPHONY_SUCCESS;
542 }
543
OnSetCallWaitingInner(MessageParcel & data,MessageParcel & reply)544 int32_t CellularCallStub::OnSetCallWaitingInner(MessageParcel &data, MessageParcel &reply)
545 {
546 TELEPHONY_LOGI("CellularCallStub::OnSetCallWaitingInner entry");
547 int32_t size = data.ReadInt32();
548 size = ((size > MAX_SIZE) ? 0 : size);
549 if (size <= 0) {
550 TELEPHONY_LOGE("CellularCallStub::OnSetCallWaitingInner data size error");
551 return TELEPHONY_ERR_FAIL;
552 }
553 int32_t slotId = data.ReadInt32();
554 bool enable = data.ReadBool();
555
556 reply.WriteInt32(SetCallWaiting(slotId, enable));
557 return TELEPHONY_SUCCESS;
558 }
559
OnGetCallWaitingInner(MessageParcel & data,MessageParcel & reply)560 int32_t CellularCallStub::OnGetCallWaitingInner(MessageParcel &data, MessageParcel &reply)
561 {
562 TELEPHONY_LOGI("CellularCallStub::OnGetCallWaitingInner entry");
563 int32_t size = data.ReadInt32();
564 size = ((size > MAX_SIZE) ? 0 : size);
565 if (size <= 0) {
566 TELEPHONY_LOGE("CellularCallStub::OnGetCallWaitingInner data size error");
567 return TELEPHONY_ERR_FAIL;
568 }
569 int32_t slotId = data.ReadInt32();
570 TELEPHONY_LOGI("CellularCallStub::OnGetCallWaitingInner data.ReadInt32()");
571 reply.WriteInt32(GetCallWaiting(slotId));
572 return TELEPHONY_SUCCESS;
573 }
574
OnSetCallRestrictionInner(MessageParcel & data,MessageParcel & reply)575 int32_t CellularCallStub::OnSetCallRestrictionInner(MessageParcel &data, MessageParcel &reply)
576 {
577 TELEPHONY_LOGI("CellularCallStub::OnSetCallRestrictionInner entry");
578 int32_t size = data.ReadInt32();
579 size = ((size > MAX_SIZE) ? 0 : size);
580 if (size <= 0) {
581 TELEPHONY_LOGE("CellularCallStub::OnSetCallRestrictionInner data size error");
582 return TELEPHONY_ERR_FAIL;
583 }
584 int32_t slotId = data.ReadInt32();
585 auto pCRInfo = (CallRestrictionInfo *)data.ReadRawData(sizeof(CallRestrictionInfo));
586 if (pCRInfo == nullptr) {
587 TELEPHONY_LOGE("OnSetCallRestrictionInner return, pCRInfo is nullptr.");
588 return TELEPHONY_ERR_ARGUMENT_INVALID;
589 }
590
591 reply.WriteInt32(SetCallRestriction(slotId, *pCRInfo));
592 return TELEPHONY_SUCCESS;
593 }
594
OnGetCallRestrictionInner(MessageParcel & data,MessageParcel & reply)595 int32_t CellularCallStub::OnGetCallRestrictionInner(MessageParcel &data, MessageParcel &reply)
596 {
597 TELEPHONY_LOGI("CellularCallStub::OnGetCallRestrictionInner entry");
598 int32_t size = data.ReadInt32();
599 size = ((size > MAX_SIZE) ? 0 : size);
600 if (size <= 0) {
601 TELEPHONY_LOGE("CellularCallStub::OnGetCallRestrictionInner data size error");
602 return TELEPHONY_ERR_FAIL;
603 }
604 int32_t slotId = data.ReadInt32();
605 auto facType = static_cast<CallRestrictionType>(data.ReadInt32());
606
607 reply.WriteInt32(GetCallRestriction(slotId, facType));
608 return TELEPHONY_SUCCESS;
609 }
610
OnSetDomainPreferenceModeInner(MessageParcel & data,MessageParcel & reply)611 int32_t CellularCallStub::OnSetDomainPreferenceModeInner(MessageParcel &data, MessageParcel &reply)
612 {
613 TELEPHONY_LOGI("CellularCallStub::OnSetDomainPreferenceModeInner entry");
614 int32_t size = data.ReadInt32();
615 size = ((size > MAX_SIZE) ? 0 : size);
616 if (size <= 0) {
617 TELEPHONY_LOGE("CellularCallStub::OnSetDomainPreferenceModeInner data size error");
618 return TELEPHONY_ERR_FAIL;
619 }
620 int32_t slotId = data.ReadInt32();
621 int32_t mode = data.ReadInt32();
622
623 reply.WriteInt32(SetDomainPreferenceMode(slotId, mode));
624 return TELEPHONY_SUCCESS;
625 }
626
OnGetDomainPreferenceModeInner(MessageParcel & data,MessageParcel & reply)627 int32_t CellularCallStub::OnGetDomainPreferenceModeInner(MessageParcel &data, MessageParcel &reply)
628 {
629 TELEPHONY_LOGI("CellularCallStub::OnGetDomainPreferenceModeInner entry");
630 int32_t size = data.ReadInt32();
631 size = ((size > MAX_SIZE) ? 0 : size);
632 if (size <= 0) {
633 TELEPHONY_LOGE("CellularCallStub::OnGetDomainPreferenceModeInner data size error");
634 return TELEPHONY_ERR_FAIL;
635 }
636 int32_t slotId = data.ReadInt32();
637
638 reply.WriteInt32(GetDomainPreferenceMode(slotId));
639 return TELEPHONY_SUCCESS;
640 }
641
OnSetLteImsSwitchStatusInner(MessageParcel & data,MessageParcel & reply)642 int32_t CellularCallStub::OnSetLteImsSwitchStatusInner(MessageParcel &data, MessageParcel &reply)
643 {
644 TELEPHONY_LOGI("CellularCallStub::OnSetLteImsSwitchStatusInner entry");
645 int32_t size = data.ReadInt32();
646 size = ((size > MAX_SIZE) ? 0 : size);
647 if (size <= 0) {
648 TELEPHONY_LOGE("CellularCallStub::OnSetLteImsSwitchStatusInner data size error");
649 return TELEPHONY_ERR_FAIL;
650 }
651 int32_t slotId = data.ReadInt32();
652 bool active = data.ReadBool();
653
654 reply.WriteInt32(SetLteImsSwitchStatus(slotId, active));
655 return TELEPHONY_SUCCESS;
656 }
657
OnGetLteImsSwitchStatusInner(MessageParcel & data,MessageParcel & reply)658 int32_t CellularCallStub::OnGetLteImsSwitchStatusInner(MessageParcel &data, MessageParcel &reply)
659 {
660 TELEPHONY_LOGI("CellularCallStub::OnGetLteImsSwitchStatusInner entry");
661 int32_t size = data.ReadInt32();
662 size = ((size > MAX_SIZE) ? 0 : size);
663 if (size <= 0) {
664 TELEPHONY_LOGE("CellularCallStub::OnGetLteImsSwitchStatusInner data size error");
665 return TELEPHONY_ERR_FAIL;
666 }
667 int32_t slotId = data.ReadInt32();
668
669 reply.WriteInt32(GetLteImsSwitchStatus(slotId));
670 return TELEPHONY_SUCCESS;
671 }
672
OnSetImsConfigStringInner(MessageParcel & data,MessageParcel & reply)673 int32_t CellularCallStub::OnSetImsConfigStringInner(MessageParcel &data, MessageParcel &reply)
674 {
675 TELEPHONY_LOGI("CellularCallStub::OnSetImsConfigStringInner entry");
676 int32_t size = data.ReadInt32();
677 size = ((size > MAX_SIZE) ? 0 : size);
678 if (size <= 0) {
679 TELEPHONY_LOGE("CellularCallStub::OnSetImsConfigStringInner data size error");
680 return TELEPHONY_ERR_FAIL;
681 }
682 int32_t slotId = data.ReadInt32();
683 auto item = static_cast<ImsConfigItem>(data.ReadInt32());
684 std::string value = data.ReadString();
685
686 reply.WriteInt32(SetImsConfig(slotId, item, value));
687 return TELEPHONY_SUCCESS;
688 }
689
OnSetImsConfigIntInner(MessageParcel & data,MessageParcel & reply)690 int32_t CellularCallStub::OnSetImsConfigIntInner(MessageParcel &data, MessageParcel &reply)
691 {
692 TELEPHONY_LOGI("CellularCallStub::OnSetImsConfigIntInner entry");
693 int32_t size = data.ReadInt32();
694 size = ((size > MAX_SIZE) ? 0 : size);
695 if (size <= 0) {
696 TELEPHONY_LOGE("CellularCallStub::OnSetImsConfigIntInner data size error");
697 return TELEPHONY_ERR_FAIL;
698 }
699 int32_t slotId = data.ReadInt32();
700 auto item = static_cast<ImsConfigItem>(data.ReadInt32());
701 int32_t value = data.ReadInt32();
702
703 reply.WriteInt32(SetImsConfig(slotId, item, value));
704 return TELEPHONY_SUCCESS;
705 }
706
OnGetImsConfigInner(MessageParcel & data,MessageParcel & reply)707 int32_t CellularCallStub::OnGetImsConfigInner(MessageParcel &data, MessageParcel &reply)
708 {
709 TELEPHONY_LOGI("CellularCallStub::OnGetImsConfigInner entry");
710 int32_t size = data.ReadInt32();
711 size = ((size > MAX_SIZE) ? 0 : size);
712 if (size <= 0) {
713 TELEPHONY_LOGE("CellularCallStub::OnGetImsConfigInner data size error");
714 return TELEPHONY_ERR_FAIL;
715 }
716 int32_t slotId = data.ReadInt32();
717 auto item = static_cast<ImsConfigItem>(data.ReadInt32());
718
719 reply.WriteInt32(GetImsConfig(slotId, item));
720 return TELEPHONY_SUCCESS;
721 }
722
OnSetImsFeatureValueInner(MessageParcel & data,MessageParcel & reply)723 int32_t CellularCallStub::OnSetImsFeatureValueInner(MessageParcel &data, MessageParcel &reply)
724 {
725 TELEPHONY_LOGI("CellularCallStub::OnSetImsFeatureValueInner entry");
726 int32_t size = data.ReadInt32();
727 size = ((size > MAX_SIZE) ? 0 : size);
728 if (size <= 0) {
729 TELEPHONY_LOGE("CellularCallStub::OnSetImsFeatureValueInner data size error");
730 return TELEPHONY_ERR_FAIL;
731 }
732 int32_t slotId = data.ReadInt32();
733 auto type = static_cast<FeatureType>(data.ReadInt32());
734 int32_t value = data.ReadInt32();
735
736 reply.WriteInt32(SetImsFeatureValue(slotId, type, value));
737 return TELEPHONY_SUCCESS;
738 }
739
OnGetImsFeatureValueInner(MessageParcel & data,MessageParcel & reply)740 int32_t CellularCallStub::OnGetImsFeatureValueInner(MessageParcel &data, MessageParcel &reply)
741 {
742 TELEPHONY_LOGI("CellularCallStub::OnGetImsFeatureValueInner entry");
743 int32_t size = data.ReadInt32();
744 size = ((size > MAX_SIZE) ? 0 : size);
745 if (size <= 0) {
746 TELEPHONY_LOGE("CellularCallStub::OnGetImsFeatureValueInner data size error");
747 return TELEPHONY_ERR_FAIL;
748 }
749 int32_t slotId = data.ReadInt32();
750 auto type = static_cast<FeatureType>(data.ReadInt32());
751
752 reply.WriteInt32(GetImsFeatureValue(slotId, type));
753 return TELEPHONY_SUCCESS;
754 }
755
OnSetImsSwitchEnhanceModeInner(MessageParcel & data,MessageParcel & reply)756 int32_t CellularCallStub::OnSetImsSwitchEnhanceModeInner(MessageParcel &data, MessageParcel &reply)
757 {
758 TELEPHONY_LOGI("CellularCallStub::OnSetImsSwitchEnhanceModeInner entry");
759 int32_t size = data.ReadInt32();
760 size = ((size > MAX_SIZE) ? 0 : size);
761 if (size <= 0) {
762 TELEPHONY_LOGE("CellularCallStub::OnSetImsSwitchEnhanceModeInner data size error");
763 return TELEPHONY_ERR_FAIL;
764 }
765 int32_t slotId = data.ReadInt32();
766 bool value = data.ReadBool();
767
768 reply.WriteInt32(SetImsSwitchEnhanceMode(slotId, value));
769 return TELEPHONY_SUCCESS;
770 }
771
OnGetImsSwitchEnhanceModeInner(MessageParcel & data,MessageParcel & reply)772 int32_t CellularCallStub::OnGetImsSwitchEnhanceModeInner(MessageParcel &data, MessageParcel &reply)
773 {
774 TELEPHONY_LOGI("CellularCallStub::OnGetImsSwitchEnhanceModeInner entry");
775 int32_t size = data.ReadInt32();
776 size = ((size > MAX_SIZE) ? 0 : size);
777 if (size <= 0) {
778 TELEPHONY_LOGE("CellularCallStub::OnGetImsSwitchEnhanceModeInner data size error");
779 return TELEPHONY_ERR_FAIL;
780 }
781 int32_t slotId = data.ReadInt32();
782
783 reply.WriteInt32(GetImsSwitchEnhanceMode(slotId));
784 return TELEPHONY_SUCCESS;
785 }
786
OnCtrlCameraInner(MessageParcel & data,MessageParcel & reply)787 int32_t CellularCallStub::OnCtrlCameraInner(MessageParcel &data, MessageParcel &reply)
788 {
789 TELEPHONY_LOGI("CellularCallStub::OnCtrlCameraInner entry");
790 int32_t size = data.ReadInt32();
791 size = ((size > MAX_SIZE) ? 0 : size);
792 if (size <= 0) {
793 TELEPHONY_LOGE("CellularCallStub::OnCtrlCameraInner data size error");
794 return TELEPHONY_ERR_FAIL;
795 }
796 std::u16string cameraId = data.ReadString16();
797 int32_t callingUid = data.ReadInt32();
798 int32_t callingPid = data.ReadInt32();
799
800 reply.WriteInt32(CtrlCamera(cameraId, callingUid, callingPid));
801 return TELEPHONY_SUCCESS;
802 }
803
OnSetPreviewWindowInner(MessageParcel & data,MessageParcel & reply)804 int32_t CellularCallStub::OnSetPreviewWindowInner(MessageParcel &data, MessageParcel &reply)
805 {
806 TELEPHONY_LOGI("CellularCallStub::OnSetPreviewWindowInner entry");
807 int32_t size = data.ReadInt32();
808 size = ((size > MAX_SIZE) ? 0 : size);
809 if (size <= 0) {
810 TELEPHONY_LOGE("CellularCallStub::OnSetPreviewWindowInner data size error");
811 return TELEPHONY_ERR_FAIL;
812 }
813 int32_t x = data.ReadInt32();
814 int32_t y = data.ReadInt32();
815 int32_t z = data.ReadInt32();
816 int32_t width = data.ReadInt32();
817 int32_t height = data.ReadInt32();
818
819 reply.WriteInt32(SetPreviewWindow(x, y, z, width, height));
820 return TELEPHONY_SUCCESS;
821 }
822
OnSetDisplayWindowInner(MessageParcel & data,MessageParcel & reply)823 int32_t CellularCallStub::OnSetDisplayWindowInner(MessageParcel &data, MessageParcel &reply)
824 {
825 TELEPHONY_LOGI("CellularCallStub::OnSetDisplayWindowInner entry");
826 int32_t size = data.ReadInt32();
827 size = ((size > MAX_SIZE) ? 0 : size);
828 if (size <= 0) {
829 TELEPHONY_LOGE("CellularCallStub::OnSetDisplayWindowInner data size error");
830 return TELEPHONY_ERR_FAIL;
831 }
832 int32_t x = data.ReadInt32();
833 int32_t y = data.ReadInt32();
834 int32_t z = data.ReadInt32();
835 int32_t width = data.ReadInt32();
836 int32_t height = data.ReadInt32();
837
838 reply.WriteInt32(SetDisplayWindow(x, y, z, width, height));
839 return TELEPHONY_SUCCESS;
840 }
841
OnSetCameraZoomInner(MessageParcel & data,MessageParcel & reply)842 int32_t CellularCallStub::OnSetCameraZoomInner(MessageParcel &data, MessageParcel &reply)
843 {
844 TELEPHONY_LOGI("CellularCallStub::OnSetCameraZoomInner entry");
845 int32_t size = data.ReadInt32();
846 size = ((size > MAX_SIZE) ? 0 : size);
847 if (size <= 0) {
848 TELEPHONY_LOGE("CellularCallStub::OnSetCameraZoomInner data size error");
849 return TELEPHONY_ERR_FAIL;
850 }
851 float zoomRatio = data.ReadFloat();
852
853 reply.WriteInt32(SetCameraZoom(zoomRatio));
854 return TELEPHONY_SUCCESS;
855 }
856
OnSetPauseImageInner(MessageParcel & data,MessageParcel & reply)857 int32_t CellularCallStub::OnSetPauseImageInner(MessageParcel &data, MessageParcel &reply)
858 {
859 TELEPHONY_LOGI("CellularCallStub::OnSetPauseImageInner entry");
860 int32_t size = data.ReadInt32();
861 size = ((size > MAX_SIZE) ? 0 : size);
862 if (size <= 0) {
863 TELEPHONY_LOGE("CellularCallStub::OnSetPauseImageInner data size error");
864 return TELEPHONY_ERR_FAIL;
865 }
866 std::u16string imagePath = data.ReadString16();
867
868 reply.WriteInt32(SetPauseImage(imagePath));
869 return TELEPHONY_SUCCESS;
870 }
871
OnSetDeviceDirectionInner(MessageParcel & data,MessageParcel & reply)872 int32_t CellularCallStub::OnSetDeviceDirectionInner(MessageParcel &data, MessageParcel &reply)
873 {
874 TELEPHONY_LOGI("CellularCallStub::OnSetDeviceDirectionInner entry");
875 int32_t size = data.ReadInt32();
876 size = ((size > MAX_SIZE) ? 0 : size);
877 if (size <= 0) {
878 TELEPHONY_LOGE("CellularCallStub::OnSetDeviceDirectionInner data size error");
879 return TELEPHONY_ERR_FAIL;
880 }
881 int32_t rotation = data.ReadInt32();
882
883 reply.WriteInt32(SetDeviceDirection(rotation));
884 return TELEPHONY_SUCCESS;
885 }
886
OnSetMuteInner(MessageParcel & data,MessageParcel & reply)887 int32_t CellularCallStub::OnSetMuteInner(MessageParcel &data, MessageParcel &reply)
888 {
889 TELEPHONY_LOGI("CellularCallStub::OnSetMuteInner entry");
890 int32_t size = data.ReadInt32();
891 size = ((size > MAX_SIZE) ? 0 : size);
892 if (size <= 0) {
893 TELEPHONY_LOGE("CellularCallStub::OnSetMuteInner data size error");
894 return TELEPHONY_ERR_FAIL;
895 }
896 int32_t slotId = data.ReadInt32();
897 int32_t mute = data.ReadInt32();
898
899 reply.WriteInt32(SetMute(slotId, mute));
900 return TELEPHONY_SUCCESS;
901 }
902
OnGetMuteInner(MessageParcel & data,MessageParcel & reply)903 int32_t CellularCallStub::OnGetMuteInner(MessageParcel &data, MessageParcel &reply)
904 {
905 TELEPHONY_LOGI("CellularCallStub::OnGetMuteInner entry");
906 int32_t size = data.ReadInt32();
907 size = ((size > MAX_SIZE) ? 0 : size);
908 if (size <= 0) {
909 TELEPHONY_LOGE("CellularCallStub::OnGetMuteInner data size error");
910 return TELEPHONY_ERR_FAIL;
911 }
912 int32_t slotId = data.ReadInt32();
913
914 reply.WriteInt32(GetMute(slotId));
915 return TELEPHONY_SUCCESS;
916 }
917 } // namespace Telephony
918 } // namespace OHOS
919