shill: Register GSM modem as part of device start up.
BUG=chromium-os:19676
TEST=unit tests, tested on device
Change-Id: Ie8f8a8ce4fd185226a9f55f4fcd62224e7318c3c
Reviewed-on: http://gerrit.chromium.org/gerrit/6683
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
diff --git a/cellular.cc b/cellular.cc
index 6883366..7a1825a 100644
--- a/cellular.cc
+++ b/cellular.cc
@@ -163,9 +163,9 @@
allow_roaming_(false),
scanning_(false),
scan_interval_(0) {
+ store_.RegisterConstString(flimflam::kCarrierProperty, &carrier_);
store_.RegisterConstString(flimflam::kDBusConnectionProperty, &dbus_owner_);
store_.RegisterConstString(flimflam::kDBusObjectProperty, &dbus_path_);
- store_.RegisterConstString(flimflam::kCarrierProperty, &carrier_);
store_.RegisterBool(flimflam::kCellularAllowRoamingProperty, &allow_roaming_);
store_.RegisterConstString(flimflam::kEsnProperty, &esn_);
store_.RegisterConstString(flimflam::kFirmwareRevisionProperty,
@@ -182,6 +182,8 @@
store_.RegisterConstString(flimflam::kMinProperty, &min_);
store_.RegisterConstString(flimflam::kModelIDProperty, &model_id_);
store_.RegisterConstUint16(flimflam::kPRLVersionProperty, &cdma_.prl_version);
+ store_.RegisterConstString(flimflam::kSelectedNetworkProperty,
+ &selected_network_);
HelpRegisterDerivedStrIntPair(flimflam::kSIMLockStatusProperty,
&Cellular::SimLockStatusToProperty,
@@ -351,7 +353,9 @@
dbus_path_, dbus_owner_));
switch (type_) {
case kTypeGSM:
- NOTIMPLEMENTED();
+ gsm_network_proxy_.reset(
+ ProxyFactory::factory()->CreateModemGSMNetworkProxy(
+ this, dbus_path_, dbus_owner_));
break;
case kTypeCDMA:
cdma_proxy_.reset(
@@ -419,8 +423,10 @@
}
void Cellular::RegisterGSMModem() {
- // TODO(petkov): Invoke ModemManager.Modem.Gsm.Network.Register.
- NOTIMPLEMENTED();
+ LOG(INFO) << "Registering on: "
+ << (selected_network_.empty() ? "home network" : selected_network_);
+ // TODO(petkov): Switch to asynchronous calls (crosbug.com/17583).
+ gsm_network_proxy_->Register(selected_network_);
}
void Cellular::GetModemInfo() {
@@ -712,6 +718,23 @@
HandleNewSignalQuality(strength);
}
+void Cellular::OnGSMNetworkModeChanged(uint32 mode) {
+ // TODO(petkov): Implement this.
+ NOTIMPLEMENTED();
+}
+
+void Cellular::OnGSMRegistrationInfoChanged(uint32 status,
+ const string &operator_code,
+ const string &operator_name) {
+ // TODO(petkov): Implement this.
+ NOTIMPLEMENTED();
+}
+
+void Cellular::OnGSMSignalQualityChanged(uint32 quality) {
+ // TODO(petkov): Implement this.
+ NOTIMPLEMENTED();
+}
+
void Cellular::OnModemStateChanged(uint32 old_state,
uint32 new_state,
uint32 reason) {