Index: ash/system/chromeos/network/tray_vpn.cc |
diff --git a/ash/system/chromeos/network/tray_vpn.cc b/ash/system/chromeos/network/tray_vpn.cc |
index 05f059621d7490e8842ca495876c673f3c49212d..2d7ab0ebfc10b4b1ffbde2653d77871f8485d55b 100644 |
--- a/ash/system/chromeos/network/tray_vpn.cc |
+++ b/ash/system/chromeos/network/tray_vpn.cc |
@@ -4,10 +4,8 @@ |
#include "ash/system/chromeos/network/tray_vpn.h" |
-#include "ash/ash_switches.h" |
#include "ash/shell.h" |
#include "ash/system/chromeos/network/network_icon_animation.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/tray/system_tray.h" |
#include "ash/system/tray/system_tray_delegate.h" |
@@ -15,7 +13,6 @@ |
#include "ash/system/tray/tray_constants.h" |
#include "ash/system/tray/tray_item_more.h" |
#include "ash/system/tray/tray_popup_label_button.h" |
-#include "base/command_line.h" |
#include "chromeos/network/network_state.h" |
#include "chromeos/network/network_state_handler.h" |
#include "grit/ash_strings.h" |
@@ -26,16 +23,6 @@ |
using chromeos::NetworkState; |
using chromeos::NetworkStateHandler; |
-namespace { |
- |
-bool UseNewNetworkHandlers() { |
- return !CommandLine::ForCurrentProcess()->HasSwitch( |
- ash::switches::kAshDisableNewNetworkStatusArea) && |
- NetworkStateHandler::IsInitialized(); |
-} |
- |
-} |
- |
namespace ash { |
namespace internal { |
@@ -50,45 +37,29 @@ class VpnDefaultView : public TrayItemMore, |
} |
virtual ~VpnDefaultView() { |
- if (UseNewNetworkHandlers()) |
- network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this); |
+ network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this); |
} |
static bool ShouldShow() { |
// Do not show VPN line in uber tray bubble if VPN is not configured. |
- if (UseNewNetworkHandlers()) { |
- NetworkStateHandler* handler = NetworkStateHandler::Get(); |
- const NetworkState* vpn = handler->FirstNetworkByType( |
- flimflam::kTypeVPN); |
- return vpn != NULL; |
- } else { |
- std::vector<NetworkIconInfo> list; |
- Shell::GetInstance()->system_tray_delegate()->GetVirtualNetworks(&list); |
- return list.size() != 0; |
- } |
+ NetworkStateHandler* handler = NetworkStateHandler::Get(); |
+ const NetworkState* vpn = handler->FirstNetworkByType( |
+ flimflam::kTypeVPN); |
+ return vpn != NULL; |
} |
void Update() { |
- if (UseNewNetworkHandlers()) { |
- gfx::ImageSkia image; |
- base::string16 label; |
- bool animating = false; |
- GetNetworkStateHandlerImageAndLabel(&image, &label, &animating); |
- if (animating) |
- network_icon::NetworkIconAnimation::GetInstance()->AddObserver(this); |
- else |
- network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this); |
- SetImage(&image); |
- SetLabel(label); |
- SetAccessibleName(label); |
- } else { |
- NetworkIconInfo info; |
- Shell::GetInstance()->system_tray_delegate()-> |
- GetVirtualNetworkIcon(&info); |
- SetImage(&info.image); |
- SetLabel(info.description); |
- SetAccessibleName(info.description); |
- } |
+ gfx::ImageSkia image; |
+ base::string16 label; |
+ bool animating = false; |
+ GetNetworkStateHandlerImageAndLabel(&image, &label, &animating); |
+ if (animating) |
+ network_icon::NetworkIconAnimation::GetInstance()->AddObserver(this); |
+ else |
+ network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this); |
+ SetImage(&image); |
+ SetLabel(label); |
+ SetAccessibleName(label); |
} |
// network_icon::AnimationObserver |
@@ -125,117 +96,16 @@ class VpnDefaultView : public TrayItemMore, |
DISALLOW_COPY_AND_ASSIGN(VpnDefaultView); |
}; |
-class VpnListDetailedView : public NetworkListDetailedViewBase { |
- public: |
- VpnListDetailedView(SystemTrayItem* owner, |
- user::LoginStatus login, |
- int header_string_id) |
- : NetworkListDetailedViewBase(owner, login, header_string_id), |
- other_vpn_(NULL), |
- no_networks_view_(NULL) { |
- } |
- |
- virtual ~VpnListDetailedView() { |
- } |
- |
- // Overridden from NetworkListDetailedViewBase: |
- |
- virtual void AppendHeaderButtons() OVERRIDE { |
- AppendInfoButtonToHeader(); |
- } |
- |
- virtual void UpdateHeaderButtons() OVERRIDE { |
- UpdateSettingButton(); |
- } |
- |
- virtual void AppendNetworkEntries() OVERRIDE { |
- CreateScrollableList(); |
- } |
- |
- virtual void GetAvailableNetworkList( |
- std::vector<NetworkIconInfo>* list) OVERRIDE{ |
- Shell::GetInstance()->system_tray_delegate()->GetVirtualNetworks(list); |
- } |
- |
- virtual void UpdateNetworkEntries() OVERRIDE { |
- RefreshNetworkScrollWithUpdatedNetworkData(); |
- } |
- |
- virtual void AppendCustomButtonsToBottomRow( |
- views::View* bottom_row) OVERRIDE { |
- other_vpn_ = new TrayPopupLabelButton( |
- this, |
- ui::ResourceBundle::GetSharedInstance().GetLocalizedString( |
- IDS_ASH_STATUS_TRAY_OTHER_VPN)); |
- bottom_row->AddChildView(other_vpn_); |
- } |
- |
- virtual void UpdateNetworkExtra() OVERRIDE { |
- if (login() == user::LOGGED_IN_LOCKED) |
- return; |
- } |
- |
- virtual void CustomButtonPressed(views::Button* sender, |
- const ui::Event& event) OVERRIDE { |
- if (sender == other_vpn_) |
- ash::Shell::GetInstance()->system_tray_delegate()->ShowOtherVPN(); |
- else |
- NOTREACHED(); |
- } |
- |
- virtual bool CustomLinkClickedOn(views::View* sender) OVERRIDE { |
- return false; |
- } |
- |
- virtual bool UpdateNetworkListEntries( |
- std::set<std::string>* new_service_paths) OVERRIDE { |
- ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
- bool needs_relayout = false; |
- |
- int index = 0; |
- |
- for (size_t i = 0; i < network_list().size(); ++i) { |
- const NetworkIconInfo* info = &network_list()[i]; |
- if (UpdateNetworkChild(index++, info)) |
- needs_relayout = true; |
- new_service_paths->insert(info->service_path); |
- } |
- |
- // We shouldn't be showing this list if there are no VPNs, but it could |
- // be possible to get here if a VPN were removed (e.g. by a policy) while |
- // the UI was open. Better to show something than nothing. |
- if (network_list().empty()) { |
- if (CreateOrUpdateInfoLabel( |
- index++, |
- rb.GetLocalizedString(IDS_ASH_STATUS_TRAY_NETWORK_NO_VPN), |
- &no_networks_view_)) { |
- needs_relayout = true; |
- } |
- } |
- |
- return needs_relayout; |
- } |
- |
- private: |
- TrayPopupLabelButton* other_vpn_; |
- views::Label* no_networks_view_; |
- |
- DISALLOW_COPY_AND_ASSIGN(VpnListDetailedView); |
-}; |
- |
} // namespace tray |
TrayVPN::TrayVPN(SystemTray* system_tray) |
: SystemTrayItem(system_tray), |
default_(NULL), |
detailed_(NULL) { |
- if (UseNewNetworkHandlers()) |
- network_state_observer_.reset(new TrayNetworkStateObserver(this)); |
- Shell::GetInstance()->system_tray_notifier()->AddVpnObserver(this); |
+ network_state_observer_.reset(new TrayNetworkStateObserver(this)); |
} |
TrayVPN::~TrayVPN() { |
- Shell::GetInstance()->system_tray_notifier()->RemoveVpnObserver(this); |
} |
views::View* TrayVPN::CreateTrayView(user::LoginStatus status) { |
@@ -244,9 +114,10 @@ views::View* TrayVPN::CreateTrayView(user::LoginStatus status) { |
views::View* TrayVPN::CreateDefaultView(user::LoginStatus status) { |
CHECK(default_ == NULL); |
+ if (!chromeos::NetworkStateHandler::IsInitialized()) |
+ return NULL; |
if (status == user::LOGGED_IN_NONE) |
return NULL; |
- |
if (!tray::VpnDefaultView::ShouldShow()) |
return NULL; |
@@ -256,14 +127,11 @@ views::View* TrayVPN::CreateDefaultView(user::LoginStatus status) { |
views::View* TrayVPN::CreateDetailedView(user::LoginStatus status) { |
CHECK(detailed_ == NULL); |
+ if (!chromeos::NetworkStateHandler::IsInitialized()) |
+ return NULL; |
- if (UseNewNetworkHandlers()) { |
- detailed_ = new tray::NetworkStateListDetailedView( |
- this, tray::NetworkStateListDetailedView::LIST_TYPE_VPN, status); |
- } else { |
- detailed_ = new tray::VpnListDetailedView( |
- this, status, IDS_ASH_STATUS_TRAY_VPN); |
- } |
+ detailed_ = new tray::NetworkStateListDetailedView( |
+ this, tray::NetworkStateListDetailedView::LIST_TYPE_VPN, status); |
detailed_->Init(); |
return detailed_; |
} |
@@ -292,35 +160,6 @@ void TrayVPN::UpdateAfterLoginStatusChange(user::LoginStatus status) { |
void TrayVPN::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) { |
} |
-void TrayVPN::OnNetworkRefresh(const NetworkIconInfo& info) { |
- if (default_) { |
- default_->Update(); |
- } else if (tray::VpnDefaultView::ShouldShow()) { |
- if (system_tray()->HasSystemBubbleType( |
- SystemTrayBubble::BUBBLE_TYPE_DEFAULT)) { |
- // We created the default view without a VPN view, so rebuild it. |
- system_tray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- } |
- } |
- |
- if (detailed_) |
- detailed_->ManagerChanged(); |
-} |
- |
-void TrayVPN::SetNetworkMessage(NetworkTrayDelegate* delegate, |
- MessageType message_type, |
- NetworkType network_type, |
- const base::string16& title, |
- const base::string16& message, |
- const std::vector<base::string16>& links) { |
-} |
- |
-void TrayVPN::ClearNetworkMessage(MessageType message_type) { |
-} |
- |
-void TrayVPN::OnWillToggleWifi() { |
-} |
- |
void TrayVPN::NetworkStateChanged(bool list_changed) { |
if (default_) |
default_->Update(); |