| Index: ash/system/chromeos/network/tray_network.cc
|
| diff --git a/ash/system/chromeos/network/tray_network.cc b/ash/system/chromeos/network/tray_network.cc
|
| index 54a40eb4ac25a5c50894f6c2719e6a93d5baf4fc..3dff2234e022568b8c3967e8d9107f1824a8af7b 100644
|
| --- a/ash/system/chromeos/network/tray_network.cc
|
| +++ b/ash/system/chromeos/network/tray_network.cc
|
| @@ -10,7 +10,6 @@
|
| #include "ash/system/chromeos/network/network_list_detailed_view.h"
|
| #include "ash/system/chromeos/network/network_list_detailed_view_base.h"
|
| #include "ash/system/chromeos/network/network_state_list_detailed_view.h"
|
| -#include "ash/system/chromeos/network/tray_network_state_observer.h"
|
| #include "ash/system/tray/system_tray.h"
|
| #include "ash/system/tray/system_tray_delegate.h"
|
| #include "ash/system/tray/system_tray_notifier.h"
|
| @@ -20,8 +19,6 @@
|
| #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"
|
| #include "grit/ash_resources.h"
|
| @@ -407,8 +404,7 @@ TrayNetwork::TrayNetwork(SystemTray* system_tray)
|
| detailed_(NULL),
|
| notification_(NULL),
|
| messages_(new tray::NetworkMessages()),
|
| - request_wifi_view_(false),
|
| - uninitialized_msg_(0) {
|
| + request_wifi_view_(false) {
|
| if (UseNewNetworkHandlers())
|
| network_state_observer_.reset(new TrayNetworkStateObserver(this));
|
| Shell::GetInstance()->system_tray_notifier()->AddNetworkObserver(this);
|
| @@ -445,7 +441,8 @@ views::View* TrayNetwork::CreateDetailedView(user::LoginStatus status) {
|
| request_wifi_view_ = false;
|
| } else {
|
| if (UseNewNetworkHandlers()) {
|
| - detailed_ = new tray::NetworkStateListDetailedView(this, status);
|
| + detailed_ = new tray::NetworkStateListDetailedView(
|
| + this, tray::NetworkStateListDetailedView::LIST_TYPE_NETWORK, status);
|
| } else {
|
| detailed_ = new tray::NetworkListDetailedView(
|
| this, status, IDS_ASH_STATUS_TRAY_NETWORK);
|
| @@ -522,8 +519,7 @@ void TrayNetwork::ClearNetworkMessage(MessageType message_type) {
|
| }
|
|
|
| void TrayNetwork::OnWillToggleWifi() {
|
| - if (UseNewNetworkHandlers())
|
| - return; // Handled in TrayNetworkStateObserver::NetworkManagerChanged()
|
| + // Triggered by a user action (e.g. keyboard shortcut)
|
| if (!detailed_ ||
|
| detailed_->GetViewType() == tray::NetworkDetailedView::WIFI_VIEW) {
|
| request_wifi_view_ = true;
|
| @@ -531,42 +527,22 @@ void TrayNetwork::OnWillToggleWifi() {
|
| }
|
| }
|
|
|
| -void TrayNetwork::TrayNetworkUpdated() {
|
| +void TrayNetwork::NetworkStateChanged(bool list_changed) {
|
| if (tray_ && UseNewNetworkHandlers())
|
| tray_->UpdateNetworkStateHandlerIcon();
|
| if (default_)
|
| default_->Update();
|
| -}
|
| -
|
| -void TrayNetwork::NetworkServiceChanged(const chromeos::NetworkState* network) {
|
| - if (!network->IsConnectingState())
|
| - connecting_networks_.erase(network->path());
|
| -}
|
| -
|
| -void TrayNetwork::ConnectToNetwork(const std::string& service_path) {
|
| - DCHECK(UseNewNetworkHandlers());
|
| - const NetworkState* network =
|
| - NetworkStateHandler::Get()->GetNetworkState(service_path);
|
| - if (!network)
|
| - return;
|
| - if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| - chromeos::switches::kEnableNewNetworkConfigurationHandlers) &&
|
| - !network->IsConnectedState()) {
|
| - chromeos::NetworkConfigurationHandler::Get()->Connect(
|
| - service_path,
|
| - base::Bind(&base::DoNothing),
|
| - chromeos::network_handler::ErrorCallback());
|
| - connecting_networks_.insert(service_path);
|
| - } else {
|
| - // This will show the settings UI for a connected network.
|
| - // TODO(stevenjb): Change the API to explicitly show network settings.
|
| - Shell::GetInstance()->system_tray_delegate()->ConnectToNetwork(
|
| - service_path);
|
| + if (detailed_) {
|
| + if (list_changed)
|
| + detailed_->NetworkListChanged();
|
| + else
|
| + detailed_->ManagerChanged();
|
| }
|
| }
|
|
|
| -bool TrayNetwork::HasConnectingNetwork(const std::string& service_path) {
|
| - return connecting_networks_.count(service_path) > 0;
|
| +void TrayNetwork::NetworkServiceChanged(const chromeos::NetworkState* network) {
|
| + if (detailed_)
|
| + detailed_->NetworkServiceChanged(network);
|
| }
|
|
|
| void TrayNetwork::GetNetworkStateHandlerImageAndLabel(
|
| @@ -587,13 +563,13 @@ void TrayNetwork::GetNetworkStateHandlerImageAndLabel(
|
| // network, or the connection was user requested, use the connecting
|
| // network.
|
| if (connecting_network &&
|
| - (!network ||
|
| - HasConnectingNetwork(connecting_network->path()))) {
|
| + (!network || TrayNetworkStateObserver::HasConnectingNetwork(
|
| + connecting_network->path()))) {
|
| network = connecting_network;
|
| }
|
| if (!network) {
|
| // If no connecting network, check for cellular initializing.
|
| - int uninitialized_msg = GetUninitializedMsg();
|
| + int uninitialized_msg = network_icon::GetCellularUninitializedMsg();
|
| if (uninitialized_msg != 0) {
|
| *image = network_icon::GetImageForConnectingNetwork(
|
| icon_type, flimflam::kTypeCellular);
|
| @@ -616,29 +592,6 @@ void TrayNetwork::GetNetworkStateHandlerImageAndLabel(
|
| *label = network_icon::GetLabelForNetwork(network, icon_type);
|
| }
|
|
|
| -int TrayNetwork::GetUninitializedMsg() {
|
| - NetworkStateHandler* handler = NetworkStateHandler::Get();
|
| - if (handler->TechnologyUninitialized(
|
| - NetworkStateHandler::kMatchTypeMobile)) {
|
| - uninitialized_msg_ = IDS_ASH_STATUS_TRAY_INITIALIZING_CELLULAR;
|
| - uninitialized_state_time_ = base::Time::Now();
|
| - return uninitialized_msg_;
|
| - } else if (handler->GetScanningByType(
|
| - NetworkStateHandler::kMatchTypeMobile)) {
|
| - uninitialized_msg_ = IDS_ASH_STATUS_TRAY_CELLULAR_SCANNING;
|
| - uninitialized_state_time_ = base::Time::Now();
|
| - return uninitialized_msg_;
|
| - }
|
| - // There can be a delay between leaving the Initializing state and when
|
| - // a Cellular device shows up, so keep showing the initializing
|
| - // animation for a bit to avoid flashing the disconnect icon.
|
| - const int kInitializingDelaySeconds = 1;
|
| - base::TimeDelta dtime = base::Time::Now() - uninitialized_state_time_;
|
| - if (dtime.InSeconds() < kInitializingDelaySeconds)
|
| - return uninitialized_msg_;
|
| - return 0;
|
| -}
|
| -
|
| void TrayNetwork::LinkClicked(MessageType message_type, int link_id) {
|
| tray::NetworkMessages::MessageMap::const_iterator iter =
|
| messages()->messages().find(message_type);
|
|
|