shill: Move Get{NetworkTechnology|RoamingState} to the capability delegates.
BUG=chromium-os:18735
TEST=unit tests
Change-Id: I29cd4054810d44718047717234f5ccfddf3a745c
Reviewed-on: https://gerrit.chromium.org/gerrit/11376
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/cellular_capability_gsm.cc b/cellular_capability_gsm.cc
index 1862e3e..4fa1f5c 100644
--- a/cellular_capability_gsm.cc
+++ b/cellular_capability_gsm.cc
@@ -5,6 +5,8 @@
#include "shill/cellular_capability_gsm.h"
#include <base/logging.h>
+#include <chromeos/dbus/service_constants.h>
+#include <mm/mm-modem.h>
#include "shill/cellular.h"
#include "shill/proxy_factory.h"
@@ -120,4 +122,44 @@
card_proxy_->ChangePIN(old_pin, new_pin);
}
+string CellularCapabilityGSM::GetNetworkTechnologyString() const {
+ if (cellular()->gsm_registration_state() ==
+ MM_MODEM_GSM_NETWORK_REG_STATUS_HOME ||
+ cellular()->gsm_registration_state() ==
+ MM_MODEM_GSM_NETWORK_REG_STATUS_ROAMING) {
+ switch (cellular()->gsm_access_technology()) {
+ case MM_MODEM_GSM_ACCESS_TECH_GSM:
+ case MM_MODEM_GSM_ACCESS_TECH_GSM_COMPACT:
+ return flimflam::kNetworkTechnologyGsm;
+ case MM_MODEM_GSM_ACCESS_TECH_GPRS:
+ return flimflam::kNetworkTechnologyGprs;
+ case MM_MODEM_GSM_ACCESS_TECH_EDGE:
+ return flimflam::kNetworkTechnologyEdge;
+ case MM_MODEM_GSM_ACCESS_TECH_UMTS:
+ return flimflam::kNetworkTechnologyUmts;
+ case MM_MODEM_GSM_ACCESS_TECH_HSDPA:
+ case MM_MODEM_GSM_ACCESS_TECH_HSUPA:
+ case MM_MODEM_GSM_ACCESS_TECH_HSPA:
+ return flimflam::kNetworkTechnologyHspa;
+ case MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS:
+ return flimflam::kNetworkTechnologyHspaPlus;
+ default:
+ NOTREACHED();
+ }
+ }
+ return "";
+}
+
+string CellularCapabilityGSM::GetRoamingStateString() const {
+ switch (cellular()->gsm_registration_state()) {
+ case MM_MODEM_GSM_NETWORK_REG_STATUS_HOME:
+ return flimflam::kRoamingStateHome;
+ case MM_MODEM_GSM_NETWORK_REG_STATUS_ROAMING:
+ return flimflam::kRoamingStateRoaming;
+ default:
+ break;
+ }
+ return flimflam::kRoamingStateUnknown;
+}
+
} // namespace shill