diff options
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(); |