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 #ifndef TEL_RIL_SMS_H 17 #define TEL_RIL_SMS_H 18 19 #include "tel_ril_sms_parcel.h" 20 #include "tel_ril_base.h" 21 22 namespace OHOS { 23 namespace Telephony { 24 class TelRilSms : public TelRilBase { 25 public: 26 TelRilSms(int32_t slotId, sptr<HDI::Ril::V1_3::IRil> rilInterface, std::shared_ptr<ObserverHandler> observerHandler, 27 std::shared_ptr<TelRilHandler> handler); 28 ~TelRilSms() = default; 29 30 uint8_t *ConvertHexStringToBytes(const uint8_t *hexString, size_t length); 31 uint8_t ConvertHexCharToInt(uint8_t ch); 32 33 int32_t SendGsmSms(std::string &smsPdu, std::string &pdu, const AppExecFwk::InnerEvent::Pointer &response); 34 int32_t SendCdmaSms(std::string pdu, const AppExecFwk::InnerEvent::Pointer &response); 35 int32_t AddSimMessage( 36 int32_t status, std::string smscPdu, std::string pdu, const AppExecFwk::InnerEvent::Pointer &response); 37 int32_t DelSimMessage(int32_t gsmIndex, const AppExecFwk::InnerEvent::Pointer &response); 38 int32_t UpdateSimMessage(int32_t gsmIndex, int32_t state, std::string smscPdu, std::string pdu, 39 const AppExecFwk::InnerEvent::Pointer &response); 40 int32_t SetSmscAddr(int32_t tosca, std::string address, const AppExecFwk::InnerEvent::Pointer &response); 41 int32_t GetSmscAddr(const AppExecFwk::InnerEvent::Pointer &response); 42 int32_t SetCdmaCBConfig( 43 const CdmaCBConfigInfoList &cdmaCBConfigInfoList, const AppExecFwk::InnerEvent::Pointer &response); 44 int32_t GetCdmaCBConfig(const AppExecFwk::InnerEvent::Pointer &response); 45 int32_t SetCBConfig( 46 int32_t mode, std::string idList, std::string dcsList, const AppExecFwk::InnerEvent::Pointer &response); 47 int32_t GetCBConfig(const AppExecFwk::InnerEvent::Pointer &response); 48 int32_t SendSmsMoreMode(std::string &smsPdu, std::string &pdu, const AppExecFwk::InnerEvent::Pointer &response); 49 int32_t SendSmsAck(bool success, int32_t cause, const AppExecFwk::InnerEvent::Pointer &response); 50 int32_t AddCdmaSimMessage(int32_t status, std::string &pdu, const AppExecFwk::InnerEvent::Pointer &response); 51 int32_t DelCdmaSimMessage(int32_t cdmaIndex, const AppExecFwk::InnerEvent::Pointer &response); 52 int32_t UpdateCdmaSimMessage( 53 int32_t cdmaIndex, int32_t state, std::string pdu, const AppExecFwk::InnerEvent::Pointer &response); 54 55 int32_t SendGsmSmsResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, 56 const HDI::Ril::V1_1::SendSmsResultInfo &iSendSmsResultInfo); 57 int32_t SendCdmaSmsResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, 58 const HDI::Ril::V1_1::SendSmsResultInfo &iSendSmsResultInfo); 59 int32_t AddSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo); 60 int32_t DelSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo); 61 int32_t UpdateSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo); 62 int32_t SetSmscAddrResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo); 63 int32_t GetSmscAddrResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, 64 const HDI::Ril::V1_1::ServiceCenterAddress &iServiceCenterAddress); 65 int32_t SetCBConfigResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo); 66 int32_t GetCBConfigResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, 67 const HDI::Ril::V1_1::CBConfigInfo &iCellBroadcastInfo); 68 int32_t SetCdmaCBConfigResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo); 69 int32_t GetCdmaCBConfigResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, 70 const HDI::Ril::V1_1::CdmaCBConfigInfo &iCdmaCBConfigInfo); 71 int32_t SendSmsMoreModeResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, 72 const HDI::Ril::V1_1::SendSmsResultInfo &iSendSmsResultInfo); 73 int32_t SendSmsAckResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo); 74 int32_t AddCdmaSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo); 75 int32_t DelCdmaSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo); 76 int32_t UpdateCdmaSimMessageResponse(const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo); 77 78 int32_t NewSmsNotify(const HDI::Ril::V1_1::SmsMessageInfo &smsMessageInfo); 79 int32_t NewCdmaSmsNotify(const HDI::Ril::V1_1::SmsMessageInfo &smsMessageInfo); 80 int32_t SmsStatusReportNotify(const HDI::Ril::V1_1::SmsMessageInfo &smsMessageInfo); 81 int32_t NewSmsStoredOnSimNotify(int32_t recordNumber, int32_t indicationType); 82 int32_t CBConfigNotify(const HDI::Ril::V1_1::CBConfigReportInfo &cellBroadConfigReportInfo); 83 84 private: 85 HDI::Ril::V1_1::GsmSmsMessageInfo ConstructGsmSendSmsRequestLinkList(std::string &smsPdu, std::string &pdu); 86 OHOS::HDI::Ril::V1_1::SmsMessageIOInfo ConstructSmsMessageIOInfoRequestLinkList( 87 std::string &smsPdu, std::string &pdu); 88 void BuildSendSmsResultInfo(std::shared_ptr<SendSmsResultInfo> sendSmsResultInfo, 89 const HDI::Ril::V1_1::SendSmsResultInfo &iSendSmsResultInfo); 90 void BuildCBConfigInfo( 91 std::shared_ptr<CBConfigInfo> cellBroadcastInfo, const HDI::Ril::V1_1::CBConfigInfo &iCellBroadcastInfo); 92 void BuildServiceCenterAddress(std::shared_ptr<ServiceCenterAddress> serCenterAddress, 93 const HDI::Ril::V1_1::ServiceCenterAddress &iServiceCenterAddress); 94 void BuildCdmaCBConfigInfo( 95 std::shared_ptr<CdmaCBConfigInfo> cdmaCBConfigInfo, const HDI::Ril::V1_1::CdmaCBConfigInfo &iCdmaCBConfigInfo); 96 void BuildSmsMessageInfo( 97 std::shared_ptr<SmsMessageInfo> smsMessageInfo, const HDI::Ril::V1_1::SmsMessageInfo &iSmsMessageInfo); 98 void BuildCBConfigReportInfo(std::shared_ptr<CBConfigReportInfo> cellBroadConfigReportInfo, 99 const HDI::Ril::V1_1::CBConfigReportInfo &iCellBroadConfigReportInfo); 100 int32_t ResponseSendSms( 101 const HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, const HDI::Ril::V1_1::SendSmsResultInfo &result); 102 }; 103 } // namespace Telephony 104 } // namespace OHOS 105 #endif // TEL_RIL_SMS_H 106