/**************************************** * * INSERT-PROJECT-NAME-HERE - INSERT-GENERIC-NAME-HERE * Copyright (C) 2020 Victor Tran * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * *************************************/ #include "networkplugincommon.h" #include QString NetworkPluginCommon::stateChangeReasonToString(NetworkManager::Device::StateChangeReason reason) { switch (reason) { case NetworkManager::Device::NowUnmanagedReason: return tr("the device is no longer managed by NetworkManager"); case NetworkManager::Device::ConfigFailedReason: return tr("configuration of the device failed"); case NetworkManager::Device::ConfigUnavailableReason: return tr("configuration of the device is unavailable"); case NetworkManager::Device::ConfigExpiredReason: return tr("configuration of the device expired"); case NetworkManager::Device::NoSecretsReason: return tr("required secrets were not provided"); case NetworkManager::Device::AuthSupplicantDisconnectReason: return tr("the authentication supplicant disconnected"); case NetworkManager::Device::AuthSupplicantConfigFailedReason: return tr("configuration of the authentication supplicant failed"); case NetworkManager::Device::AuthSupplicantFailedReason: return tr("the authentication supplicant failed"); case NetworkManager::Device::AuthSupplicantTimeoutReason: return tr("the authentication supplicant timed out"); case NetworkManager::Device::PppStartFailedReason: return tr("the PPP network failed to start"); case NetworkManager::Device::PppDisconnectReason: return tr("the PPP network was disconnected"); case NetworkManager::Device::PppFailedReason: return tr("the PPP network failed"); case NetworkManager::Device::DhcpStartFailedReason: return tr("DHCP configuration failed to start"); case NetworkManager::Device::DhcpErrorReason: return tr("DHCP configuration had an error"); case NetworkManager::Device::DhcpFailedReason: return tr("DHCP configuration failed"); case NetworkManager::Device::SharedStartFailedReason: break; case NetworkManager::Device::SharedFailedReason: break; case NetworkManager::Device::AutoIpStartFailedReason: break; case NetworkManager::Device::AutoIpErrorReason: break; case NetworkManager::Device::AutoIpFailedReason: break; case NetworkManager::Device::ModemBusyReason: return tr("the modem is busy"); case NetworkManager::Device::ModemNoDialToneReason: return tr("there is no dial tone on the modem"); case NetworkManager::Device::ModemNoCarrierReason: return tr("no carrier is available on the modem"); case NetworkManager::Device::ModemDialTimeoutReason: return tr("dialling the number on the modem timed out"); case NetworkManager::Device::ModemDialFailedReason: return tr("dialling the number on the modem failed"); case NetworkManager::Device::ModemInitFailedReason: return tr("initialising the modem failed"); case NetworkManager::Device::GsmApnSelectFailedReason: return tr("APN selection failed"); case NetworkManager::Device::GsmNotSearchingReason: return tr("the modem is not searching"); case NetworkManager::Device::GsmRegistrationDeniedReason: return tr("the cell tower denied registration of the modem"); case NetworkManager::Device::GsmRegistrationTimeoutReason: return tr("registration of the modem on the cell tower timed out"); case NetworkManager::Device::GsmRegistrationFailedReason: return tr("registration of the modem on the cell tower failed"); case NetworkManager::Device::GsmPinCheckFailedReason: break; case NetworkManager::Device::FirmwareMissingReason: return tr("the device firmware is missing"); case NetworkManager::Device::DeviceRemovedReason: return tr("the device was removed"); case NetworkManager::Device::SleepingReason: return tr("the device is sleeping"); case NetworkManager::Device::ConnectionRemovedReason: return tr("the connection was removed"); case NetworkManager::Device::UserRequestedReason: return tr("you requested the action"); case NetworkManager::Device::CarrierReason: break; case NetworkManager::Device::ConnectionAssumedReason: break; case NetworkManager::Device::SupplicantAvailableReason: break; case NetworkManager::Device::ModemNotFoundReason: return tr("the modem was not found"); case NetworkManager::Device::BluetoothFailedReason: return tr("Bluetooth is not available"); case NetworkManager::Device::GsmSimNotInserted: return tr("the SIM card is not inserted"); case NetworkManager::Device::GsmSimPinRequired: return tr("the SIM PIN is required"); case NetworkManager::Device::GsmSimPukRequired: return tr("the SIM PUK is required"); case NetworkManager::Device::GsmSimWrong: case NetworkManager::Device::SimPinIncorrect: return tr("the SIM PUK is exhausted"); case NetworkManager::Device::InfiniBandMode: break; case NetworkManager::Device::DependencyFailed: break; case NetworkManager::Device::Br2684Failed: break; case NetworkManager::Device::ModemManagerUnavailable: return tr("ModemManager is not operational on this device"); case NetworkManager::Device::SsidNotFound: return tr("the wireless network wasn't found"); case NetworkManager::Device::SecondaryConnectionFailed: break; case NetworkManager::Device::DcbFcoeFailed: break; case NetworkManager::Device::TeamdControlFailed: break; case NetworkManager::Device::ModemFailed: break; case NetworkManager::Device::ModemAvailable: break; case NetworkManager::Device::NewActivation: break; case NetworkManager::Device::ParentChanged: break; case NetworkManager::Device::ParentManagedChanged: break; case NetworkManager::Device::Reserved: case NetworkManager::Device::UnknownReason: case NetworkManager::Device::NoReason: case NetworkManager::Device::NowManagedReason: break; } return tr("an unknown error occurred"); } QString NetworkPluginCommon::iconForSignalStrength(int strength, NetworkPluginCommon::WirelessType type) { QString iconString = "network-"; switch (type) { case NetworkPluginCommon::WiFi: iconString += "wireless-connected-"; break; case NetworkPluginCommon::WiFiError: iconString += "wireless-error-"; break; case NetworkPluginCommon::Cellular: iconString += "cellular-connected-"; break; case NetworkPluginCommon::CellularError: iconString += "cellular-error-"; break; } if (strength < 15) { iconString += "00"; } else if (strength < 35) { iconString += "25"; } else if (strength < 65) { iconString += "50"; } else if (strength < 85) { iconString += "75"; } else { iconString += "100"; } return iconString; } QString NetworkPluginCommon::operatorNameForModem(ModemManager::ModemDevice::Ptr device) { if (device->sim() && !device->sim()->operatorName().isEmpty()) { return device->sim()->operatorName(); } ModemManager::Modem3gpp::Ptr modem3gpp(new ModemManager::Modem3gpp(device->uni())); if (!modem3gpp->operatorName().isEmpty()) { return modem3gpp->operatorName(); } return tr("Cellular"); } bool NetworkPluginCommon::isDeviceConnecting(NetworkManager::Device::Ptr device) { QList connectingStates = { NetworkManager::Device::Preparing, NetworkManager::Device::ConfiguringHardware, NetworkManager::Device::NeedAuth, NetworkManager::Device::ConfiguringIp, NetworkManager::Device::CheckingIp, NetworkManager::Device::WaitingForSecondaries}; return connectingStates.contains(device->state()); }