File indexing completed on 2024-05-05 05:36:39
0001 /* 0002 SPDX-FileCopyrightText: 2010-2012 Lamarque Souza <lamarque@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #ifndef PLASMA_NM_MOBILE_PROVIDERS_H 0008 #define PLASMA_NM_MOBILE_PROVIDERS_H 0009 0010 #include <QDomDocument> 0011 #include <QHash> 0012 #include <QStringList> 0013 #include <QVariantMap> 0014 0015 #include <NetworkManagerQt/ConnectionSettings> 0016 0017 // adapted from https://invent.kde.org/plasma/plasma-nm/-/blob/master/libs/editor/mobileproviders.h 0018 // we only use gsm, ignore cdma 0019 0020 struct ProviderData { 0021 QStringList mccmncs; 0022 QString name; 0023 }; 0024 0025 class Q_DECL_EXPORT MobileProviders 0026 { 0027 public: 0028 static const QString ProvidersFile; 0029 0030 enum ErrorCodes { 0031 Success, 0032 CountryCodesMissing, 0033 ProvidersMissing, 0034 ProvidersIsNull, 0035 ProvidersWrongFormat, 0036 ProvidersFormatNotSupported, 0037 }; 0038 0039 MobileProviders(); 0040 ~MobileProviders(); 0041 0042 QStringList getCountryList() const; 0043 QString countryFromLocale() const; 0044 QString getCountryName(const QString &key) const 0045 { 0046 return mCountries.value(key); 0047 } 0048 QStringList getApns(const QString &provider); 0049 QStringList getNetworkIds(const QString &provider); 0050 QVariantMap getApnInfo(const QString &apn); 0051 QVariantMap getCdmaInfo(const QString &provider); 0052 QStringList getProvidersFromMCCMNC(const QString &mccmnc); 0053 QString getGsmNumber() const 0054 { 0055 return QString("*99#"); 0056 } 0057 QString getCdmaNumber() const 0058 { 0059 return QString("#777"); 0060 } 0061 inline ErrorCodes getError() 0062 { 0063 return mError; 0064 } 0065 0066 private: 0067 ProviderData parseProvider(const QDomNode &providerNode); 0068 0069 QHash<QString, QString> mCountries; 0070 QHash<QString, QString> mMccMncToName; 0071 QMap<QString, QDomNode> mProvidersGsm; 0072 QMap<QString, QDomNode> mProvidersCdma; 0073 QMap<QString, QDomNode> mApns; 0074 QStringList mNetworkIds; 0075 QDomDocument mDocProviders; 0076 QDomElement docElement; 0077 ErrorCodes mError; 0078 QString getNameByLocale(const QMap<QString, QString> &names) const; 0079 }; 0080 0081 #endif // PLASMA_NM_MOBILE_PROVIDERS_H