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 "sim_state_type.h" 30 #include "tel_ril_types.h" 31 #include "operator_name_params.h" 32 #include "telephony_types.h" 33 34 namespace OHOS { 35 namespace Telephony { 36 37 enum class SimSlotType { 38 INVALID_SLOT_ID = -1, 39 VSIM_SLOT_ID = 2, 40 }; 41 42 class TelephonyExtWrapper final { 43 DECLARE_DELAYED_REF_SINGLETON(TelephonyExtWrapper); 44 45 public: 46 DISALLOW_COPY_AND_MOVE(TelephonyExtWrapper); 47 void InitTelephonyExtWrapper(); 48 void DeInitTelephonyExtWrapper(); 49 50 typedef bool (*CHECK_OPC_VERSION_IS_UPDATE)(void); 51 typedef void (*UPDATE_OPC_VERSION)(void); 52 typedef void (*GET_VOICE_MAIL_ICCID_PARAMETER)(int32_t slotId, const char* iccid, std::string &number); 53 typedef void (*SET_VOICE_MAIL_ICCID_PARAMETER)(int32_t, const char*, const char*); 54 typedef void (*INIT_VOICE_MAIL_MANAGER_EXT)(int32_t); 55 typedef void (*DEINIT_VOICE_MAIL_MANAGER_EXT)(int32_t); 56 typedef void (*RESET_VOICE_MAIL_LOADED_FLAG_EXT)(int32_t); 57 typedef void (*SET_VOICE_MAIL_ON_SIM_EXT)(int32_t, const char*, const char*); 58 typedef bool (*GET_VOICE_MAIL_FIXED_EXT)(int32_t, const char*); 59 typedef void (*GET_VOICE_MAIL_NUMBER_EXT)(int32_t slotId, const char* carrier, std::string &number); 60 typedef void (*GET_VOICE_MAIL_TAG_EXT)(int32_t slotId, const char* carrier, std::string &tag); 61 typedef void (*RESET_VOICE_MAIL_MANAGER_EXT)(int32_t); 62 typedef void (*GET_NETWORK_STATUS_EXT)(int32_t slotId, sptr<OHOS::Telephony::NetworkState> &networkState); 63 64 typedef int32_t (*GET_CELL_INFO_LIST)(int32_t slotId, std::vector<sptr<OHOS::Telephony::CellInformation>> &cells); 65 typedef void (*GET_RADIO_TECH_EXT)(int32_t slotId, int32_t &domainRadioTech); 66 typedef void (*GET_NR_OPTION_MODE_EXT)(int32_t slotId, int32_t &mode); 67 typedef void (*GET_NR_OPTION_MODE_EXTEND)(int32_t slotId, OHOS::Telephony::NrMode &mode); 68 typedef void (*GET_PREFERRED_NETWORK_EXT)(int32_t &preferredNetworkType); 69 typedef bool (*IS_CHIPSET_NETWORK_EXT_SUPPORTED)(); 70 typedef bool (*IS_NR_SUPPORTED_NATIVE)(int32_t modemRaf); 71 typedef void (*GET_SIGNAL_INFO_LIST_EXT)(int32_t slotId, 72 std::vector<sptr<OHOS::Telephony::SignalInformation>> &signals); 73 typedef void (*GET_NETWORK_CAPABILITY_EXT)(int32_t slotId, int32_t networkCapabilityType, 74 int32_t &networkCapabilityState); 75 typedef void (*ON_GET_NETWORK_SEARCH_INFORMATION_EXT)(int32_t &availableSize, 76 std::vector<OHOS::Telephony::NetworkInformation> &networkInformations); 77 typedef void (*CREATE_ICC_FILE_EXT)(int32_t slotId, std::shared_ptr<OHOS::Telephony::IIccFileExt> iccFileExt); 78 79 typedef void (*UPDATE_COUNTRY_CODE_EXT)(int32_t, const char *); 80 typedef void (*UPDATE_TIME_ZONE_OFFSET_EXT)(int32_t, NitzData); 81 typedef void (*UPDATE_NETWORK_STATE_EXT)(int32_t slotId, std::unique_ptr<NetworkState> &networkState); 82 typedef void (*UPDATE_OPERATOR_NAME_PARAMS)( 83 int32_t slotId, sptr<OHOS::Telephony::NetworkState> &networkState, OperatorNameParams ¶ms); 84 typedef int32_t (*UPDATE_NSA_STATE_EXT)( 85 int32_t slotId, int32_t cellId, bool endcAvailable, bool dcNrRestricted, int32_t nsaState); 86 typedef void (*PUBLISH_SPN_INFO_CHANGED_EXT)(OHOS::AAFwk::Want &want); 87 typedef void (*GET_ROAMINGBROKER_NUMERIC)(int32_t slotId, std::string &numeric); 88 typedef void (*GET_ROAMINGBROKER_IMSI)(int32_t slotId, std::string &imsi); 89 typedef bool (*SET_NR_OPTION_MODE_EXT)(int32_t slotId, int32_t masterSlotId, int32_t mode, int32_t &errCode); 90 typedef void (*UpdatePlmnExt)(int32_t slotId, const std::string &plmn); 91 typedef bool (*IsInModem2Optimization)(int32_t slotId); 92 /* add for vsim begin */ 93 typedef void (*IS_VSIM_IN_STATUS)(int32_t slotId, int32_t type, bool &status); 94 typedef void (*GET_VSIM_SLOT_ID)(int32_t &slotId); 95 typedef void (*ON_ALL_FILES_FETCHED_EXT)(int32_t slotId); 96 typedef void (*PUT_VSIM_EXTRA_INFO)(OHOS::AAFwk::Want &want, int32_t slotId, int32_t value); 97 typedef void (*CHANGE_SPN_AND_RULE_EXT)(std::string &spn, int32_t &rule, bool &showSpn); 98 typedef void (*GET_VSIM_CARD_STATE)(int32_t &cardType); 99 typedef bool (*GET_SIM_ID_EXT)(int32_t slotId, int32_t &simId); 100 typedef bool (*GET_SLOT_ID_EXT)(int32_t simId, int32_t &slotId); 101 typedef bool (*IS_HANDLE_VSIM)(void); 102 typedef bool (*IS_VSIM_ENABLED)(void); 103 typedef void (*UPDATE_SUB_STATE)(int32_t slotId, int32_t subState); 104 typedef bool (*IS_IN_ENABLE_DISABLE_VSIM)(void); 105 /* add for vsim end */ 106 typedef bool (*SEND_EVENT)(std::shared_ptr<std::string> cmdData, int32_t slotId); 107 typedef bool (*INIT_BIP)(int32_t slotId); 108 typedef bool (*IS_ALLOWED_INSERT_APN)(std::string &value); 109 typedef void (*GET_TARGET_OPKEY)(int32_t slotId, std::u16string &opkey); 110 typedef void (*SORT_SIGNAL_INFO_LIST_EXT)( 111 int32_t slotId, std::vector<sptr<OHOS::Telephony::SignalInformation>> &signals); 112 typedef void (*GET_OPKEY_VERSION)(std::string &versionInfo); 113 typedef void (*GetOpnameVersion)(std::string &versionInfo); 114 115 typedef bool (*PROCESS_SIGNAL_INFOS)(int32_t slotId, Rssi &signalIntensity); 116 typedef bool (*PROCESS_STATE_CHANGE_EXT)(int32_t slotId, sptr<NetworkState> &ns); 117 typedef bool (*PROCESS_OPERATOR_NAME)(int32_t slotId, std::string &plmnName, const std::string &numeric); 118 typedef void (*DynamicLoadInit)(void); 119 typedef void (*DynamicLoadDeInit)(void); 120 typedef void (*UpdateHotplugCardState)(int32_t slotId, OHOS::Telephony::SimState state); 121 typedef void (*CacheAssetPinForUpgrade)( 122 int32_t slotId, const std::string &iccId, PinOperationType operationType, const std::string &pin); 123 124 CHECK_OPC_VERSION_IS_UPDATE checkOpcVersionIsUpdate_ = nullptr; 125 UPDATE_OPC_VERSION updateOpcVersion_ = nullptr; 126 GET_VOICE_MAIL_ICCID_PARAMETER getVoiceMailIccidParameter_ = nullptr; 127 SET_VOICE_MAIL_ICCID_PARAMETER setVoiceMailIccidParameter_ = nullptr; 128 INIT_VOICE_MAIL_MANAGER_EXT initVoiceMailManagerExt_ = nullptr; 129 DEINIT_VOICE_MAIL_MANAGER_EXT deinitVoiceMailManagerExt_ = nullptr; 130 RESET_VOICE_MAIL_LOADED_FLAG_EXT resetVoiceMailLoadedFlagExt_ = nullptr; 131 SET_VOICE_MAIL_ON_SIM_EXT setVoiceMailOnSimExt_ = nullptr; 132 GET_VOICE_MAIL_FIXED_EXT getVoiceMailFixedExt_ = nullptr; 133 GET_VOICE_MAIL_NUMBER_EXT getVoiceMailNumberExt_ = nullptr; 134 GET_VOICE_MAIL_TAG_EXT getVoiceMailTagExt_ = nullptr; 135 RESET_VOICE_MAIL_MANAGER_EXT resetVoiceMailManagerExt_ = nullptr; 136 GET_NETWORK_STATUS_EXT getNetworkStatusExt_ = nullptr; 137 138 GET_CELL_INFO_LIST getCellInfoList_ = nullptr; 139 GET_RADIO_TECH_EXT getRadioTechExt_ = nullptr; 140 GET_NR_OPTION_MODE_EXT getNrOptionModeExt_ = nullptr; 141 GET_NR_OPTION_MODE_EXTEND getNrOptionModeExtend_ = nullptr; 142 GET_PREFERRED_NETWORK_EXT getPreferredNetworkExt_ = nullptr; 143 IS_CHIPSET_NETWORK_EXT_SUPPORTED isChipsetNetworkExtSupported_ = nullptr; 144 IS_NR_SUPPORTED_NATIVE isNrSupportedNative_ = nullptr; 145 GET_SIGNAL_INFO_LIST_EXT getSignalInfoListExt_ = nullptr; 146 GET_NETWORK_CAPABILITY_EXT getNetworkCapabilityExt_ = nullptr; 147 ON_GET_NETWORK_SEARCH_INFORMATION_EXT onGetNetworkSearchInformationExt_ = nullptr; 148 CREATE_ICC_FILE_EXT createIccFileExt_ = nullptr; 149 UPDATE_NETWORK_STATE_EXT updateNetworkStateExt_ = nullptr; 150 UPDATE_OPERATOR_NAME_PARAMS updateOperatorNameParamsExt_ = nullptr; 151 UPDATE_NSA_STATE_EXT updateNsaStateExt_ = nullptr; 152 PUBLISH_SPN_INFO_CHANGED_EXT publishSpnInfoChangedExt_ = nullptr; 153 154 UPDATE_COUNTRY_CODE_EXT updateCountryCodeExt_ = nullptr; 155 UPDATE_TIME_ZONE_OFFSET_EXT updateTimeZoneOffsetExt_ = nullptr; 156 SET_NR_OPTION_MODE_EXT setNrOptionModeExt_ = nullptr; 157 UpdatePlmnExt updatePlmnExt_ = nullptr; 158 IsInModem2Optimization isInModem2Optimization_ = nullptr; 159 160 /* add for vsim begin */ 161 IS_VSIM_IN_STATUS isVSimInStatus_ = nullptr; 162 GET_VSIM_SLOT_ID getVSimSlotId_ = nullptr; 163 ON_ALL_FILES_FETCHED_EXT onAllFilesFetchedExt_ = nullptr; 164 PUT_VSIM_EXTRA_INFO putVSimExtraInfo_ = nullptr; 165 CHANGE_SPN_AND_RULE_EXT changeSpnAndRuleExt_ = nullptr; 166 GET_VSIM_CARD_STATE getVSimCardState_ = nullptr; 167 GET_SIM_ID_EXT getSimIdExt_ = nullptr; 168 GET_SLOT_ID_EXT getSlotIdExt_ = nullptr; 169 IS_HANDLE_VSIM isHandleVSim_ = nullptr; 170 IS_VSIM_ENABLED isVSimEnabled_ = nullptr; 171 UPDATE_SUB_STATE updateSubState_ = nullptr; 172 IS_IN_ENABLE_DISABLE_VSIM isInEnaDisableVSim_ = nullptr; 173 /* add for vsim end */ 174 SEND_EVENT sendEvent_ = nullptr; 175 INIT_BIP initBip_ = nullptr; 176 IS_ALLOWED_INSERT_APN isAllowedInsertApn_ = nullptr; 177 GET_TARGET_OPKEY getTargetOpkey_ = nullptr; 178 SORT_SIGNAL_INFO_LIST_EXT sortSignalInfoListExt_ = nullptr; 179 GET_OPKEY_VERSION getOpkeyVersion_ = nullptr; 180 GetOpnameVersion getOpnameVersion_ = nullptr; 181 GET_ROAMINGBROKER_NUMERIC getRoamingBrokerNumeric_ = nullptr; 182 GET_ROAMINGBROKER_IMSI getRoamingBrokerImsi_ = nullptr; 183 PROCESS_SIGNAL_INFOS processSignalInfos_ = nullptr; 184 PROCESS_STATE_CHANGE_EXT processStateChangeExt_ = nullptr; 185 PROCESS_OPERATOR_NAME processOperatorName_ = nullptr; 186 DynamicLoadInit dynamicLoadInit_ = nullptr; 187 DynamicLoadDeInit dynamicLoadDeInit_ = nullptr; 188 UpdateHotplugCardState updateHotPlugCardState_ = nullptr; 189 CacheAssetPinForUpgrade cacheAssetPinForUpgrade_ = nullptr; 190 191 private: 192 void* telephonyExtWrapperHandle_ = nullptr; 193 void* telephonyVSimWrapperHandle_ = nullptr; 194 void* telephonyDynamicLoadWrapperHandle_ = nullptr; 195 void InitTelephonyExtWrapperForNetWork(); 196 void InitTelephonyExtWrapperForNetWork1(); 197 void InitTelephonyExtWrapperForVoiceMail(); 198 void InitTelephonyExtWrapperForCust(); 199 void InitTelephonyExtWrapperForVSim(); 200 void InitTelephonyExtWrapperForApnCust(); 201 void InitTelephonyExtWrapperForSim(); 202 void InitTelephonyExtWrapperForOpkeyVersion(); 203 void InitTelephonyExtWrapperForOpnameVersion(); 204 void InitTelephonyExtWrapperForDynamicLoad(); 205 }; 206 207 #define TELEPHONY_EXT_WRAPPER ::OHOS::DelayedRefSingleton<TelephonyExtWrapper>::GetInstance() 208 } // namespace Telephony 209 } // namespace OHOS 210 #endif // TELEPHONY_EXT_WRAPPER_H 211