1 /* 2 * Copyright (c) 2023-2024 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 TELEPHONY_EXT_WRAPPER_H 17 #define TELEPHONY_EXT_WRAPPER_H 18 19 #include "nocopyable.h" 20 #include "singleton.h" 21 #include "network_state.h" 22 #include "network_search_types.h" 23 #include "network_search_result.h" 24 #include "signal_information.h" 25 #include "network_state.h" 26 #include "cell_information.h" 27 #include "want.h" 28 #include "i_icc_file.h" 29 #include "tel_ril_types.h" 30 31 namespace OHOS { 32 namespace Telephony { 33 34 enum class SimSlotType { 35 INVALID_SLOT_ID = -1, 36 VSIM_SLOT_ID = 2, 37 }; 38 39 class TelephonyExtWrapper final { 40 DECLARE_DELAYED_REF_SINGLETON(TelephonyExtWrapper); 41 42 public: 43 DISALLOW_COPY_AND_MOVE(TelephonyExtWrapper); 44 void InitTelephonyExtWrapper(); 45 46 typedef bool (*CHECK_OPC_VERSION_IS_UPDATE)(void); 47 typedef void (*UPDATE_OPC_VERSION)(void); 48 typedef void (*GET_VOICE_MAIL_ICCID_PARAMETER)(int32_t slotId, const char* iccid, std::string &number); 49 typedef void (*SET_VOICE_MAIL_ICCID_PARAMETER)(int32_t, const char*, const char*); 50 typedef void (*INIT_VOICE_MAIL_MANAGER_EXT)(int32_t); 51 typedef void (*DEINIT_VOICE_MAIL_MANAGER_EXT)(int32_t); 52 typedef void (*RESET_VOICE_MAIL_LOADED_FLAG_EXT)(int32_t); 53 typedef void (*SET_VOICE_MAIL_ON_SIM_EXT)(int32_t, const char*, const char*); 54 typedef bool (*GET_VOICE_MAIL_FIXED_EXT)(int32_t, const char*); 55 typedef void (*GET_VOICE_MAIL_NUMBER_EXT)(int32_t slotId, const char* carrier, std::string &number); 56 typedef void (*GET_VOICE_MAIL_TAG_EXT)(int32_t slotId, const char* carrier, std::string &tag); 57 typedef void (*RESET_VOICE_MAIL_MANAGER_EXT)(int32_t); 58 typedef void (*GET_NETWORK_STATUS_EXT)(int32_t slotId, sptr<OHOS::Telephony::NetworkState> &networkState); 59 60 typedef int32_t (*GET_CELL_INFO_LIST)(int32_t slotId, std::vector<sptr<OHOS::Telephony::CellInformation>> &cells); 61 typedef void (*GET_RADIO_TECH_EXT)(int32_t slotId, int32_t &domainRadioTech); 62 typedef void (*GET_NR_OPTION_MODE_EXT)(int32_t slotId, int32_t &mode); 63 typedef void (*GET_NR_OPTION_MODE_EXTEND)(int32_t slotId, OHOS::Telephony::NrMode &mode); 64 typedef void (*GET_PREFERRED_NETWORK_EXT)(int32_t &preferredNetworkType); 65 typedef bool (*IS_NR_SUPPORTED_NATIVE)(int32_t modemRaf); 66 typedef void (*GET_SIGNAL_INFO_LIST_EXT)(int32_t slotId, 67 std::vector<sptr<OHOS::Telephony::SignalInformation>> &signals); 68 typedef void (*GET_NETWORK_CAPABILITY_EXT)(int32_t slotId, int32_t networkCapabilityType, 69 int32_t &networkCapabilityState); 70 typedef void (*ON_GET_NETWORK_SEARCH_INFORMATION_EXT)(int32_t &availableSize, 71 std::vector<OHOS::Telephony::NetworkInformation> &networkInformations); 72 typedef void (*CREATE_ICC_FILE_EXT)(int32_t slotId, std::shared_ptr<OHOS::Telephony::IIccFileExt> iccFileExt); 73 74 typedef void (*UPDATE_COUNTRY_CODE_EXT)(int32_t, const char *); 75 typedef void (*UPDATE_TIME_ZONE_OFFSET_EXT)(int32_t, int32_t); 76 typedef void (*UPDATE_NETWORK_STATE_EXT)(int32_t slotId, std::unique_ptr<NetworkState> &networkState); 77 typedef int32_t (*UPDATE_NSA_STATE_EXT)( 78 int32_t slotId, int32_t cellId, bool endcAvailable, bool dcNrRestricted, int32_t nsaState); 79 typedef void (*PUBLISH_SPN_INFO_CHANGED_EXT)(OHOS::AAFwk::Want &want); 80 typedef void (*GET_ROAMINGBROKER_NUMERIC)(int32_t slotId, std::string &numeric); 81 typedef void (*GET_ROAMINGBROKER_IMSI)(int32_t slotId, std::string &imsi); 82 /* add for vsim begin */ 83 typedef void (*IS_VSIM_IN_STATUS)(int32_t slotId, int32_t type, bool &status); 84 typedef void (*GET_VSIM_SLOT_ID)(int32_t &slotId); 85 typedef void (*ON_ALL_FILES_FETCHED_EXT)(int32_t slotId); 86 typedef void (*PUT_VSIM_EXTRA_INFO)(OHOS::AAFwk::Want &want, int32_t slotId, int32_t value); 87 typedef void (*CHANGE_SPN_AND_RULE_EXT)(std::string &spn, int32_t &rule, bool &showSpn); 88 typedef void (*GET_VSIM_CARD_STATE)(int32_t &cardType); 89 typedef bool (*GET_SIM_ID_EXT)(int32_t slotId, int32_t &simId); 90 typedef bool (*GET_SLOT_ID_EXT)(int32_t simId, int32_t &slotId); 91 typedef bool (*IS_HANDLE_VSIM)(void); 92 typedef bool (*SEND_EVENT)(std::shared_ptr<std::string> cmdData, int32_t slotId); 93 typedef bool (*INIT_BIP)(int32_t slotId); 94 /* add for vsim end */ 95 typedef bool (*IS_ALLOWED_INSERT_APN)(std::string &value); 96 typedef void (*GET_TARGET_OPKEY)(int32_t slotId, std::u16string &opkey); 97 typedef void (*SORT_SIGNAL_INFO_LIST_EXT)( 98 int32_t slotId, std::vector<sptr<OHOS::Telephony::SignalInformation>> &signals); 99 typedef void (*GET_OPKEY_VERSION)(std::string &versionInfo); 100 101 typedef bool (*PROCESS_SIGNAL_INFOS)(int32_t slotId, Rssi &signalIntensity); 102 typedef bool (*PROCESS_STATE_CHANGE_EXT)(int32_t slotId, sptr<NetworkState> &ns); 103 104 CHECK_OPC_VERSION_IS_UPDATE checkOpcVersionIsUpdate_ = nullptr; 105 UPDATE_OPC_VERSION updateOpcVersion_ = nullptr; 106 GET_VOICE_MAIL_ICCID_PARAMETER getVoiceMailIccidParameter_ = nullptr; 107 SET_VOICE_MAIL_ICCID_PARAMETER setVoiceMailIccidParameter_ = nullptr; 108 INIT_VOICE_MAIL_MANAGER_EXT initVoiceMailManagerExt_ = nullptr; 109 DEINIT_VOICE_MAIL_MANAGER_EXT deinitVoiceMailManagerExt_ = nullptr; 110 RESET_VOICE_MAIL_LOADED_FLAG_EXT resetVoiceMailLoadedFlagExt_ = nullptr; 111 SET_VOICE_MAIL_ON_SIM_EXT setVoiceMailOnSimExt_ = nullptr; 112 GET_VOICE_MAIL_FIXED_EXT getVoiceMailFixedExt_ = nullptr; 113 GET_VOICE_MAIL_NUMBER_EXT getVoiceMailNumberExt_ = nullptr; 114 GET_VOICE_MAIL_TAG_EXT getVoiceMailTagExt_ = nullptr; 115 RESET_VOICE_MAIL_MANAGER_EXT resetVoiceMailManagerExt_ = nullptr; 116 GET_NETWORK_STATUS_EXT getNetworkStatusExt_ = nullptr; 117 118 GET_CELL_INFO_LIST getCellInfoList_ = nullptr; 119 GET_RADIO_TECH_EXT getRadioTechExt_ = nullptr; 120 GET_NR_OPTION_MODE_EXT getNrOptionModeExt_ = nullptr; 121 GET_NR_OPTION_MODE_EXTEND getNrOptionModeExtend_ = nullptr; 122 GET_PREFERRED_NETWORK_EXT getPreferredNetworkExt_ = nullptr; 123 IS_NR_SUPPORTED_NATIVE isNrSupportedNative_ = nullptr; 124 GET_SIGNAL_INFO_LIST_EXT getSignalInfoListExt_ = nullptr; 125 GET_NETWORK_CAPABILITY_EXT getNetworkCapabilityExt_ = nullptr; 126 ON_GET_NETWORK_SEARCH_INFORMATION_EXT onGetNetworkSearchInformationExt_ = nullptr; 127 CREATE_ICC_FILE_EXT createIccFileExt_ = nullptr; 128 UPDATE_NETWORK_STATE_EXT updateNetworkStateExt_ = nullptr; 129 UPDATE_NSA_STATE_EXT updateNsaStateExt_ = nullptr; 130 PUBLISH_SPN_INFO_CHANGED_EXT publishSpnInfoChangedExt_ = nullptr; 131 132 UPDATE_COUNTRY_CODE_EXT updateCountryCodeExt_ = nullptr; 133 UPDATE_TIME_ZONE_OFFSET_EXT updateTimeZoneOffsetExt_ = nullptr; 134 135 /* add for vsim begin */ 136 IS_VSIM_IN_STATUS isVSimInStatus_ = nullptr; 137 GET_VSIM_SLOT_ID getVSimSlotId_ = nullptr; 138 ON_ALL_FILES_FETCHED_EXT onAllFilesFetchedExt_ = nullptr; 139 PUT_VSIM_EXTRA_INFO putVSimExtraInfo_ = nullptr; 140 CHANGE_SPN_AND_RULE_EXT changeSpnAndRuleExt_ = nullptr; 141 GET_VSIM_CARD_STATE getVSimCardState_ = nullptr; 142 GET_SIM_ID_EXT getSimIdExt_ = nullptr; 143 GET_SLOT_ID_EXT getSlotIdExt_ = nullptr; 144 IS_HANDLE_VSIM isHandleVSim_ = nullptr; 145 SEND_EVENT sendEvent_ = nullptr; 146 INIT_BIP initBip_ = nullptr; 147 /* add for vsim end */ 148 IS_ALLOWED_INSERT_APN isAllowedInsertApn_ = nullptr; 149 GET_TARGET_OPKEY getTargetOpkey_ = nullptr; 150 SORT_SIGNAL_INFO_LIST_EXT sortSignalInfoListExt_ = nullptr; 151 GET_OPKEY_VERSION getOpkeyVersion_ = nullptr; 152 GET_ROAMINGBROKER_NUMERIC getRoamingBrokerNumeric_ = nullptr; 153 GET_ROAMINGBROKER_IMSI getRoamingBrokerImsi_ = nullptr; 154 PROCESS_SIGNAL_INFOS processSignalInfos_ = nullptr; 155 PROCESS_STATE_CHANGE_EXT processStateChangeExt_ = nullptr; 156 157 private: 158 void* telephonyExtWrapperHandle_ = nullptr; 159 void* telephonyVSimWrapperHandle_ = nullptr; 160 void InitTelephonyExtWrapperForNetWork(); 161 void InitTelephonyExtWrapperForVoiceMail(); 162 void InitTelephonyExtWrapperForCust(); 163 void InitTelephonyExtWrapperForVSim(); 164 void InitTelephonyExtWrapperForApnCust(); 165 void InitTelephonyExtWrapperForSim(); 166 void InitTelephonyExtWrapperForOpkeyVersion(); 167 }; 168 169 #define TELEPHONY_EXT_WRAPPER ::OHOS::DelayedRefSingleton<TelephonyExtWrapper>::GetInstance() 170 } // namespace Telephony 171 } // namespace OHOS 172 #endif // TELEPHONY_EXT_WRAPPER_H 173