diff options
author | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-02 17:47:24 +0000 |
---|---|---|
committer | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-02 17:47:24 +0000 |
commit | 849746701f850f583798cb98b4c6fe00f7424548 (patch) | |
tree | 6c049d9b71ea8cfd3d8648a17e785c6616e56be6 /ash | |
parent | 6f54ab335c8794b0b93fe9473adadd27e95b5cf8 (diff) | |
download | chromium_src-849746701f850f583798cb98b4c6fe00f7424548.zip chromium_src-849746701f850f583798cb98b4c6fe00f7424548.tar.gz chromium_src-849746701f850f583798cb98b4c6fe00f7424548.tar.bz2 |
Fix status area for NetworkStateHandler
NetworkConfigurationHandler is not enabled with NetworkStatehandler so check flag before using.
Includes some cleanup code.
BUG=179504
Review URL: https://chromiumcodereview.appspot.com/12378052
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185727 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
3 files changed, 27 insertions, 22 deletions
diff --git a/ash/system/chromeos/network/network_state_list_detailed_view.cc b/ash/system/chromeos/network/network_state_list_detailed_view.cc index 4678411..a09bcf0 100644 --- a/ash/system/chromeos/network/network_state_list_detailed_view.cc +++ b/ash/system/chromeos/network/network_state_list_detailed_view.cc @@ -146,8 +146,9 @@ NetworkStateListDetailedView::~NetworkStateListDetailedView() { } void NetworkStateListDetailedView::ManagerChanged() { + UpdateNetworkListEntries(); UpdateHeaderButtons(); - UpdateNetworkEntries(); + UpdateMobileAccount(); UpdateNetworkExtra(); Layout(); } @@ -156,26 +157,28 @@ void NetworkStateListDetailedView::NetworkListChanged() { NetworkStateList network_list; NetworkStateHandler::Get()->GetNetworkList(&network_list); UpdateNetworks(network_list); + UpdateNetworkListEntries(); + UpdateHeaderButtons(); + UpdateMobileAccount(); + UpdateNetworkExtra(); Layout(); } void NetworkStateListDetailedView::NetworkServiceChanged( const chromeos::NetworkState* network) { - UpdateNetworkState(); - RefreshNetworkList(); + UpdateNetworkListEntries(); Layout(); } void NetworkStateListDetailedView::NetworkIconChanged() { - UpdateNetworkState(); - RefreshNetworkList(); + UpdateNetworkListEntries(); Layout(); } // Overridden from NetworkDetailedView: void NetworkStateListDetailedView::Init() { - CreateNetworkEntries(); + CreateMobileAccount(); CreateNetworkExtra(); CreateHeaderEntry(); CreateHeaderButtons(); @@ -184,6 +187,10 @@ void NetworkStateListDetailedView::Init() { handler->RequestScan(); handler->GetNetworkList(&network_list); UpdateNetworks(network_list); + UpdateNetworkListEntries(); + UpdateHeaderButtons(); + UpdateMobileAccount(); + UpdateNetworkExtra(); } NetworkDetailedView::DetailedViewType @@ -306,7 +313,7 @@ void NetworkStateListDetailedView::CreateHeaderButtons() { footer()->AddButton(info_icon_); } -void NetworkStateListDetailedView::CreateNetworkEntries() { +void NetworkStateListDetailedView::CreateMobileAccount() { CreateScrollableList(); HoverHighlightView* container = new HoverHighlightView(this); @@ -379,16 +386,12 @@ void NetworkStateListDetailedView::UpdateNetworks( NetworkInfo* info = new NetworkInfo(network->path()); network_list_.push_back(info); } - UpdateNetworkState(); - RefreshNetworkList(); - - UpdateHeaderButtons(); - UpdateNetworkEntries(); - UpdateNetworkExtra(); } -void NetworkStateListDetailedView::UpdateNetworkState() { +void NetworkStateListDetailedView::UpdateNetworkListEntries() { NetworkStateHandler* handler = NetworkStateHandler::Get(); + + // First, update state for all networks for (size_t i = 0; i < network_list_.size(); ++i) { NetworkInfo* info = network_list_[i]; const chromeos::NetworkState* network = @@ -402,9 +405,8 @@ void NetworkStateListDetailedView::UpdateNetworkState() { info->highlight = network->IsConnectedState() || network->IsConnectingState(); } -} -void NetworkStateListDetailedView::RefreshNetworkList() { + // Get the updated list entries network_map_.clear(); std::set<std::string> new_service_paths; bool needs_relayout = UpdateNetworkListEntries(&new_service_paths); @@ -566,7 +568,7 @@ bool NetworkStateListDetailedView::UpdateNetworkListEntries( return needs_relayout; } -void NetworkStateListDetailedView::UpdateNetworkEntries() { +void NetworkStateListDetailedView::UpdateMobileAccount() { view_mobile_account_->SetVisible(false); setup_mobile_account_->SetVisible(false); diff --git a/ash/system/chromeos/network/network_state_list_detailed_view.h b/ash/system/chromeos/network/network_state_list_detailed_view.h index 1b19518..4c87723 100644 --- a/ash/system/chromeos/network/network_state_list_detailed_view.h +++ b/ash/system/chromeos/network/network_state_list_detailed_view.h @@ -70,20 +70,20 @@ class NetworkStateListDetailedView : public NetworkDetailedView, // Create UI components. void CreateHeaderEntry(); void CreateHeaderButtons(); - void CreateNetworkEntries(); + void CreateMobileAccount(); void CreateNetworkExtra(); // Update UI components. void UpdateHeaderButtons(); + void UpdateNetworks(const NetworkStateList& networks); - void UpdateNetworkState(); - void RefreshNetworkList(); + void UpdateNetworkListEntries(); bool CreateOrUpdateInfoLabel( int index, const string16& text, views::Label** label); bool UpdateNetworkChild(int index, const NetworkInfo* info); bool OrderChild(views::View* view, int index); bool UpdateNetworkListEntries(std::set<std::string>* new_service_paths); - void UpdateNetworkEntries(); + void UpdateMobileAccount(); void UpdateNetworkExtra(); // Adds a settings entry when logged in, and an entry for changing proxy diff --git a/ash/system/chromeos/network/tray_network.cc b/ash/system/chromeos/network/tray_network.cc index 4611540..54a40eb 100644 --- a/ash/system/chromeos/network/tray_network.cc +++ b/ash/system/chromeos/network/tray_network.cc @@ -20,6 +20,7 @@ #include "ash/system/tray/tray_notification_view.h" #include "base/command_line.h" #include "base/utf_string_conversions.h" +#include "chromeos/chromeos_switches.h" #include "chromeos/network/network_configuration_handler.h" #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" @@ -548,7 +549,9 @@ void TrayNetwork::ConnectToNetwork(const std::string& service_path) { NetworkStateHandler::Get()->GetNetworkState(service_path); if (!network) return; - if (!network->IsConnectedState()) { + if (CommandLine::ForCurrentProcess()->HasSwitch( + chromeos::switches::kEnableNewNetworkConfigurationHandlers) && + !network->IsConnectedState()) { chromeos::NetworkConfigurationHandler::Get()->Connect( service_path, base::Bind(&base::DoNothing), |