• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 &params);
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