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

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

Issue 2734653002: chromeos: Move files in //ash/common to //ash (Closed)
Patch Set: fix a11y tests, fix docs Created 3 years, 10 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
Index: ash/common/system/chromeos/network/tray_network.cc
diff --git a/ash/common/system/chromeos/network/tray_network.cc b/ash/common/system/chromeos/network/tray_network.cc
deleted file mode 100644
index decfc5a7a80669b4cef35766f09272ecb72981d0..0000000000000000000000000000000000000000
--- a/ash/common/system/chromeos/network/tray_network.cc
+++ /dev/null
@@ -1,341 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/common/system/chromeos/network/tray_network.h"
-
-#include "ash/common/shelf/wm_shelf_util.h"
-#include "ash/common/system/chromeos/network/network_icon.h"
-#include "ash/common/system/chromeos/network/network_icon_animation.h"
-#include "ash/common/system/chromeos/network/network_icon_animation_observer.h"
-#include "ash/common/system/chromeos/network/network_state_list_detailed_view.h"
-#include "ash/common/system/chromeos/network/tray_network_state_observer.h"
-#include "ash/common/system/tray/system_tray.h"
-#include "ash/common/system/tray/system_tray_delegate.h"
-#include "ash/common/system/tray/system_tray_notifier.h"
-#include "ash/common/system/tray/tray_constants.h"
-#include "ash/common/system/tray/tray_item_more.h"
-#include "ash/common/system/tray/tray_item_view.h"
-#include "ash/common/system/tray/tray_popup_item_style.h"
-#include "ash/common/system/tray/tray_utils.h"
-#include "ash/common/wm_shell.h"
-#include "ash/resources/grit/ash_resources.h"
-#include "ash/strings/grit/ash_strings.h"
-#include "base/command_line.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chromeos/network/network_state.h"
-#include "chromeos/network/network_state_handler.h"
-#include "third_party/cros_system_api/dbus/service_constants.h"
-#include "ui/accessibility/ax_node_data.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/link.h"
-#include "ui/views/controls/link_listener.h"
-#include "ui/views/layout/box_layout.h"
-#include "ui/views/widget/widget.h"
-
-using chromeos::NetworkHandler;
-using chromeos::NetworkState;
-using chromeos::NetworkStateHandler;
-using chromeos::NetworkTypePattern;
-
-namespace ash {
-namespace tray {
-
-namespace {
-
-// Returns the connected, non-virtual (aka VPN), network.
-const NetworkState* GetConnectedNetwork() {
- NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler();
- return handler->ConnectedNetworkByType(NetworkTypePattern::NonVirtual());
-}
-
-} // namespace
-
-class NetworkTrayView : public TrayItemView,
- public network_icon::AnimationObserver {
- public:
- explicit NetworkTrayView(TrayNetwork* network_tray)
- : TrayItemView(network_tray) {
- CreateImageView();
- UpdateNetworkStateHandlerIcon();
- }
-
- ~NetworkTrayView() override {
- network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
- }
-
- const char* GetClassName() const override { return "NetworkTrayView"; }
-
- void UpdateNetworkStateHandlerIcon() {
- gfx::ImageSkia image;
- base::string16 name;
- bool animating = false;
- network_icon::GetDefaultNetworkImageAndLabel(network_icon::ICON_TYPE_TRAY,
- &image, &name, &animating);
- bool show_in_tray = !image.isNull();
- UpdateIcon(show_in_tray, image);
- if (animating)
- network_icon::NetworkIconAnimation::GetInstance()->AddObserver(this);
- else
- network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
- // Update accessibility.
- const NetworkState* connected_network = GetConnectedNetwork();
- if (connected_network) {
- UpdateConnectionStatus(base::UTF8ToUTF16(connected_network->name()),
- true);
- } else {
- UpdateConnectionStatus(base::string16(), false);
- }
- }
-
- // views::View:
- void GetAccessibleNodeData(ui::AXNodeData* node_data) override {
- node_data->SetName(connection_status_string_);
- node_data->role = ui::AX_ROLE_BUTTON;
- }
-
- // network_icon::AnimationObserver:
- void NetworkIconChanged() override { UpdateNetworkStateHandlerIcon(); }
-
- private:
- // Updates connection status and notifies accessibility event when necessary.
- void UpdateConnectionStatus(const base::string16& network_name,
- bool connected) {
- base::string16 new_connection_status_string;
- if (connected) {
- new_connection_status_string = l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_CONNECTED, network_name);
- }
- if (new_connection_status_string != connection_status_string_) {
- connection_status_string_ = new_connection_status_string;
- if (!connection_status_string_.empty())
- NotifyAccessibilityEvent(ui::AX_EVENT_ALERT, true);
- }
- }
-
- void UpdateIcon(bool tray_icon_visible, const gfx::ImageSkia& image) {
- image_view()->SetImage(image);
- SetVisible(tray_icon_visible);
- SchedulePaint();
- }
-
- base::string16 connection_status_string_;
-
- DISALLOW_COPY_AND_ASSIGN(NetworkTrayView);
-};
-
-class NetworkDefaultView : public TrayItemMore,
- public network_icon::AnimationObserver {
- public:
- explicit NetworkDefaultView(TrayNetwork* network_tray)
- : TrayItemMore(network_tray) {
- Update();
- }
-
- ~NetworkDefaultView() override {
- network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
- }
-
- void Update() {
- gfx::ImageSkia image;
- base::string16 label;
- bool animating = false;
- // TODO(bruthig): Update the image to use the proper color. See
- // https://crbug.com/632027.
- network_icon::GetDefaultNetworkImageAndLabel(
- network_icon::ICON_TYPE_DEFAULT_VIEW, &image, &label, &animating);
- if (animating)
- network_icon::NetworkIconAnimation::GetInstance()->AddObserver(this);
- else
- network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
- SetImage(image);
- SetLabel(label);
- SetAccessibleName(label);
- UpdateStyle();
- }
-
- // network_icon::AnimationObserver
- void NetworkIconChanged() override { Update(); }
-
- protected:
- // TrayItemMore:
- std::unique_ptr<TrayPopupItemStyle> HandleCreateStyle() const override {
- std::unique_ptr<TrayPopupItemStyle> style =
- TrayItemMore::HandleCreateStyle();
- style->set_color_style(GetConnectedNetwork() != nullptr
- ? TrayPopupItemStyle::ColorStyle::ACTIVE
- : TrayPopupItemStyle::ColorStyle::INACTIVE);
- return style;
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(NetworkDefaultView);
-};
-
-class NetworkWifiDetailedView : public NetworkDetailedView {
- public:
- explicit NetworkWifiDetailedView(SystemTrayItem* owner)
- : NetworkDetailedView(owner) {
- SetLayoutManager(new views::BoxLayout(views::BoxLayout::kHorizontal,
- kTrayPopupPaddingHorizontal, 10,
- kTrayPopupPaddingBetweenItems));
- image_view_ = new views::ImageView;
- AddChildView(image_view_);
-
- label_view_ = new views::Label();
- label_view_->SetMultiLine(true);
- label_view_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
- AddChildView(label_view_);
-
- Update();
- }
-
- ~NetworkWifiDetailedView() override {}
-
- // Overridden from NetworkDetailedView:
-
- void Init() override {}
-
- NetworkDetailedView::DetailedViewType GetViewType() const override {
- return NetworkDetailedView::WIFI_VIEW;
- }
-
- void Layout() override {
- // Center both views vertically.
- views::View::Layout();
- image_view_->SetY((height() - image_view_->GetPreferredSize().height()) /
- 2);
- label_view_->SetY((height() - label_view_->GetPreferredSize().height()) /
- 2);
- }
-
- void Update() override {
- bool wifi_enabled =
- NetworkHandler::Get()->network_state_handler()->IsTechnologyEnabled(
- NetworkTypePattern::WiFi());
- const int image_id = wifi_enabled ? IDR_AURA_UBER_TRAY_WIFI_ENABLED
- : IDR_AURA_UBER_TRAY_WIFI_DISABLED;
- ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
- image_view_->SetImage(bundle.GetImageNamed(image_id).ToImageSkia());
-
- const int string_id = wifi_enabled
- ? IDS_ASH_STATUS_TRAY_NETWORK_WIFI_ENABLED
- : IDS_ASH_STATUS_TRAY_NETWORK_WIFI_DISABLED;
- label_view_->SetText(bundle.GetLocalizedString(string_id));
- label_view_->SizeToFit(
- kTrayPopupMinWidth - kTrayPopupPaddingHorizontal * 2 -
- kTrayPopupPaddingBetweenItems - kTrayPopupDetailsIconWidth);
- }
-
- private:
- views::ImageView* image_view_;
- views::Label* label_view_;
-
- DISALLOW_COPY_AND_ASSIGN(NetworkWifiDetailedView);
-};
-
-} // namespace tray
-
-TrayNetwork::TrayNetwork(SystemTray* system_tray)
- : SystemTrayItem(system_tray, UMA_NETWORK),
- tray_(NULL),
- default_(NULL),
- detailed_(NULL),
- request_wifi_view_(false) {
- network_state_observer_.reset(new TrayNetworkStateObserver(this));
- SystemTrayNotifier* notifier = WmShell::Get()->system_tray_notifier();
- notifier->AddNetworkObserver(this);
- notifier->AddNetworkPortalDetectorObserver(this);
-}
-
-TrayNetwork::~TrayNetwork() {
- SystemTrayNotifier* notifier = WmShell::Get()->system_tray_notifier();
- notifier->RemoveNetworkObserver(this);
- notifier->RemoveNetworkPortalDetectorObserver(this);
-}
-
-views::View* TrayNetwork::CreateTrayView(LoginStatus status) {
- CHECK(tray_ == NULL);
- if (!chromeos::NetworkHandler::IsInitialized())
- return NULL;
- tray_ = new tray::NetworkTrayView(this);
- return tray_;
-}
-
-views::View* TrayNetwork::CreateDefaultView(LoginStatus status) {
- CHECK(default_ == NULL);
- if (!chromeos::NetworkHandler::IsInitialized())
- return NULL;
- CHECK(tray_ != NULL);
- default_ = new tray::NetworkDefaultView(this);
- default_->SetEnabled(status != LoginStatus::LOCKED);
- return default_;
-}
-
-views::View* TrayNetwork::CreateDetailedView(LoginStatus status) {
- CHECK(detailed_ == NULL);
- WmShell::Get()->RecordUserMetricsAction(
- UMA_STATUS_AREA_DETAILED_NETWORK_VIEW);
- if (!chromeos::NetworkHandler::IsInitialized())
- return NULL;
- if (request_wifi_view_) {
- detailed_ = new tray::NetworkWifiDetailedView(this);
- request_wifi_view_ = false;
- } else {
- detailed_ = new tray::NetworkStateListDetailedView(
- this, tray::NetworkStateListDetailedView::LIST_TYPE_NETWORK, status);
- detailed_->Init();
- }
- return detailed_;
-}
-
-void TrayNetwork::DestroyTrayView() {
- tray_ = NULL;
-}
-
-void TrayNetwork::DestroyDefaultView() {
- default_ = NULL;
-}
-
-void TrayNetwork::DestroyDetailedView() {
- detailed_ = NULL;
-}
-
-void TrayNetwork::UpdateAfterLoginStatusChange(LoginStatus status) {}
-
-void TrayNetwork::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) {
- if (tray_)
- SetTrayImageItemBorder(tray_, alignment);
-}
-
-void TrayNetwork::RequestToggleWifi() {
- // This will always be triggered by a user action (e.g. keyboard shortcut)
- if (!detailed_ ||
- detailed_->GetViewType() == tray::NetworkDetailedView::WIFI_VIEW) {
- request_wifi_view_ = true;
- PopupDetailedView(kTrayPopupAutoCloseDelayForTextInSeconds, false);
- }
- NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler();
- bool enabled = handler->IsTechnologyEnabled(NetworkTypePattern::WiFi());
- WmShell::Get()->RecordUserMetricsAction(
- enabled ? UMA_STATUS_AREA_DISABLE_WIFI : UMA_STATUS_AREA_ENABLE_WIFI);
- handler->SetTechnologyEnabled(NetworkTypePattern::WiFi(), !enabled,
- chromeos::network_handler::ErrorCallback());
-}
-
-void TrayNetwork::OnCaptivePortalDetected(const std::string& /* guid */) {
- NetworkStateChanged();
-}
-
-void TrayNetwork::NetworkStateChanged() {
- if (tray_)
- tray_->UpdateNetworkStateHandlerIcon();
- if (default_)
- default_->Update();
- if (detailed_)
- detailed_->Update();
-}
-
-} // namespace ash
« no previous file with comments | « ash/common/system/chromeos/network/tray_network.h ('k') | ash/common/system/chromeos/network/tray_network_state_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698