Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(704)

Unified Diff: ash/system/chromeos/network/tray_network.cc

Issue 23075012: Update NetworkStateNotifier to use message_center. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Track deafult_network and reset did_show_out_of_credits on any change Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/system/chromeos/network/tray_network.h ('k') | ash/system/tray/system_tray_notifier.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « ash/system/chromeos/network/tray_network.h ('k') | ash/system/tray/system_tray_notifier.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698