| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| 11 #include "ash/common/strings/grit/ash_strings.h" |
| 12 #include "ash/common/system/chromeos/network/network_icon.h" |
| 11 #include "base/bind.h" | 13 #include "base/bind.h" |
| 12 #include "base/logging.h" | 14 #include "base/logging.h" |
| 13 #include "base/macros.h" | 15 #include "base/macros.h" |
| 14 #include "base/strings/stringprintf.h" | 16 #include "base/strings/stringprintf.h" |
| 15 #include "base/strings/utf_string_conversions.h" | 17 #include "base/strings/utf_string_conversions.h" |
| 16 #include "chrome/browser/chromeos/mobile_config.h" | 18 #include "chrome/browser/chromeos/mobile_config.h" |
| 17 #include "chrome/browser/chromeos/options/network_config_view.h" | 19 #include "chrome/browser/chromeos/options/network_config_view.h" |
| 18 #include "chrome/browser/chromeos/sim_dialog_delegate.h" | 20 #include "chrome/browser/chromeos/sim_dialog_delegate.h" |
| 19 #include "chrome/browser/chromeos/ui/choose_mobile_network_dialog.h" | 21 #include "chrome/browser/chromeos/ui/choose_mobile_network_dialog.h" |
| 20 #include "chrome/browser/defaults.h" | 22 #include "chrome/browser/defaults.h" |
| 21 #include "chrome/browser/profiles/profile_manager.h" | 23 #include "chrome/browser/profiles/profile_manager.h" |
| 22 #include "chrome/common/url_constants.h" | 24 #include "chrome/common/url_constants.h" |
| 23 #include "chrome/grit/generated_resources.h" | 25 #include "chrome/grit/generated_resources.h" |
| 24 #include "chromeos/network/device_state.h" | 26 #include "chromeos/network/device_state.h" |
| 25 #include "chromeos/network/network_connect.h" | 27 #include "chromeos/network/network_connect.h" |
| 26 #include "chromeos/network/network_state.h" | 28 #include "chromeos/network/network_state.h" |
| 27 #include "chromeos/network/network_state_handler.h" | 29 #include "chromeos/network/network_state_handler.h" |
| 28 #include "third_party/cros_system_api/dbus/service_constants.h" | 30 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 29 #include "ui/base/l10n/l10n_util.h" | 31 #include "ui/base/l10n/l10n_util.h" |
| 30 #include "ui/base/models/menu_model.h" | 32 #include "ui/base/models/menu_model.h" |
| 31 #include "ui/base/resource/resource_bundle.h" | 33 #include "ui/base/resource/resource_bundle.h" |
| 32 #include "ui/chromeos/network/network_icon.h" | |
| 33 #include "ui/chromeos/strings/grit/ui_chromeos_strings.h" | |
| 34 #include "ui/gfx/image/image_skia.h" | 34 #include "ui/gfx/image/image_skia.h" |
| 35 | 35 |
| 36 namespace chromeos { | 36 namespace chromeos { |
| 37 | 37 |
| 38 namespace { | 38 namespace { |
| 39 | 39 |
| 40 // Offsets for views menu ids (main menu and submenu ids use the same | 40 // Offsets for views menu ids (main menu and submenu ids use the same |
| 41 // namespace). | 41 // namespace). |
| 42 const int kMainIndexMask = 0x1000; | 42 const int kMainIndexMask = 0x1000; |
| 43 const int kMoreIndexMask = 0x4000; | 43 const int kMoreIndexMask = 0x4000; |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 } else { | 360 } else { |
| 361 label = base::UTF8ToUTF16(wifi_name); | 361 label = base::UTF8ToUTF16(wifi_name); |
| 362 } | 362 } |
| 363 | 363 |
| 364 // We do not have convenient access to whether or not it might be possible | 364 // We do not have convenient access to whether or not it might be possible |
| 365 // to connect to a wireless network (e.g. whether certs are required), so all | 365 // to connect to a wireless network (e.g. whether certs are required), so all |
| 366 // entries are enabled. | 366 // entries are enabled. |
| 367 | 367 |
| 368 if (ShouldHighlightNetwork(network)) | 368 if (ShouldHighlightNetwork(network)) |
| 369 flag |= FLAG_ASSOCIATED; | 369 flag |= FLAG_ASSOCIATED; |
| 370 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( | 370 const gfx::ImageSkia icon = ash::network_icon::GetImageForNetwork( |
| 371 network, ui::network_icon::ICON_TYPE_LIST); | 371 network, ash::network_icon::ICON_TYPE_LIST); |
| 372 menu_items_.push_back( | 372 menu_items_.push_back( |
| 373 MenuItem(ui::MenuModel::TYPE_COMMAND, | 373 MenuItem(ui::MenuModel::TYPE_COMMAND, |
| 374 label, icon, network->path(), flag)); | 374 label, icon, network->path(), flag)); |
| 375 } | 375 } |
| 376 | 376 |
| 377 void MainMenuModel::AddMessageItem(const base::string16& msg) { | 377 void MainMenuModel::AddMessageItem(const base::string16& msg) { |
| 378 menu_items_.push_back(MenuItem( | 378 menu_items_.push_back(MenuItem( |
| 379 ui::MenuModel::TYPE_COMMAND, msg, | 379 ui::MenuModel::TYPE_COMMAND, msg, |
| 380 gfx::ImageSkia(), std::string(), FLAG_DISABLED)); | 380 gfx::ImageSkia(), std::string(), FLAG_DISABLED)); |
| 381 } | 381 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 400 label = l10n_util::GetStringFUTF16( | 400 label = l10n_util::GetStringFUTF16( |
| 401 IDS_STATUSBAR_NETWORK_DEVICE_STATUS, | 401 IDS_STATUSBAR_NETWORK_DEVICE_STATUS, |
| 402 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET), | 402 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET), |
| 403 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); | 403 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); |
| 404 } else { | 404 } else { |
| 405 label = l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); | 405 label = l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); |
| 406 } | 406 } |
| 407 int flag = FLAG_ETHERNET; | 407 int flag = FLAG_ETHERNET; |
| 408 if (ShouldHighlightNetwork(ethernet_network)) | 408 if (ShouldHighlightNetwork(ethernet_network)) |
| 409 flag |= FLAG_ASSOCIATED; | 409 flag |= FLAG_ASSOCIATED; |
| 410 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( | 410 const gfx::ImageSkia icon = ash::network_icon::GetImageForNetwork( |
| 411 ethernet_network, ui::network_icon::ICON_TYPE_LIST); | 411 ethernet_network, ash::network_icon::ICON_TYPE_LIST); |
| 412 menu_items_.push_back(MenuItem(ui::MenuModel::TYPE_COMMAND, | 412 menu_items_.push_back(MenuItem(ui::MenuModel::TYPE_COMMAND, |
| 413 label, icon, std::string(), flag)); | 413 label, icon, std::string(), flag)); |
| 414 } | 414 } |
| 415 | 415 |
| 416 // Get the list of all networks. | 416 // Get the list of all networks. |
| 417 NetworkStateHandler::NetworkStateList network_list; | 417 NetworkStateHandler::NetworkStateList network_list; |
| 418 handler->GetVisibleNetworkList(&network_list); | 418 handler->GetVisibleNetworkList(&network_list); |
| 419 | 419 |
| 420 // Cellular Networks | 420 // Cellular Networks |
| 421 if (handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) { | 421 if (handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 441 base::UTF8ToUTF16(network_name), | 441 base::UTF8ToUTF16(network_name), |
| 442 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); | 442 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); |
| 443 } else { | 443 } else { |
| 444 label = base::UTF8ToUTF16(network_name); | 444 label = base::UTF8ToUTF16(network_name); |
| 445 } | 445 } |
| 446 | 446 |
| 447 int flag = FLAG_CELLULAR; | 447 int flag = FLAG_CELLULAR; |
| 448 bool isActive = ShouldHighlightNetwork(network); | 448 bool isActive = ShouldHighlightNetwork(network); |
| 449 if (isActive) | 449 if (isActive) |
| 450 flag |= FLAG_ASSOCIATED; | 450 flag |= FLAG_ASSOCIATED; |
| 451 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( | 451 const gfx::ImageSkia icon = ash::network_icon::GetImageForNetwork( |
| 452 network, ui::network_icon::ICON_TYPE_LIST); | 452 network, ash::network_icon::ICON_TYPE_LIST); |
| 453 menu_items_.push_back( | 453 menu_items_.push_back( |
| 454 MenuItem(ui::MenuModel::TYPE_COMMAND, | 454 MenuItem(ui::MenuModel::TYPE_COMMAND, |
| 455 label, icon, network->path(), flag)); | 455 label, icon, network->path(), flag)); |
| 456 } | 456 } |
| 457 | 457 |
| 458 // For GSM add cellular network scan. | 458 // For GSM add cellular network scan. |
| 459 const DeviceState* cellular_device = | 459 const DeviceState* cellular_device = |
| 460 handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); | 460 handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); |
| 461 if (cellular_device && cellular_device->support_network_scan()) { | 461 if (cellular_device && cellular_device->support_network_scan()) { |
| 462 const gfx::ImageSkia icon = | 462 const gfx::ImageSkia icon = |
| 463 ui::network_icon::GetImageForDisconnectedCellNetwork(); | 463 ash::network_icon::GetImageForDisconnectedCellNetwork(); |
| 464 menu_items_.push_back(MenuItem( | 464 menu_items_.push_back(MenuItem( |
| 465 ui::MenuModel::TYPE_COMMAND, | 465 ui::MenuModel::TYPE_COMMAND, |
| 466 l10n_util::GetStringUTF16( | 466 l10n_util::GetStringUTF16( |
| 467 IDS_OPTIONS_SETTINGS_OTHER_CELLULAR_NETWORKS), | 467 IDS_OPTIONS_SETTINGS_OTHER_CELLULAR_NETWORKS), |
| 468 icon, std::string(), FLAG_ADD_CELLULAR)); | 468 icon, std::string(), FLAG_ADD_CELLULAR)); |
| 469 } | 469 } |
| 470 } else { | 470 } else { |
| 471 int initializing_message_id = | 471 int initializing_message_id = |
| 472 ui::network_icon::GetCellularUninitializedMsg(); | 472 ash::network_icon::GetCellularUninitializedMsg(); |
| 473 if (initializing_message_id) { | 473 if (initializing_message_id) { |
| 474 // Initializing cellular modem... | 474 // Initializing cellular modem... |
| 475 AddMessageItem(l10n_util::GetStringUTF16(initializing_message_id)); | 475 AddMessageItem(l10n_util::GetStringUTF16(initializing_message_id)); |
| 476 } | 476 } |
| 477 } | 477 } |
| 478 | 478 |
| 479 // Wimax Networks | 479 // Wimax Networks |
| 480 if (handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())) { | 480 if (handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())) { |
| 481 // List Wimax networks. | 481 // List Wimax networks. |
| 482 for (NetworkStateHandler::NetworkStateList::const_iterator iter = | 482 for (NetworkStateHandler::NetworkStateList::const_iterator iter = |
| (...skipping 19 matching lines...) Expand all Loading... |
| 502 // Add 'Searching for Wi-Fi networks...' after connected networks. | 502 // Add 'Searching for Wi-Fi networks...' after connected networks. |
| 503 if (scanning_msg && !network->IsConnectedState()) { | 503 if (scanning_msg && !network->IsConnectedState()) { |
| 504 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); | 504 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); |
| 505 scanning_msg = 0; | 505 scanning_msg = 0; |
| 506 } | 506 } |
| 507 AddWirelessNetworkMenuItem(network, FLAG_WIFI); | 507 AddWirelessNetworkMenuItem(network, FLAG_WIFI); |
| 508 } | 508 } |
| 509 if (scanning_msg) | 509 if (scanning_msg) |
| 510 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); | 510 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); |
| 511 const gfx::ImageSkia icon = | 511 const gfx::ImageSkia icon = |
| 512 ui::network_icon::GetImageForConnectedMobileNetwork(); | 512 ash::network_icon::GetImageForConnectedMobileNetwork(); |
| 513 menu_items_.push_back(MenuItem( | 513 menu_items_.push_back(MenuItem( |
| 514 ui::MenuModel::TYPE_COMMAND, | 514 ui::MenuModel::TYPE_COMMAND, |
| 515 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_WIFI_NETWORKS), | 515 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_WIFI_NETWORKS), |
| 516 icon, std::string(), FLAG_ADD_WIFI)); | 516 icon, std::string(), FLAG_ADD_WIFI)); |
| 517 } | 517 } |
| 518 | 518 |
| 519 if (menu_items_.empty()) { | 519 if (menu_items_.empty()) { |
| 520 // No networks available (and not initializing cellular or wifi scanning) | 520 // No networks available (and not initializing cellular or wifi scanning) |
| 521 AddMessageItem(l10n_util::GetStringFUTF16( | 521 AddMessageItem(l10n_util::GetStringFUTF16( |
| 522 IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, | 522 IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 674 return main_menu_model_.get(); | 674 return main_menu_model_.get(); |
| 675 } | 675 } |
| 676 | 676 |
| 677 void NetworkMenu::UpdateMenu() { | 677 void NetworkMenu::UpdateMenu() { |
| 678 refreshing_menu_ = true; | 678 refreshing_menu_ = true; |
| 679 main_menu_model_->InitMenuItems(delegate_->ShouldOpenButtonOptions()); | 679 main_menu_model_->InitMenuItems(delegate_->ShouldOpenButtonOptions()); |
| 680 refreshing_menu_ = false; | 680 refreshing_menu_ = false; |
| 681 } | 681 } |
| 682 | 682 |
| 683 } // namespace chromeos | 683 } // namespace chromeos |
| OLD | NEW |