shill: Move CDMA activation to capability delegates.

BUG=chromium-os:18735
TEST=unit tests

Change-Id: If69af7576c939eed8397797de3a2a88f7fd079e6
Reviewed-on: https://gerrit.chromium.org/gerrit/11632
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/cellular.cc b/cellular.cc
index c3ab9b1..53cfd46 100644
--- a/cellular.cc
+++ b/cellular.cc
@@ -348,6 +348,10 @@
   selected_network_ = network_id;
 }
 
+void Cellular::Activate(const std::string &carrier, Error *error) {
+  capability_->Activate(carrier, error);
+}
+
 void Cellular::RequirePIN(const string &pin, bool require, Error *error) {
   capability_->RequirePIN(pin, require, error);
 }
@@ -563,40 +567,6 @@
   }
 }
 
-void Cellular::Activate(const string &carrier, Error *error) {
-  VLOG(2) << __func__ << "(" << carrier << ")";
-  if (type_ != kTypeCDMA) {
-    Error::PopulateAndLog(error, Error::kInvalidArguments,
-                          "Unable to activate non-CDMA modem.");
-    return;
-  }
-  if (state_ != kStateEnabled &&
-      state_ != kStateRegistered) {
-    Error::PopulateAndLog(error, Error::kInvalidArguments,
-                          "Unable to activate in " + GetStateString(state_));
-    return;
-  }
-  // Defer connect because we may be in a dbus-c++ callback.
-  dispatcher()->PostTask(
-      task_factory_.NewRunnableMethod(&Cellular::ActivateTask, carrier));
-}
-
-void Cellular::ActivateTask(const string &carrier) {
-  VLOG(2) << __func__ << "(" << carrier << ")";
-  CHECK_EQ(kTypeCDMA, type_);
-  if (state_ != kStateEnabled &&
-      state_ != kStateRegistered) {
-    LOG(ERROR) << "Unable to activate in " << GetStateString(state_);
-    return;
-  }
-  // TODO(petkov): Switch to asynchronous calls (crosbug.com/17583).
-  uint32 status = cdma_proxy_->Activate(carrier);
-  if (status == MM_MODEM_CDMA_ACTIVATION_ERROR_NO_ERROR) {
-    cdma_.activation_state = MM_MODEM_CDMA_ACTIVATION_STATE_ACTIVATING;
-  }
-  HandleNewCDMAActivationState(status);
-}
-
 void Cellular::HandleNewCDMAActivationState(uint32 error) {
   if (!service_.get()) {
     return;