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