summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordpolukhin@chromium.org <dpolukhin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-15 09:53:53 +0000
committerdpolukhin@chromium.org <dpolukhin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-15 09:53:53 +0000
commit11660f7e0c994b7b0ce7ac7a395af1395ee19928 (patch)
tree92e1339d73a1b7c3ae7df147623ab31d280d379a
parent56aaf9624d58814054ce978f817d38ba25544bda (diff)
downloadchromium_src-11660f7e0c994b7b0ce7ac7a395af1395ee19928.zip
chromium_src-11660f7e0c994b7b0ce7ac7a395af1395ee19928.tar.gz
chromium_src-11660f7e0c994b7b0ce7ac7a395af1395ee19928.tar.bz2
Show only last result of cellular scan
Also added C++ code send property name in OnNetworkDeviceChanged to make sure that we got results of scan instead of some other property change. BUG=chrome-os-partner:4918,chromium-os:14422 TEST=manual Review URL: http://codereview.chromium.org/7342041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92669 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/cros/network_library.cc16
-rw-r--r--chrome/browser/chromeos/cros/network_library.h6
-rw-r--r--chrome/browser/resources/chromeos/choose_mobile_network.js2
-rw-r--r--chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.cc6
4 files changed, 21 insertions, 9 deletions
diff --git a/chrome/browser/chromeos/cros/network_library.cc b/chrome/browser/chromeos/cros/network_library.cc
index 3efeae5..20302ef 100644
--- a/chrome/browser/chromeos/cros/network_library.cc
+++ b/chrome/browser/chromeos/cros/network_library.cc
@@ -4561,12 +4561,18 @@ class NetworkLibraryImpl : public NetworkLibrary {
}
}
- void NotifyNetworkDeviceChanged(NetworkDevice* device) {
+ void NotifyNetworkDeviceChanged(NetworkDevice* device,
+ PropertyIndex index) {
DCHECK(device);
NetworkDeviceObserverMap::const_iterator iter =
network_device_observers_.find(device->device_path());
if (iter != network_device_observers_.end()) {
NetworkDeviceObserverList* device_observer_list = iter->second;
+ if (index == PROPERTY_INDEX_FOUND_NETWORKS) {
+ FOR_EACH_OBSERVER(NetworkDeviceObserver,
+ *device_observer_list,
+ OnNetworkDeviceFoundNetworks(this, device));
+ }
FOR_EACH_OBSERVER(NetworkDeviceObserver,
*device_observer_list,
OnNetworkDeviceChanged(this, device));
@@ -4622,11 +4628,11 @@ class NetworkLibraryImpl : public NetworkLibrary {
NetworkDevice* device = GetNetworkDeviceByPath(path);
if (device) {
VLOG(2) << "UpdateNetworkDeviceStatus: " << device->name() << "." << key;
- int index = property_index_parser().Get(std::string(key));
+ PropertyIndex index = property_index_parser().Get(std::string(key));
if (!device->ParseValue(index, value)) {
VLOG(1) << "UpdateNetworkDeviceStatus: Failed to parse: "
<< path << "." << key;
- } else if (strcmp(key, kCellularAllowRoamingProperty) == 0) {
+ } else if (index == PROPERTY_INDEX_CELLULAR_ALLOW_ROAMING) {
bool settings_value =
UserCrosSettingsProvider::cached_data_roaming_enabled();
if (device->data_roaming_allowed() != settings_value) {
@@ -4636,10 +4642,10 @@ class NetworkLibraryImpl : public NetworkLibrary {
}
}
// Notify only observers on device property change.
- NotifyNetworkDeviceChanged(device);
+ NotifyNetworkDeviceChanged(device, index);
// If a device's power state changes, new properties may become
// defined.
- if (strcmp(key, kPoweredProperty) == 0) {
+ if (index == PROPERTY_INDEX_POWERED) {
RequestNetworkDeviceInfo(path, &NetworkDeviceUpdate, this);
}
}
diff --git a/chrome/browser/chromeos/cros/network_library.h b/chrome/browser/chromeos/cros/network_library.h
index 7a97b8f..f2f232e 100644
--- a/chrome/browser/chromeos/cros/network_library.h
+++ b/chrome/browser/chromeos/cros/network_library.h
@@ -922,7 +922,11 @@ class NetworkLibrary {
// Called when the state of a single device has changed,
// for example SIMLock state for cellular.
virtual void OnNetworkDeviceChanged(NetworkLibrary* cros,
- const NetworkDevice* device) = 0;
+ const NetworkDevice* device) {}
+
+ // Called when |device| got notification about new networks available.
+ virtual void OnNetworkDeviceFoundNetworks(NetworkLibrary* cros,
+ const NetworkDevice* device) {}
protected:
~NetworkDeviceObserver() {}
};
diff --git a/chrome/browser/resources/chromeos/choose_mobile_network.js b/chrome/browser/resources/chromeos/choose_mobile_network.js
index a39f4d7..cb163c2 100644
--- a/chrome/browser/resources/chromeos/choose_mobile_network.js
+++ b/chrome/browser/resources/chromeos/choose_mobile_network.js
@@ -16,6 +16,7 @@ cr.define('mobile', function() {
if (networks.length == 0) {
$('scanning').hidden = true;
+ $('choosing').hidden = true;
$('no-mobile-networks').hidden = false;
return;
}
@@ -43,6 +44,7 @@ cr.define('mobile', function() {
}
$('scanning').hidden = true;
$('choosing').hidden = false;
+ $('no-mobile-networks').hidden = true;
},
connect_: function() {
for (var i in this.networks_) {
diff --git a/chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.cc b/chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.cc
index cdbea69..ca03a93 100644
--- a/chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.cc
@@ -73,8 +73,8 @@ class ChooseMobileNetworkHandler
virtual void RegisterMessages();
// NetworkDeviceObserver implementation.
- virtual void OnNetworkDeviceChanged(NetworkLibrary* cros,
- const NetworkDevice* device);
+ virtual void OnNetworkDeviceFoundNetworks(NetworkLibrary* cros,
+ const NetworkDevice* device);
private:
// Handlers for JS WebUI messages.
@@ -166,7 +166,7 @@ void ChooseMobileNetworkHandler::RegisterMessages() {
NewCallback(this, &ChooseMobileNetworkHandler::HandlePageReady));
}
-void ChooseMobileNetworkHandler::OnNetworkDeviceChanged(
+void ChooseMobileNetworkHandler::OnNetworkDeviceFoundNetworks(
NetworkLibrary* cros,
const NetworkDevice* device) {
networks_list_.Clear();