diff options
author | dpolukhin@chromium.org <dpolukhin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-15 09:53:53 +0000 |
---|---|---|
committer | dpolukhin@chromium.org <dpolukhin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-15 09:53:53 +0000 |
commit | 11660f7e0c994b7b0ce7ac7a395af1395ee19928 (patch) | |
tree | 92e1339d73a1b7c3ae7df147623ab31d280d379a | |
parent | 56aaf9624d58814054ce978f817d38ba25544bda (diff) | |
download | chromium_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
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(); |