shill: Get and update the GSM signal strength on registration state transition.

BUG=chromium-os:19777
TEST=unit tests, tested on device

Change-Id: I2fa1292f5c3413a685ba87bc827aa34943109b37
Reviewed-on: http://gerrit.chromium.org/gerrit/6845
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
diff --git a/cellular.cc b/cellular.cc
index 9883fd6..5052b9e 100644
--- a/cellular.cc
+++ b/cellular.cc
@@ -567,9 +567,10 @@
 }
 
 uint32 Cellular::GetGSMSignalQuality() {
-  // TODO(petkov): Implement this.
-  NOTIMPLEMENTED();
-  return 0;
+  VLOG(2) << __func__;
+  CHECK_EQ(kTypeGSM, type_);
+  // TODO(petkov): Switch to asynchronous calls (crosbug.com/17583).
+  return gsm_network_proxy_->GetSignalQuality();
 }
 
 void Cellular::HandleNewSignalQuality(uint32 strength) {
@@ -775,8 +776,8 @@
 }
 
 void Cellular::OnGSMSignalQualityChanged(uint32 quality) {
-  // TODO(petkov): Implement this.
-  NOTIMPLEMENTED();
+  CHECK_EQ(kTypeGSM, type_);
+  HandleNewSignalQuality(quality);
 }
 
 void Cellular::OnModemStateChanged(uint32 old_state,