1d95e75fdSopenharmony_ci/* 2d95e75fdSopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 3d95e75fdSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4d95e75fdSopenharmony_ci * you may not use this file except in compliance with the License. 5d95e75fdSopenharmony_ci * You may obtain a copy of the License at 6d95e75fdSopenharmony_ci * 7d95e75fdSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8d95e75fdSopenharmony_ci * 9d95e75fdSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10d95e75fdSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11d95e75fdSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12d95e75fdSopenharmony_ci * See the License for the specific language governing permissions and 13d95e75fdSopenharmony_ci * limitations under the License. 14d95e75fdSopenharmony_ci */ 15d95e75fdSopenharmony_ci 16d95e75fdSopenharmony_ci#include "base_connection.h" 17d95e75fdSopenharmony_ci 18d95e75fdSopenharmony_ci#include "securec.h" 19d95e75fdSopenharmony_ci#include "standardize_utils.h" 20d95e75fdSopenharmony_ci 21d95e75fdSopenharmony_cinamespace OHOS { 22d95e75fdSopenharmony_cinamespace Telephony { 23d95e75fdSopenharmony_ciBaseConnection::BaseConnection() 24d95e75fdSopenharmony_ci{ 25d95e75fdSopenharmony_ci if (memset_s(&callReportInfo_, sizeof(CallReportInfo), 0, sizeof(callReportInfo_)) != EOK) { 26d95e75fdSopenharmony_ci TELEPHONY_LOGE("return, memset_s error."); 27d95e75fdSopenharmony_ci } 28d95e75fdSopenharmony_ci} 29d95e75fdSopenharmony_ci 30d95e75fdSopenharmony_civoid BaseConnection::SetOrUpdateCallReportInfo(CallReportInfo &callReportInfo) 31d95e75fdSopenharmony_ci{ 32d95e75fdSopenharmony_ci callReportInfo_ = callReportInfo; 33d95e75fdSopenharmony_ci} 34d95e75fdSopenharmony_ci 35d95e75fdSopenharmony_ciCallReportInfo BaseConnection::GetCallReportInfo() 36d95e75fdSopenharmony_ci{ 37d95e75fdSopenharmony_ci return callReportInfo_; 38d95e75fdSopenharmony_ci} 39d95e75fdSopenharmony_ci 40d95e75fdSopenharmony_civoid BaseConnection::SetStatus(TelCallState state) 41d95e75fdSopenharmony_ci{ 42d95e75fdSopenharmony_ci callReportInfo_.state = state; 43d95e75fdSopenharmony_ci} 44d95e75fdSopenharmony_ci 45d95e75fdSopenharmony_ciTelCallState BaseConnection::GetStatus() const 46d95e75fdSopenharmony_ci{ 47d95e75fdSopenharmony_ci return callReportInfo_.state; 48d95e75fdSopenharmony_ci} 49d95e75fdSopenharmony_ci 50d95e75fdSopenharmony_cibool BaseConnection::IsRingingState() const 51d95e75fdSopenharmony_ci{ 52d95e75fdSopenharmony_ci return this->GetStatus() == TelCallState::CALL_STATUS_INCOMING || 53d95e75fdSopenharmony_ci this->GetStatus() == TelCallState::CALL_STATUS_WAITING || 54d95e75fdSopenharmony_ci this->GetStatus() == TelCallState::CALL_STATUS_ALERTING; 55d95e75fdSopenharmony_ci} 56d95e75fdSopenharmony_ci 57d95e75fdSopenharmony_civoid BaseConnection::SetFlag(bool flag) 58d95e75fdSopenharmony_ci{ 59d95e75fdSopenharmony_ci flag_ = flag; 60d95e75fdSopenharmony_ci} 61d95e75fdSopenharmony_ci 62d95e75fdSopenharmony_cibool BaseConnection::GetFlag() const 63d95e75fdSopenharmony_ci{ 64d95e75fdSopenharmony_ci return flag_; 65d95e75fdSopenharmony_ci} 66d95e75fdSopenharmony_ci 67d95e75fdSopenharmony_civoid BaseConnection::SetIndex(int32_t index) 68d95e75fdSopenharmony_ci{ 69d95e75fdSopenharmony_ci index_ = index; 70d95e75fdSopenharmony_ci} 71d95e75fdSopenharmony_ci 72d95e75fdSopenharmony_ciint32_t BaseConnection::GetIndex() const 73d95e75fdSopenharmony_ci{ 74d95e75fdSopenharmony_ci return index_; 75d95e75fdSopenharmony_ci} 76d95e75fdSopenharmony_ci 77d95e75fdSopenharmony_civoid BaseConnection::SetNumber(const std::string &number) 78d95e75fdSopenharmony_ci{ 79d95e75fdSopenharmony_ci number_ = number; 80d95e75fdSopenharmony_ci} 81d95e75fdSopenharmony_ci 82d95e75fdSopenharmony_cistd::string BaseConnection::GetNumber() const 83d95e75fdSopenharmony_ci{ 84d95e75fdSopenharmony_ci return number_; 85d95e75fdSopenharmony_ci} 86d95e75fdSopenharmony_ci 87d95e75fdSopenharmony_ciPostDialCallState BaseConnection::ProcessNextChar(int32_t slotId, char &c) 88d95e75fdSopenharmony_ci{ 89d95e75fdSopenharmony_ci if (postDialCalltate_ == PostDialCallState::POST_DIAL_CALL_CANCELED) { 90d95e75fdSopenharmony_ci return PostDialCallState::POST_DIAL_CALL_CANCELED; 91d95e75fdSopenharmony_ci } 92d95e75fdSopenharmony_ci if (postDialCallString_.empty() || postDialCallString_.length() <= static_cast<size_t>(nextPostDialCallCode_)) { 93d95e75fdSopenharmony_ci SetPostDialCallState(PostDialCallState::POST_DIAL_CALL_COMPLETE); 94d95e75fdSopenharmony_ci return PostDialCallState::POST_DIAL_CALL_COMPLETE; 95d95e75fdSopenharmony_ci } else { 96d95e75fdSopenharmony_ci SetPostDialCallState(PostDialCallState::POST_DIAL_CALL_STARTED); 97d95e75fdSopenharmony_ci c = postDialCallString_.at(nextPostDialCallCode_++); 98d95e75fdSopenharmony_ci ProcessPostDialCallChar(slotId, c); 99d95e75fdSopenharmony_ci } 100d95e75fdSopenharmony_ci return postDialCalltate_; 101d95e75fdSopenharmony_ci} 102d95e75fdSopenharmony_ci 103d95e75fdSopenharmony_civoid BaseConnection::SetPostDialCallState(PostDialCallState s) 104d95e75fdSopenharmony_ci{ 105d95e75fdSopenharmony_ci postDialCalltate_ = s; 106d95e75fdSopenharmony_ci} 107d95e75fdSopenharmony_ci 108d95e75fdSopenharmony_civoid BaseConnection::UpdateCallNumber(std::string phoneNum) 109d95e75fdSopenharmony_ci{ 110d95e75fdSopenharmony_ci StandardizeUtils standardizeUtils; 111d95e75fdSopenharmony_ci standardizeUtils.ExtractAddressAndPostDial(phoneNum, phoneNumber_, postDialCallString_); 112d95e75fdSopenharmony_ci} 113d95e75fdSopenharmony_ci 114d95e75fdSopenharmony_cistd::string BaseConnection::GetLeftPostDialCallString() 115d95e75fdSopenharmony_ci{ 116d95e75fdSopenharmony_ci if (postDialCallString_.empty() || postDialCallString_.length() <= static_cast<size_t>(nextPostDialCallCode_)) { 117d95e75fdSopenharmony_ci return ""; 118d95e75fdSopenharmony_ci } 119d95e75fdSopenharmony_ci return postDialCallString_.substr(nextPostDialCallCode_); 120d95e75fdSopenharmony_ci} 121d95e75fdSopenharmony_ci 122d95e75fdSopenharmony_ciint32_t BaseConnection::ProcessPostDialCallChar(int32_t slotId, char c) 123d95e75fdSopenharmony_ci{ 124d95e75fdSopenharmony_ci return TELEPHONY_SUCCESS; 125d95e75fdSopenharmony_ci} 126d95e75fdSopenharmony_ci 127d95e75fdSopenharmony_civoid BaseConnection::UpdatePendingHoldFlag(bool isPendingHold) 128d95e75fdSopenharmony_ci{ 129d95e75fdSopenharmony_ci callReportInfo_.isPendingHold = isPendingHold; 130d95e75fdSopenharmony_ci} 131d95e75fdSopenharmony_ci} // namespace Telephony 132d95e75fdSopenharmony_ci} // namespace OHOS