| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/status/network_menu.h" | 5 #include "chrome/browser/chromeos/status/network_menu.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
| 10 #include "ash/shell_delegate.h" | 10 #include "ash/shell_delegate.h" |
| 11 #include "ash/system/chromeos/network/network_connect.h" | 11 #include "ash/system/chromeos/network/network_connect.h" |
| 12 #include "ash/system/chromeos/network/network_icon.h" |
| 12 #include "base/bind.h" | 13 #include "base/bind.h" |
| 13 #include "base/logging.h" | 14 #include "base/logging.h" |
| 14 #include "base/strings/stringprintf.h" | 15 #include "base/strings/stringprintf.h" |
| 15 #include "base/strings/utf_string_conversions.h" | 16 #include "base/strings/utf_string_conversions.h" |
| 16 #include "chrome/browser/chromeos/login/users/user_manager.h" | 17 #include "chrome/browser/chromeos/login/users/user_manager.h" |
| 17 #include "chrome/browser/chromeos/mobile_config.h" | 18 #include "chrome/browser/chromeos/mobile_config.h" |
| 18 #include "chrome/browser/chromeos/options/network_config_view.h" | 19 #include "chrome/browser/chromeos/options/network_config_view.h" |
| 19 #include "chrome/browser/chromeos/sim_dialog_delegate.h" | 20 #include "chrome/browser/chromeos/sim_dialog_delegate.h" |
| 20 #include "chrome/browser/chromeos/ui/choose_mobile_network_dialog.h" | 21 #include "chrome/browser/chromeos/ui/choose_mobile_network_dialog.h" |
| 21 #include "chrome/browser/defaults.h" | 22 #include "chrome/browser/defaults.h" |
| 22 #include "chrome/browser/profiles/profile_manager.h" | 23 #include "chrome/browser/profiles/profile_manager.h" |
| 23 #include "chrome/common/url_constants.h" | 24 #include "chrome/common/url_constants.h" |
| 24 #include "chromeos/network/device_state.h" | 25 #include "chromeos/network/device_state.h" |
| 25 #include "chromeos/network/network_state.h" | 26 #include "chromeos/network/network_state.h" |
| 26 #include "chromeos/network/network_state_handler.h" | 27 #include "chromeos/network/network_state_handler.h" |
| 27 #include "grit/ash_resources.h" | 28 #include "grit/ash_resources.h" |
| 28 #include "grit/ash_strings.h" | 29 #include "grit/ash_strings.h" |
| 29 #include "grit/generated_resources.h" | 30 #include "grit/generated_resources.h" |
| 30 #include "third_party/cros_system_api/dbus/service_constants.h" | 31 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 31 #include "ui/base/l10n/l10n_util.h" | 32 #include "ui/base/l10n/l10n_util.h" |
| 32 #include "ui/base/models/menu_model.h" | 33 #include "ui/base/models/menu_model.h" |
| 33 #include "ui/base/resource/resource_bundle.h" | 34 #include "ui/base/resource/resource_bundle.h" |
| 34 #include "ui/chromeos/network/network_icon.h" | |
| 35 #include "ui/gfx/image/image_skia.h" | 35 #include "ui/gfx/image/image_skia.h" |
| 36 | 36 |
| 37 namespace chromeos { | 37 namespace chromeos { |
| 38 | 38 |
| 39 namespace { | 39 namespace { |
| 40 | 40 |
| 41 // Offsets for views menu ids (main menu and submenu ids use the same | 41 // Offsets for views menu ids (main menu and submenu ids use the same |
| 42 // namespace). | 42 // namespace). |
| 43 const int kMainIndexMask = 0x1000; | 43 const int kMainIndexMask = 0x1000; |
| 44 const int kMoreIndexMask = 0x4000; | 44 const int kMoreIndexMask = 0x4000; |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 } else { | 356 } else { |
| 357 label = base::UTF8ToUTF16(wifi_name); | 357 label = base::UTF8ToUTF16(wifi_name); |
| 358 } | 358 } |
| 359 | 359 |
| 360 // We do not have convenient access to whether or not it might be possible | 360 // We do not have convenient access to whether or not it might be possible |
| 361 // to connect to a wireless network (e.g. whether certs are required), so all | 361 // to connect to a wireless network (e.g. whether certs are required), so all |
| 362 // entries are enabled. | 362 // entries are enabled. |
| 363 | 363 |
| 364 if (ShouldHighlightNetwork(network)) | 364 if (ShouldHighlightNetwork(network)) |
| 365 flag |= FLAG_ASSOCIATED; | 365 flag |= FLAG_ASSOCIATED; |
| 366 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( | 366 const gfx::ImageSkia icon = ash::network_icon::GetImageForNetwork( |
| 367 network, ui::network_icon::ICON_TYPE_LIST); | 367 network, ash::network_icon::ICON_TYPE_LIST); |
| 368 menu_items_.push_back( | 368 menu_items_.push_back( |
| 369 MenuItem(ui::MenuModel::TYPE_COMMAND, | 369 MenuItem(ui::MenuModel::TYPE_COMMAND, |
| 370 label, icon, network->path(), flag)); | 370 label, icon, network->path(), flag)); |
| 371 } | 371 } |
| 372 | 372 |
| 373 void MainMenuModel::AddMessageItem(const base::string16& msg) { | 373 void MainMenuModel::AddMessageItem(const base::string16& msg) { |
| 374 menu_items_.push_back(MenuItem( | 374 menu_items_.push_back(MenuItem( |
| 375 ui::MenuModel::TYPE_COMMAND, msg, | 375 ui::MenuModel::TYPE_COMMAND, msg, |
| 376 gfx::ImageSkia(), std::string(), FLAG_DISABLED)); | 376 gfx::ImageSkia(), std::string(), FLAG_DISABLED)); |
| 377 } | 377 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 396 label = l10n_util::GetStringFUTF16( | 396 label = l10n_util::GetStringFUTF16( |
| 397 IDS_STATUSBAR_NETWORK_DEVICE_STATUS, | 397 IDS_STATUSBAR_NETWORK_DEVICE_STATUS, |
| 398 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET), | 398 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET), |
| 399 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); | 399 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); |
| 400 } else { | 400 } else { |
| 401 label = l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); | 401 label = l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); |
| 402 } | 402 } |
| 403 int flag = FLAG_ETHERNET; | 403 int flag = FLAG_ETHERNET; |
| 404 if (ShouldHighlightNetwork(ethernet_network)) | 404 if (ShouldHighlightNetwork(ethernet_network)) |
| 405 flag |= FLAG_ASSOCIATED; | 405 flag |= FLAG_ASSOCIATED; |
| 406 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( | 406 const gfx::ImageSkia icon = ash::network_icon::GetImageForNetwork( |
| 407 ethernet_network, ui::network_icon::ICON_TYPE_LIST); | 407 ethernet_network, ash::network_icon::ICON_TYPE_LIST); |
| 408 menu_items_.push_back(MenuItem(ui::MenuModel::TYPE_COMMAND, | 408 menu_items_.push_back(MenuItem(ui::MenuModel::TYPE_COMMAND, |
| 409 label, icon, std::string(), flag)); | 409 label, icon, std::string(), flag)); |
| 410 } | 410 } |
| 411 | 411 |
| 412 // Get the list of all networks. | 412 // Get the list of all networks. |
| 413 NetworkStateHandler::NetworkStateList network_list; | 413 NetworkStateHandler::NetworkStateList network_list; |
| 414 handler->GetVisibleNetworkList(&network_list); | 414 handler->GetVisibleNetworkList(&network_list); |
| 415 | 415 |
| 416 // Cellular Networks | 416 // Cellular Networks |
| 417 if (handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) { | 417 if (handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 437 base::UTF8ToUTF16(network_name), | 437 base::UTF8ToUTF16(network_name), |
| 438 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); | 438 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); |
| 439 } else { | 439 } else { |
| 440 label = base::UTF8ToUTF16(network_name); | 440 label = base::UTF8ToUTF16(network_name); |
| 441 } | 441 } |
| 442 | 442 |
| 443 int flag = FLAG_CELLULAR; | 443 int flag = FLAG_CELLULAR; |
| 444 bool isActive = ShouldHighlightNetwork(network); | 444 bool isActive = ShouldHighlightNetwork(network); |
| 445 if (isActive) | 445 if (isActive) |
| 446 flag |= FLAG_ASSOCIATED; | 446 flag |= FLAG_ASSOCIATED; |
| 447 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( | 447 const gfx::ImageSkia icon = ash::network_icon::GetImageForNetwork( |
| 448 network, ui::network_icon::ICON_TYPE_LIST); | 448 network, ash::network_icon::ICON_TYPE_LIST); |
| 449 menu_items_.push_back( | 449 menu_items_.push_back( |
| 450 MenuItem(ui::MenuModel::TYPE_COMMAND, | 450 MenuItem(ui::MenuModel::TYPE_COMMAND, |
| 451 label, icon, network->path(), flag)); | 451 label, icon, network->path(), flag)); |
| 452 } | 452 } |
| 453 | 453 |
| 454 // For GSM add cellular network scan. | 454 // For GSM add cellular network scan. |
| 455 const DeviceState* cellular_device = | 455 const DeviceState* cellular_device = |
| 456 handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); | 456 handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); |
| 457 if (cellular_device && cellular_device->support_network_scan()) { | 457 if (cellular_device && cellular_device->support_network_scan()) { |
| 458 const gfx::ImageSkia icon = | 458 const gfx::ImageSkia icon = |
| 459 ui::network_icon::GetImageForDisconnectedNetwork( | 459 ash::network_icon::GetImageForDisconnectedNetwork( |
| 460 ui::network_icon::ICON_TYPE_LIST, shill::kTypeCellular); | 460 ash::network_icon::ICON_TYPE_LIST, shill::kTypeCellular); |
| 461 menu_items_.push_back(MenuItem( | 461 menu_items_.push_back(MenuItem( |
| 462 ui::MenuModel::TYPE_COMMAND, | 462 ui::MenuModel::TYPE_COMMAND, |
| 463 l10n_util::GetStringUTF16( | 463 l10n_util::GetStringUTF16( |
| 464 IDS_OPTIONS_SETTINGS_OTHER_CELLULAR_NETWORKS), | 464 IDS_OPTIONS_SETTINGS_OTHER_CELLULAR_NETWORKS), |
| 465 icon, std::string(), FLAG_ADD_CELLULAR)); | 465 icon, std::string(), FLAG_ADD_CELLULAR)); |
| 466 } | 466 } |
| 467 } else { | 467 } else { |
| 468 int initializing_message_id = | 468 int initializing_message_id = |
| 469 ui::network_icon::GetCellularUninitializedMsg(); | 469 ash::network_icon::GetCellularUninitializedMsg(); |
| 470 if (initializing_message_id) { | 470 if (initializing_message_id) { |
| 471 // Initializing cellular modem... | 471 // Initializing cellular modem... |
| 472 AddMessageItem(l10n_util::GetStringUTF16(initializing_message_id)); | 472 AddMessageItem(l10n_util::GetStringUTF16(initializing_message_id)); |
| 473 } | 473 } |
| 474 } | 474 } |
| 475 | 475 |
| 476 // Wimax Networks | 476 // Wimax Networks |
| 477 if (handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())) { | 477 if (handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())) { |
| 478 // List Wimax networks. | 478 // List Wimax networks. |
| 479 for (NetworkStateHandler::NetworkStateList::const_iterator iter = | 479 for (NetworkStateHandler::NetworkStateList::const_iterator iter = |
| (...skipping 18 matching lines...) Expand all Loading... |
| 498 continue; | 498 continue; |
| 499 // Add 'Searching for Wi-Fi networks...' after connected networks. | 499 // Add 'Searching for Wi-Fi networks...' after connected networks. |
| 500 if (scanning_msg && !network->IsConnectedState()) { | 500 if (scanning_msg && !network->IsConnectedState()) { |
| 501 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); | 501 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); |
| 502 scanning_msg = 0; | 502 scanning_msg = 0; |
| 503 } | 503 } |
| 504 AddWirelessNetworkMenuItem(network, FLAG_WIFI); | 504 AddWirelessNetworkMenuItem(network, FLAG_WIFI); |
| 505 } | 505 } |
| 506 if (scanning_msg) | 506 if (scanning_msg) |
| 507 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); | 507 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); |
| 508 const gfx::ImageSkia icon = ui::network_icon::GetImageForConnectedNetwork( | 508 const gfx::ImageSkia icon = |
| 509 ui::network_icon::ICON_TYPE_LIST, shill::kTypeWifi); | 509 ash::network_icon::GetImageForConnectedNetwork( |
| 510 ash::network_icon::ICON_TYPE_LIST, shill::kTypeWifi); |
| 510 menu_items_.push_back(MenuItem( | 511 menu_items_.push_back(MenuItem( |
| 511 ui::MenuModel::TYPE_COMMAND, | 512 ui::MenuModel::TYPE_COMMAND, |
| 512 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_WIFI_NETWORKS), | 513 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_WIFI_NETWORKS), |
| 513 icon, std::string(), FLAG_ADD_WIFI)); | 514 icon, std::string(), FLAG_ADD_WIFI)); |
| 514 } | 515 } |
| 515 | 516 |
| 516 if (menu_items_.empty()) { | 517 if (menu_items_.empty()) { |
| 517 // No networks available (and not initializing cellular or wifi scanning) | 518 // No networks available (and not initializing cellular or wifi scanning) |
| 518 AddMessageItem(l10n_util::GetStringFUTF16( | 519 AddMessageItem(l10n_util::GetStringFUTF16( |
| 519 IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, | 520 IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 671 return main_menu_model_.get(); | 672 return main_menu_model_.get(); |
| 672 } | 673 } |
| 673 | 674 |
| 674 void NetworkMenu::UpdateMenu() { | 675 void NetworkMenu::UpdateMenu() { |
| 675 refreshing_menu_ = true; | 676 refreshing_menu_ = true; |
| 676 main_menu_model_->InitMenuItems(delegate_->ShouldOpenButtonOptions()); | 677 main_menu_model_->InitMenuItems(delegate_->ShouldOpenButtonOptions()); |
| 677 refreshing_menu_ = false; | 678 refreshing_menu_ = false; |
| 678 } | 679 } |
| 679 | 680 |
| 680 } // namespace chromeos | 681 } // namespace chromeos |
| OLD | NEW |