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_cdma.cc b/cellular_capability_cdma.cc
index ee97e5f..a625dde 100644
--- a/cellular_capability_cdma.cc
+++ b/cellular_capability_cdma.cc
@@ -5,10 +5,14 @@
 #include "shill/cellular_capability_cdma.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"
 
+using std::string;
+
 namespace shill {
 
 CellularCapabilityCDMA::CellularCapabilityCDMA(Cellular *cellular)
@@ -32,4 +36,35 @@
   }
 }
 
+string CellularCapabilityCDMA::GetNetworkTechnologyString() const {
+  if (cellular()->cdma_registration_state_evdo() !=
+      MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN) {
+    return flimflam::kNetworkTechnologyEvdo;
+  }
+  if (cellular()->cdma_registration_state_1x() !=
+      MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN) {
+    return flimflam::kNetworkTechnology1Xrtt;
+  }
+  return "";
+}
+
+string CellularCapabilityCDMA::GetRoamingStateString() const {
+  uint32 state = cellular()->cdma_registration_state_evdo();
+  if (state == MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN) {
+    state = cellular()->cdma_registration_state_1x();
+  }
+  switch (state) {
+    case MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN:
+    case MM_MODEM_CDMA_REGISTRATION_STATE_REGISTERED:
+      break;
+    case MM_MODEM_CDMA_REGISTRATION_STATE_HOME:
+      return flimflam::kRoamingStateHome;
+    case MM_MODEM_CDMA_REGISTRATION_STATE_ROAMING:
+      return flimflam::kRoamingStateRoaming;
+    default:
+      NOTREACHED();
+  }
+  return flimflam::kRoamingStateUnknown;
+}
+
 }  // namespace shill