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;