#include "ash/system/chromeos/network/tray_network.h"
#include "ash/ash_switches.h"
+#include "ash/metrics/user_metrics_recorder.h"
#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/tray_network_state_observer.h"
#include "ash/system/tray/system_tray.h"
#include "base/strings/utf_string_conversions.h"
#include "chromeos/network/network_state.h"
#include "chromeos/network/network_state_handler.h"
-#include "chromeos/network/shill_property_util.h"
#include "grit/ash_resources.h"
#include "grit/ash_strings.h"
+#include "grit/ui_chromeos_strings.h"
#include "third_party/cros_system_api/dbus/service_constants.h"
-#include "ui/base/accessibility/accessible_view_state.h"
+#include "ui/accessibility/ax_view_state.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h"
+#include "ui/chromeos/network/network_icon.h"
+#include "ui/chromeos/network/network_icon_animation.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/controls/link.h"
#include "ui/views/controls/link_listener.h"
using chromeos::NetworkTypePattern;
namespace ash {
-namespace internal {
-
namespace tray {
class NetworkTrayView : public TrayItemView,
- public network_icon::AnimationObserver {
+ public ui::network_icon::AnimationObserver {
public:
explicit NetworkTrayView(TrayNetwork* network_tray)
: TrayItemView(network_tray),
}
virtual ~NetworkTrayView() {
- network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
+ ui::network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
}
- virtual const char* GetClassName() const OVERRIDE {
+ virtual const char* GetClassName() const override {
return "NetworkTrayView";
}
gfx::ImageSkia image;
base::string16 name;
bool animating = false;
- network_icon::GetDefaultNetworkImageAndLabel(
- network_icon::ICON_TYPE_TRAY, &image, &name, &animating);
+ ui::network_icon::GetDefaultNetworkImageAndLabel(
+ ui::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);
+ ui::network_icon::NetworkIconAnimation::GetInstance()->AddObserver(this);
else
- network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
+ ui::network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(
+ this);
// Update accessibility.
const NetworkState* connected_network =
handler->ConnectedNetworkByType(NetworkTypePattern::NonVirtual());
- if (connected_network)
- UpdateConnectionStatus(UTF8ToUTF16(connected_network->name()), true);
- else
+ if (connected_network) {
+ UpdateConnectionStatus(
+ base::UTF8ToUTF16(connected_network->name()), true);
+ } else {
UpdateConnectionStatus(base::string16(), false);
+ }
}
void UpdateAlignment(ShelfAlignment alignment) {
}
// views::View override.
- virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE {
+ virtual void GetAccessibleState(ui::AXViewState* state) override {
state->name = connection_status_string_;
- state->role = ui::AccessibilityTypes::ROLE_PUSHBUTTON;
+ state->role = ui::AX_ROLE_BUTTON;
}
- // network_icon::AnimationObserver
- virtual void NetworkIconChanged() OVERRIDE {
+ // ui::network_icon::AnimationObserver
+ virtual void NetworkIconChanged() override {
UpdateNetworkStateHandlerIcon();
}
if (new_connection_status_string != connection_status_string_) {
connection_status_string_ = new_connection_status_string;
if(!connection_status_string_.empty())
- NotifyAccessibilityEvent(ui::AccessibilityTypes::EVENT_ALERT, true);
+ NotifyAccessibilityEvent(ui::AX_EVENT_ALERT, true);
}
}
};
class NetworkDefaultView : public TrayItemMore,
- public network_icon::AnimationObserver {
+ public ui::network_icon::AnimationObserver {
public:
NetworkDefaultView(TrayNetwork* network_tray, bool show_more)
: TrayItemMore(network_tray, show_more),
}
virtual ~NetworkDefaultView() {
- network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
+ ui::network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
}
void Update() {
gfx::ImageSkia image;
base::string16 label;
bool animating = false;
- network_icon::GetDefaultNetworkImageAndLabel(
- network_icon::ICON_TYPE_DEFAULT_VIEW, &image, &label, &animating);
+ ui::network_icon::GetDefaultNetworkImageAndLabel(
+ ui::network_icon::ICON_TYPE_DEFAULT_VIEW, &image, &label, &animating);
if (animating)
- network_icon::NetworkIconAnimation::GetInstance()->AddObserver(this);
+ ui::network_icon::NetworkIconAnimation::GetInstance()->AddObserver(this);
else
- network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
+ ui::network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(
+ this);
SetImage(&image);
SetLabel(label);
SetAccessibleName(label);
}
- // network_icon::AnimationObserver
- virtual void NetworkIconChanged() OVERRIDE {
+ // ui::network_icon::AnimationObserver
+ virtual void NetworkIconChanged() override {
Update();
}
// Overridden from NetworkDetailedView:
- virtual void Init() OVERRIDE {
+ virtual void Init() override {
}
- virtual NetworkDetailedView::DetailedViewType GetViewType() const OVERRIDE {
+ virtual NetworkDetailedView::DetailedViewType GetViewType() const override {
return NetworkDetailedView::WIFI_VIEW;
}
- virtual void ManagerChanged() OVERRIDE {
+ virtual void ManagerChanged() override {
Update();
}
- virtual void NetworkListChanged() OVERRIDE {
+ virtual void NetworkListChanged() override {
Update();
}
virtual void NetworkServiceChanged(
- const chromeos::NetworkState* network) OVERRIDE {
+ const chromeos::NetworkState* network) override {
}
private:
- virtual void Layout() OVERRIDE {
+ virtual void Layout() override {
// Center both views vertically.
views::View::Layout();
image_view_->SetY(
detailed_(NULL),
request_wifi_view_(false) {
network_state_observer_.reset(new TrayNetworkStateObserver(this));
- Shell::GetInstance()->system_tray_notifier()->AddNetworkObserver(this);
+ SystemTrayNotifier* notifier = Shell::GetInstance()->system_tray_notifier();
+ notifier->AddNetworkObserver(this);
+ notifier->AddNetworkPortalDetectorObserver(this);
}
TrayNetwork::~TrayNetwork() {
- Shell::GetInstance()->system_tray_notifier()->RemoveNetworkObserver(this);
+ SystemTrayNotifier* notifier = Shell::GetInstance()->system_tray_notifier();
+ notifier->RemoveNetworkObserver(this);
+ notifier->RemoveNetworkPortalDetectorObserver(this);
}
views::View* TrayNetwork::CreateTrayView(user::LoginStatus status) {
views::View* TrayNetwork::CreateDetailedView(user::LoginStatus status) {
CHECK(detailed_ == NULL);
+ Shell::GetInstance()->metrics()->RecordUserMetricsAction(
+ ash::UMA_STATUS_AREA_DETAILED_NETWORK_VIEW);
if (!chromeos::NetworkHandler::IsInitialized())
return NULL;
if (request_wifi_view_) {
}
NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler();
bool enabled = handler->IsTechnologyEnabled(NetworkTypePattern::WiFi());
+ Shell::GetInstance()->metrics()->RecordUserMetricsAction(
+ enabled ?
+ ash::UMA_STATUS_AREA_DISABLE_WIFI :
+ ash::UMA_STATUS_AREA_ENABLE_WIFI);
handler->SetTechnologyEnabled(NetworkTypePattern::WiFi(),
!enabled,
chromeos::network_handler::ErrorCallback());
}
+void TrayNetwork::OnCaptivePortalDetected(
+ const std::string& /* service_path */) {
+ NetworkStateChanged(false);
+}
+
void TrayNetwork::NetworkStateChanged(bool list_changed) {
if (tray_)
tray_->UpdateNetworkStateHandlerIcon();
detailed_->NetworkServiceChanged(network);
}
-} // namespace internal
} // namespace ash