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 e8c1683b420088c044a44c3c89bdfdb12eb863e5..e4a5fb1e078a3ba3726dd4495d613374827da574 100644 |
--- a/ash/system/chromeos/network/tray_network.cc |
+++ b/ash/system/chromeos/network/tray_network.cc |
@@ -8,7 +8,6 @@ |
#include "ash/shell.h" |
#include "ash/system/chromeos/network/network_icon_animation.h" |
#include "ash/system/chromeos/network/network_state_list_detailed_view.h" |
-#include "ash/system/chromeos/network/network_tray_delegate.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" |
@@ -16,7 +15,6 @@ |
#include "ash/system/tray/tray_constants.h" |
#include "ash/system/tray/tray_item_more.h" |
#include "ash/system/tray/tray_item_view.h" |
-#include "ash/system/tray/tray_notification_view.h" |
#include "ash/system/tray/tray_utils.h" |
#include "base/command_line.h" |
#include "base/strings/utf_string_conversions.h" |
@@ -41,60 +39,8 @@ using chromeos::NetworkStateHandler; |
namespace ash { |
namespace internal { |
-namespace { |
- |
-int GetMessageIcon(NetworkObserver::MessageType message_type, |
- NetworkObserver::NetworkType network_type) { |
- switch(message_type) { |
- case NetworkObserver::ERROR_CONNECT_FAILED: |
- if (NetworkObserver::NETWORK_CELLULAR == network_type) |
- return IDR_AURA_UBER_TRAY_CELLULAR_NETWORK_FAILED; |
- else |
- return IDR_AURA_UBER_TRAY_NETWORK_FAILED; |
- case NetworkObserver::ERROR_OUT_OF_CREDITS: |
- case NetworkObserver::MESSAGE_DATA_PROMO: |
- if (network_type == TrayNetwork::NETWORK_CELLULAR_LTE) |
- return IDR_AURA_UBER_TRAY_NOTIFICATION_LTE; |
- else |
- return IDR_AURA_UBER_TRAY_NOTIFICATION_3G; |
- } |
- NOTREACHED(); |
- return 0; |
-} |
- |
-} // namespace |
- |
namespace tray { |
-class NetworkMessages { |
- public: |
- struct Message { |
- Message() : delegate(NULL) {} |
- Message(NetworkTrayDelegate* in_delegate, |
- NetworkObserver::NetworkType network_type, |
- const base::string16& in_title, |
- const base::string16& in_message, |
- const std::vector<base::string16>& in_links) : |
- delegate(in_delegate), |
- network_type_(network_type), |
- title(in_title), |
- message(in_message), |
- links(in_links) {} |
- NetworkTrayDelegate* delegate; |
- NetworkObserver::NetworkType network_type_; |
- base::string16 title; |
- base::string16 message; |
- std::vector<base::string16> links; |
- }; |
- typedef std::map<NetworkObserver::MessageType, Message> MessageMap; |
- |
- MessageMap& messages() { return messages_; } |
- const MessageMap& messages() const { return messages_; } |
- |
- private: |
- MessageMap messages_; |
-}; |
- |
class NetworkTrayView : public TrayItemView, |
public network_icon::AnimationObserver { |
public: |
@@ -296,112 +242,6 @@ class NetworkWifiDetailedView : public NetworkDetailedView { |
DISALLOW_COPY_AND_ASSIGN(NetworkWifiDetailedView); |
}; |
-class NetworkMessageView : public views::View, |
- public views::LinkListener { |
- public: |
- NetworkMessageView(TrayNetwork* tray_network, |
- NetworkObserver::MessageType message_type, |
- const NetworkMessages::Message& network_msg) |
- : tray_network_(tray_network), |
- message_type_(message_type), |
- network_type_(network_msg.network_type_) { |
- SetLayoutManager( |
- new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 1)); |
- |
- if (!network_msg.title.empty()) { |
- views::Label* title = new views::Label(network_msg.title); |
- title->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
- title->SetFont(title->font().DeriveFont(0, gfx::Font::BOLD)); |
- AddChildView(title); |
- } |
- |
- if (!network_msg.message.empty()) { |
- views::Label* message = new views::Label(network_msg.message); |
- message->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
- message->SetMultiLine(true); |
- message->SizeToFit(kTrayNotificationContentsWidth); |
- AddChildView(message); |
- } |
- |
- if (!network_msg.links.empty()) { |
- for (size_t i = 0; i < network_msg.links.size(); ++i) { |
- views::Link* link = new views::Link(network_msg.links[i]); |
- link->set_id(i); |
- link->set_listener(this); |
- link->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
- link->SetMultiLine(true); |
- link->SizeToFit(kTrayNotificationContentsWidth); |
- AddChildView(link); |
- } |
- } |
- } |
- |
- virtual ~NetworkMessageView() { |
- } |
- |
- // Overridden from views::LinkListener. |
- virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE { |
- tray_network_->LinkClicked(message_type_, source->id()); |
- } |
- |
- NetworkObserver::MessageType message_type() const { return message_type_; } |
- NetworkObserver::NetworkType network_type() const { return network_type_; } |
- |
- private: |
- TrayNetwork* tray_network_; |
- NetworkObserver::MessageType message_type_; |
- NetworkObserver::NetworkType network_type_; |
- |
- DISALLOW_COPY_AND_ASSIGN(NetworkMessageView); |
-}; |
- |
-class NetworkNotificationView : public TrayNotificationView { |
- public: |
- explicit NetworkNotificationView(TrayNetwork* tray_network) |
- : TrayNotificationView(tray_network, 0), |
- tray_network_(tray_network) { |
- CreateMessageView(); |
- InitView(network_message_view_); |
- SetIconImage(*ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
- GetMessageIcon(network_message_view_->message_type(), |
- network_message_view_->network_type()))); |
- } |
- |
- // Overridden from TrayNotificationView. |
- virtual void OnClose() OVERRIDE { |
- tray_network_->ClearNetworkMessage(network_message_view_->message_type()); |
- } |
- |
- virtual void OnClickAction() OVERRIDE { |
- if (network_message_view_->message_type() != |
- TrayNetwork::MESSAGE_DATA_PROMO) |
- tray_network_->PopupDetailedView(0, true); |
- } |
- |
- void Update() { |
- CreateMessageView(); |
- UpdateViewAndImage(network_message_view_, |
- *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
- GetMessageIcon(network_message_view_->message_type(), |
- network_message_view_->network_type()))); |
- } |
- |
- private: |
- void CreateMessageView() { |
- // Display the first (highest priority) message. |
- CHECK(!tray_network_->messages()->messages().empty()); |
- NetworkMessages::MessageMap::const_iterator iter = |
- tray_network_->messages()->messages().begin(); |
- network_message_view_ = |
- new NetworkMessageView(tray_network_, iter->first, iter->second); |
- } |
- |
- TrayNetwork* tray_network_; |
- tray::NetworkMessageView* network_message_view_; |
- |
- DISALLOW_COPY_AND_ASSIGN(NetworkNotificationView); |
-}; |
- |
} // namespace tray |
TrayNetwork::TrayNetwork(SystemTray* system_tray) |
@@ -409,8 +249,6 @@ TrayNetwork::TrayNetwork(SystemTray* system_tray) |
tray_(NULL), |
default_(NULL), |
detailed_(NULL), |
- notification_(NULL), |
- messages_(new tray::NetworkMessages()), |
request_wifi_view_(false) { |
network_state_observer_.reset(new TrayNetworkStateObserver(this)); |
Shell::GetInstance()->system_tray_notifier()->AddNetworkObserver(this); |
@@ -442,9 +280,6 @@ views::View* TrayNetwork::CreateDetailedView(user::LoginStatus status) { |
CHECK(detailed_ == NULL); |
if (!chromeos::NetworkHandler::IsInitialized()) |
return NULL; |
- // Clear any notifications when showing the detailed view. |
- messages_->messages().clear(); |
- HideNotificationView(); |
if (request_wifi_view_) { |
detailed_ = new tray::NetworkWifiDetailedView(this); |
request_wifi_view_ = false; |
@@ -456,14 +291,6 @@ views::View* TrayNetwork::CreateDetailedView(user::LoginStatus status) { |
return detailed_; |
} |
-views::View* TrayNetwork::CreateNotificationView(user::LoginStatus status) { |
- CHECK(notification_ == NULL); |
- if (messages_->messages().empty()) |
- return NULL; // Message has already been cleared. |
- notification_ = new tray::NetworkNotificationView(this); |
- return notification_; |
-} |
- |
void TrayNetwork::DestroyTrayView() { |
tray_ = NULL; |
} |
@@ -476,10 +303,6 @@ void TrayNetwork::DestroyDetailedView() { |
detailed_ = NULL; |
} |
-void TrayNetwork::DestroyNotificationView() { |
- notification_ = NULL; |
-} |
- |
void TrayNetwork::UpdateAfterLoginStatusChange(user::LoginStatus status) { |
} |
@@ -488,34 +311,6 @@ void TrayNetwork::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) { |
SetTrayImageItemBorder(tray_, alignment); |
} |
-void TrayNetwork::SetNetworkMessage(NetworkTrayDelegate* delegate, |
- MessageType message_type, |
- NetworkType network_type, |
- const base::string16& title, |
- const base::string16& message, |
- const std::vector<base::string16>& links) { |
- messages_->messages()[message_type] = tray::NetworkMessages::Message( |
- delegate, network_type, title, message, links); |
- if (!Shell::GetInstance()->system_tray_delegate()->IsOobeCompleted()) |
- return; |
- if (notification_) |
- notification_->Update(); |
- else |
- ShowNotificationView(); |
-} |
- |
-void TrayNetwork::ClearNetworkMessage(MessageType message_type) { |
- messages_->messages().erase(message_type); |
- if (messages_->messages().empty()) { |
- HideNotificationView(); |
- return; |
- } |
- if (notification_) |
- notification_->Update(); |
- else |
- ShowNotificationView(); |
-} |
- |
void TrayNetwork::RequestToggleWifi() { |
// This will always be triggered by a user action (e.g. keyboard shortcut) |
if (!detailed_ || |
@@ -548,12 +343,5 @@ void TrayNetwork::NetworkServiceChanged(const chromeos::NetworkState* network) { |
detailed_->NetworkServiceChanged(network); |
} |
-void TrayNetwork::LinkClicked(MessageType message_type, int link_id) { |
- tray::NetworkMessages::MessageMap::const_iterator iter = |
- messages()->messages().find(message_type); |
- if (iter != messages()->messages().end() && iter->second.delegate) |
- iter->second.delegate->NotificationLinkClicked(message_type, link_id); |
-} |
- |
} // namespace internal |
} // namespace ash |