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

Unified Diff: athena/system/network_selector.cc

Issue 863033002: Delete athena/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 | « athena/system/network_selector.h ('k') | athena/system/orientation_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: athena/system/network_selector.cc
diff --git a/athena/system/network_selector.cc b/athena/system/network_selector.cc
deleted file mode 100644
index 86450d4b822cbf9b08686d5aae9bc36b951b1822..0000000000000000000000000000000000000000
--- a/athena/system/network_selector.cc
+++ /dev/null
@@ -1,436 +0,0 @@
-// Copyright 2014 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 "athena/system/network_selector.h"
-
-#include "athena/screen/public/screen_manager.h"
-#include "base/memory/weak_ptr.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chromeos/network/network_configuration_handler.h"
-#include "chromeos/network/network_connection_handler.h"
-#include "chromeos/network/network_handler.h"
-#include "chromeos/network/network_profile_handler.h"
-#include "chromeos/network/network_state.h"
-#include "chromeos/network/network_state_handler.h"
-#include "chromeos/network/network_state_handler_observer.h"
-#include "chromeos/network/network_type_pattern.h"
-#include "third_party/cros_system_api/dbus/service_constants.h"
-#include "ui/aura/window.h"
-#include "ui/chromeos/network/network_icon.h"
-#include "ui/chromeos/network/network_info.h"
-#include "ui/chromeos/network/network_list.h"
-#include "ui/chromeos/network/network_list_delegate.h"
-#include "ui/compositor/layer.h"
-#include "ui/gfx/canvas.h"
-#include "ui/gfx/font.h"
-#include "ui/gfx/font_list.h"
-#include "ui/gfx/geometry/rect.h"
-#include "ui/gfx/text_constants.h"
-#include "ui/views/background.h"
-#include "ui/views/border.h"
-#include "ui/views/controls/button/blue_button.h"
-#include "ui/views/controls/button/button.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/controls/scroll_view.h"
-#include "ui/views/controls/scrollbar/overlay_scroll_bar.h"
-#include "ui/views/controls/textfield/textfield.h"
-#include "ui/views/layout/box_layout.h"
-#include "ui/views/layout/fill_layout.h"
-#include "ui/views/widget/widget.h"
-#include "ui/views/window/dialog_delegate.h"
-
-using chromeos::NetworkConfigurationHandler;
-using chromeos::NetworkConfigurationObserver;
-using chromeos::NetworkConnectionHandler;
-using chromeos::NetworkHandler;
-using chromeos::NetworkProfileHandler;
-using chromeos::NetworkState;
-
-namespace {
-
-// The View for the user to enter the password for connceting to a network. This
-// view also shows an error message if the network connection fails.
-class PasswordView : public views::View, public views::ButtonListener {
- public:
- PasswordView(const ui::NetworkInfo& network,
- const base::Callback<void(bool)>& callback)
- : network_(network),
- callback_(callback),
- connect_(nullptr),
- cancel_(nullptr),
- textfield_(nullptr),
- error_msg_(nullptr),
- weak_ptr_(this) {
- const int kHorizontal = 5;
- const int kVertical = 0;
- const int kPadding = 0;
-
- views::BoxLayout* layout = new views::BoxLayout(
- views::BoxLayout::kVertical, kHorizontal, kVertical, kPadding);
- layout->set_main_axis_alignment(
- views::BoxLayout::MAIN_AXIS_ALIGNMENT_START);
- layout->set_cross_axis_alignment(
- views::BoxLayout::CROSS_AXIS_ALIGNMENT_STRETCH);
- SetLayoutManager(layout);
-
- views::View* container = new views::View;
- layout = new views::BoxLayout(
- views::BoxLayout::kHorizontal, kHorizontal, kVertical, kPadding);
- layout->set_main_axis_alignment(
- views::BoxLayout::MAIN_AXIS_ALIGNMENT_START);
- container->SetLayoutManager(layout);
-
- textfield_ = new views::Textfield();
- textfield_->set_placeholder_text(base::ASCIIToUTF16("Password"));
- textfield_->SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD);
- textfield_->set_default_width_in_chars(35);
- container->AddChildView(textfield_);
-
- connect_ = new views::BlueButton(this, base::ASCIIToUTF16("Connect"));
- container->AddChildView(connect_);
-
- cancel_ = new views::LabelButton(this, base::ASCIIToUTF16("Cancel"));
- cancel_->SetHorizontalAlignment(gfx::ALIGN_CENTER);
- container->AddChildView(cancel_);
-
- AddChildView(container);
- }
-
- ~PasswordView() override {}
-
- private:
- void CloseDialog(bool successful) { callback_.Run(successful); }
-
- void OnKnownError(const std::string& error_name,
- scoped_ptr<base::DictionaryValue> error_data) {
- std::string message;
- if (!error_data->GetString(chromeos::network_handler::kDbusErrorMessage,
- &message))
- message = error_name;
- if (message.empty())
- message = std::string("Unknown error.");
- if (!error_msg_) {
- error_msg_ = new views::Label();
- error_msg_->SetFontList(
- error_msg_->font_list().Derive(0, gfx::Font::BOLD));
- error_msg_->SetEnabledColor(SK_ColorRED);
- }
- error_msg_->SetText(base::UTF8ToUTF16(message));
- if (!error_msg_->parent()) {
- AddChildView(error_msg_);
- InvalidateLayout();
- GetWidget()->GetRootView()->Layout();
- ScrollRectToVisible(error_msg_->bounds());
- }
- connect_->SetEnabled(true);
- }
-
- void OnSetProfileSucceed(const base::string16& password) {
- base::DictionaryValue properties;
- properties.SetStringWithoutPathExpansion(shill::kPassphraseProperty,
- textfield_->text());
- NetworkHandler::Get()->network_configuration_handler()->SetProperties(
- network_.service_path,
- properties,
- NetworkConfigurationObserver::SOURCE_USER_ACTION,
- base::Bind(&PasswordView::OnSetPropertiesSucceed,
- weak_ptr_.GetWeakPtr()),
- base::Bind(&PasswordView::OnKnownError, weak_ptr_.GetWeakPtr()));
- }
-
- void OnSetPropertiesSucceed() {
- const bool check_error_state = false;
- NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork(
- network_.service_path,
- base::Bind(&PasswordView::OnConnectionSucceed, weak_ptr_.GetWeakPtr()),
- base::Bind(&PasswordView::OnKnownError, weak_ptr_.GetWeakPtr()),
- check_error_state);
- }
-
- void OnConnectionSucceed() { CloseDialog(true); }
-
- // views::View:
- virtual void ViewHierarchyChanged(
- const views::View::ViewHierarchyChangedDetails& details) override {
- if (details.is_add && details.child == this)
- textfield_->RequestFocus();
- }
-
- // views::ButtonListener:
- virtual void ButtonPressed(views::Button* sender,
- const ui::Event& event) override {
- if (sender == connect_) {
- if (error_msg_) {
- RemoveChildView(error_msg_);
- delete error_msg_;
- error_msg_ = nullptr;
- }
- connect_->SetEnabled(false);
- NetworkHandler::Get()->network_configuration_handler()->SetNetworkProfile(
- network_.service_path,
- NetworkProfileHandler::GetSharedProfilePath(),
- NetworkConfigurationObserver::SOURCE_USER_ACTION,
- base::Bind(&PasswordView::OnSetProfileSucceed,
- weak_ptr_.GetWeakPtr(),
- textfield_->text()),
- base::Bind(&PasswordView::OnKnownError, weak_ptr_.GetWeakPtr()));
- } else if (sender == cancel_) {
- CloseDialog(false);
- } else {
- NOTREACHED();
- }
- }
-
- ui::NetworkInfo network_;
- base::Callback<void(bool)> callback_;
-
- views::BlueButton* connect_;
- views::LabelButton* cancel_;
- views::Textfield* textfield_;
- views::Label* error_msg_;
- base::WeakPtrFactory<PasswordView> weak_ptr_;
-
- DISALLOW_COPY_AND_ASSIGN(PasswordView);
-};
-
-// A View that represents a single row in the network list. This row also
-// contains the View for taking password for password-protected networks.
-class NetworkRow : public views::View {
- public:
- NetworkRow(const ui::NetworkInfo& network)
- : network_(network), weak_ptr_(this) {
- SetBorder(views::Border::CreateEmptyBorder(10, 5, 10, 5));
- SetLayoutManager(
- new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 10));
- Update(network);
- }
-
- ~NetworkRow() override {}
-
- void Update(const ui::NetworkInfo& network) {
- network_ = network;
- views::ImageView* icon = new views::ImageView();
- icon->SetImage(network.image);
- icon->SetBounds(0, 0, network.image.width(), network.image.height());
-
- views::Label* label = new views::Label(network.label);
- if (network.highlight)
- label->SetFontList(label->font_list().Derive(0, gfx::Font::BOLD));
- AddChildView(icon);
- AddChildView(label);
- if (password_view_)
- AddChildView(password_view_.get());
- }
-
- bool has_password_view() const { return password_view_; }
-
- private:
- void OnPasswordComplete(bool successful) {
- password_view_.reset();
- InvalidateLayout();
- GetWidget()->GetRootView()->Layout();
- ScrollRectToVisible(GetContentsBounds());
- }
-
- void ShowPasswordView(const std::string& service_path) {
- const NetworkState* network =
- NetworkHandler::Get()->network_state_handler()->GetNetworkState(
- service_path);
- if (!network)
- return;
-
- // If this is not a wifi network that needs a password, then ignore.
- if (network->type() != shill::kTypeWifi ||
- network->security_class() == shill::kSecurityNone) {
- return;
- }
-
- password_view_.reset(new PasswordView(
- network_,
- base::Bind(&NetworkRow::OnPasswordComplete, weak_ptr_.GetWeakPtr())));
- password_view_->set_owned_by_client();
- AddChildView(password_view_.get());
- PreferredSizeChanged();
- GetWidget()->GetRootView()->Layout();
- ScrollRectToVisible(password_view_->bounds());
- }
-
- void OnNetworkConnectionError(const std::string& service_path,
- const std::string& error_name,
- scoped_ptr<base::DictionaryValue> error_data) {
- if (error_name == NetworkConnectionHandler::kErrorConnectCanceled)
- return;
- if (error_name == shill::kErrorBadPassphrase ||
- error_name == NetworkConnectionHandler::kErrorPassphraseRequired ||
- error_name == NetworkConnectionHandler::kErrorConfigurationRequired ||
- error_name == NetworkConnectionHandler::kErrorAuthenticationRequired) {
- ShowPasswordView(service_path);
- }
- }
-
- void ActivateNetwork() {
- const chromeos::NetworkState* network =
- NetworkHandler::Get()->network_state_handler()->GetNetworkState(
- network_.service_path);
- if (!network)
- return;
- if (network->IsConnectedState()) {
- NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork(
- network_.service_path,
- base::Closure(),
- chromeos::network_handler::ErrorCallback());
- } else if (!network->IsConnectingState()) {
- // |network| is not connected, and not already trying to connect.
- NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork(
- network_.service_path,
- base::Closure(),
- base::Bind(&NetworkRow::OnNetworkConnectionError,
- weak_ptr_.GetWeakPtr(),
- network_.service_path),
- false);
- }
- }
-
- // views::View:
- virtual void OnMouseEvent(ui::MouseEvent* event) override {
- if (event->type() != ui::ET_MOUSE_PRESSED)
- return;
- ActivateNetwork();
- event->SetHandled();
- }
-
- virtual void OnGestureEvent(ui::GestureEvent* gesture) override {
- if (gesture->type() != ui::ET_GESTURE_TAP)
- return;
- ActivateNetwork();
- gesture->SetHandled();
- }
-
- ui::NetworkInfo network_;
- scoped_ptr<views::View> password_view_;
- base::WeakPtrFactory<NetworkRow> weak_ptr_;
-
- DISALLOW_COPY_AND_ASSIGN(NetworkRow);
-};
-
-class NetworkSelector : public ui::NetworkListDelegate,
- public chromeos::NetworkStateHandlerObserver,
- public views::DialogDelegate {
- public:
- NetworkSelector()
- : scroll_content_(nullptr), scroller_(nullptr), network_list_(this) {
- CreateNetworkList();
- CreateWidget();
-
- NetworkHandler::Get()->network_state_handler()->RequestScan();
- NetworkHandler::Get()->network_state_handler()->AddObserver(this,
- FROM_HERE);
- }
-
- ~NetworkSelector() override {
- NetworkHandler::Get()->network_state_handler()->RemoveObserver(this,
- FROM_HERE);
- }
-
- private:
- void CreateWidget() {
- // Same as CreateDialogWidgetWithBounds() with an empty |bounds|.
- views::Widget* widget = views::DialogDelegate::CreateDialogWidget(
- this, athena::ScreenManager::Get()->GetContext(), nullptr);
- widget->Show();
- widget->CenterWindow(gfx::Size(400, 400));
- }
-
- void CreateNetworkList() {
- const int kListHeight = 400;
- scroller_ = new views::ScrollView();
- scroller_->set_background(
- views::Background::CreateSolidBackground(SK_ColorWHITE));
-
- scroll_content_ = new views::View;
- scroll_content_->SetLayoutManager(
- new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 0));
- scroller_->SetContents(scroll_content_);
-
- scroller_->ClipHeightTo(kListHeight, kListHeight);
- scroller_->SetVerticalScrollBar(new views::OverlayScrollBar(false));
-
- network_list_.set_content_view(scroll_content_);
- }
-
- void UpdateNetworkList() { network_list_.UpdateNetworkList(); }
-
- // ui::NetworkListDelegate:
- virtual views::View* CreateViewForNetwork(
- const ui::NetworkInfo& info) override {
- return new NetworkRow(info);
- }
-
- virtual bool IsViewHovered(views::View* view) override {
- return static_cast<NetworkRow*>(view)->has_password_view();
- }
-
- virtual chromeos::NetworkTypePattern GetNetworkTypePattern() const override {
- return chromeos::NetworkTypePattern::NonVirtual();
- }
-
- virtual void UpdateViewForNetwork(views::View* view,
- const ui::NetworkInfo& info) override {
- static_cast<NetworkRow*>(view)->Update(info);
- }
-
- virtual views::Label* CreateInfoLabel() override {
- views::Label* label = new views::Label();
- return label;
- }
-
- virtual void RelayoutScrollList() override { scroller_->Layout(); }
-
- // chromeos::NetworkStateHandlerObserver:
- virtual void NetworkListChanged() override { UpdateNetworkList(); }
-
- virtual void DeviceListChanged() override {}
-
- virtual void DefaultNetworkChanged(
- const chromeos::NetworkState* network) override {}
-
- virtual void NetworkConnectionStateChanged(
- const chromeos::NetworkState* network) override {}
-
- virtual void NetworkPropertiesUpdated(
- const chromeos::NetworkState* network) override {}
-
- // views::DialogDelegate:
- virtual ui::ModalType GetModalType() const override {
- return ui::MODAL_TYPE_SYSTEM;
- }
- virtual void DeleteDelegate() override { delete this; }
- virtual views::Widget* GetWidget() override { return scroller_->GetWidget(); }
- virtual const views::Widget* GetWidget() const override {
- return scroller_->GetWidget();
- }
- virtual views::View* GetContentsView() override { return scroller_; }
- virtual int GetDialogButtons() const override { return ui::DIALOG_BUTTON_OK; }
- virtual bool Close() override { return true; }
-
- views::View* scroll_content_;
- views::ScrollView* scroller_;
-
- views::View* connect_;
-
- ui::NetworkListView network_list_;
-
- DISALLOW_COPY_AND_ASSIGN(NetworkSelector);
-};
-
-} // namespace
-
-namespace athena {
-
-void CreateNetworkSelector() {
- new NetworkSelector();
-}
-
-} // namespace athena
« no previous file with comments | « athena/system/network_selector.h ('k') | athena/system/orientation_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698