| 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 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 } else { | 359 } else { |
| 360 label = base::UTF8ToUTF16(wifi_name); | 360 label = base::UTF8ToUTF16(wifi_name); |
| 361 } | 361 } |
| 362 | 362 |
| 363 // We do not have convenient access to whether or not it might be possible | 363 // We do not have convenient access to whether or not it might be possible |
| 364 // to connect to a wireless network (e.g. whether certs are required), so all | 364 // to connect to a wireless network (e.g. whether certs are required), so all |
| 365 // entries are enabled. | 365 // entries are enabled. |
| 366 | 366 |
| 367 if (ShouldHighlightNetwork(network)) | 367 if (ShouldHighlightNetwork(network)) |
| 368 flag |= FLAG_ASSOCIATED; | 368 flag |= FLAG_ASSOCIATED; |
| 369 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( | 369 const gfx::ImageSkia icon = ash::network_icon::GetImageForNetwork( |
| 370 network, ui::network_icon::ICON_TYPE_LIST); | 370 network, ash::network_icon::ICON_TYPE_LIST); |
| 371 menu_items_.push_back( | 371 menu_items_.push_back( |
| 372 MenuItem(ui::MenuModel::TYPE_COMMAND, | 372 MenuItem(ui::MenuModel::TYPE_COMMAND, |
| 373 label, icon, network->path(), flag)); | 373 label, icon, network->path(), flag)); |
| 374 } | 374 } |
| 375 | 375 |
| 376 void MainMenuModel::AddMessageItem(const base::string16& msg) { | 376 void MainMenuModel::AddMessageItem(const base::string16& msg) { |
| 377 menu_items_.push_back(MenuItem( | 377 menu_items_.push_back(MenuItem( |
| 378 ui::MenuModel::TYPE_COMMAND, msg, | 378 ui::MenuModel::TYPE_COMMAND, msg, |
| 379 gfx::ImageSkia(), std::string(), FLAG_DISABLED)); | 379 gfx::ImageSkia(), std::string(), FLAG_DISABLED)); |
| 380 } | 380 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 399 label = l10n_util::GetStringFUTF16( | 399 label = l10n_util::GetStringFUTF16( |
| 400 IDS_STATUSBAR_NETWORK_DEVICE_STATUS, | 400 IDS_STATUSBAR_NETWORK_DEVICE_STATUS, |
| 401 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET), | 401 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET), |
| 402 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); | 402 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); |
| 403 } else { | 403 } else { |
| 404 label = l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); | 404 label = l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); |
| 405 } | 405 } |
| 406 int flag = FLAG_ETHERNET; | 406 int flag = FLAG_ETHERNET; |
| 407 if (ShouldHighlightNetwork(ethernet_network)) | 407 if (ShouldHighlightNetwork(ethernet_network)) |
| 408 flag |= FLAG_ASSOCIATED; | 408 flag |= FLAG_ASSOCIATED; |
| 409 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( | 409 const gfx::ImageSkia icon = ash::network_icon::GetImageForNetwork( |
| 410 ethernet_network, ui::network_icon::ICON_TYPE_LIST); | 410 ethernet_network, ash::network_icon::ICON_TYPE_LIST); |
| 411 menu_items_.push_back(MenuItem(ui::MenuModel::TYPE_COMMAND, | 411 menu_items_.push_back(MenuItem(ui::MenuModel::TYPE_COMMAND, |
| 412 label, icon, std::string(), flag)); | 412 label, icon, std::string(), flag)); |
| 413 } | 413 } |
| 414 | 414 |
| 415 // Get the list of all networks. | 415 // Get the list of all networks. |
| 416 NetworkStateHandler::NetworkStateList network_list; | 416 NetworkStateHandler::NetworkStateList network_list; |
| 417 handler->GetVisibleNetworkList(&network_list); | 417 handler->GetVisibleNetworkList(&network_list); |
| 418 | 418 |
| 419 // Cellular Networks | 419 // Cellular Networks |
| 420 if (handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) { | 420 if (handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 440 base::UTF8ToUTF16(network_name), | 440 base::UTF8ToUTF16(network_name), |
| 441 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); | 441 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); |
| 442 } else { | 442 } else { |
| 443 label = base::UTF8ToUTF16(network_name); | 443 label = base::UTF8ToUTF16(network_name); |
| 444 } | 444 } |
| 445 | 445 |
| 446 int flag = FLAG_CELLULAR; | 446 int flag = FLAG_CELLULAR; |
| 447 bool isActive = ShouldHighlightNetwork(network); | 447 bool isActive = ShouldHighlightNetwork(network); |
| 448 if (isActive) | 448 if (isActive) |
| 449 flag |= FLAG_ASSOCIATED; | 449 flag |= FLAG_ASSOCIATED; |
| 450 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( | 450 const gfx::ImageSkia icon = ash::network_icon::GetImageForNetwork( |
| 451 network, ui::network_icon::ICON_TYPE_LIST); | 451 network, ash::network_icon::ICON_TYPE_LIST); |
| 452 menu_items_.push_back( | 452 menu_items_.push_back( |
| 453 MenuItem(ui::MenuModel::TYPE_COMMAND, | 453 MenuItem(ui::MenuModel::TYPE_COMMAND, |
| 454 label, icon, network->path(), flag)); | 454 label, icon, network->path(), flag)); |
| 455 } | 455 } |
| 456 | 456 |
| 457 // For GSM add cellular network scan. | 457 // For GSM add cellular network scan. |
| 458 const DeviceState* cellular_device = | 458 const DeviceState* cellular_device = |
| 459 handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); | 459 handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); |
| 460 if (cellular_device && cellular_device->support_network_scan()) { | 460 if (cellular_device && cellular_device->support_network_scan()) { |
| 461 const gfx::ImageSkia icon = | 461 const gfx::ImageSkia icon = |
| 462 ui::network_icon::GetImageForDisconnectedCellNetwork(); | 462 ash::network_icon::GetImageForDisconnectedCellNetwork(); |
| 463 menu_items_.push_back(MenuItem( | 463 menu_items_.push_back(MenuItem( |
| 464 ui::MenuModel::TYPE_COMMAND, | 464 ui::MenuModel::TYPE_COMMAND, |
| 465 l10n_util::GetStringUTF16( | 465 l10n_util::GetStringUTF16( |
| 466 IDS_OPTIONS_SETTINGS_OTHER_CELLULAR_NETWORKS), | 466 IDS_OPTIONS_SETTINGS_OTHER_CELLULAR_NETWORKS), |
| 467 icon, std::string(), FLAG_ADD_CELLULAR)); | 467 icon, std::string(), FLAG_ADD_CELLULAR)); |
| 468 } | 468 } |
| 469 } else { | 469 } else { |
| 470 int initializing_message_id = | 470 int initializing_message_id = |
| 471 ui::network_icon::GetCellularUninitializedMsg(); | 471 ash::network_icon::GetCellularUninitializedMsg(); |
| 472 if (initializing_message_id) { | 472 if (initializing_message_id) { |
| 473 // Initializing cellular modem... | 473 // Initializing cellular modem... |
| 474 AddMessageItem(l10n_util::GetStringUTF16(initializing_message_id)); | 474 AddMessageItem(l10n_util::GetStringUTF16(initializing_message_id)); |
| 475 } | 475 } |
| 476 } | 476 } |
| 477 | 477 |
| 478 // Wimax Networks | 478 // Wimax Networks |
| 479 if (handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())) { | 479 if (handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())) { |
| 480 // List Wimax networks. | 480 // List Wimax networks. |
| 481 for (NetworkStateHandler::NetworkStateList::const_iterator iter = | 481 for (NetworkStateHandler::NetworkStateList::const_iterator iter = |
| (...skipping 19 matching lines...) Expand all Loading... |
| 501 // Add 'Searching for Wi-Fi networks...' after connected networks. | 501 // Add 'Searching for Wi-Fi networks...' after connected networks. |
| 502 if (scanning_msg && !network->IsConnectedState()) { | 502 if (scanning_msg && !network->IsConnectedState()) { |
| 503 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); | 503 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); |
| 504 scanning_msg = 0; | 504 scanning_msg = 0; |
| 505 } | 505 } |
| 506 AddWirelessNetworkMenuItem(network, FLAG_WIFI); | 506 AddWirelessNetworkMenuItem(network, FLAG_WIFI); |
| 507 } | 507 } |
| 508 if (scanning_msg) | 508 if (scanning_msg) |
| 509 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); | 509 AddMessageItem(l10n_util::GetStringUTF16(scanning_msg)); |
| 510 const gfx::ImageSkia icon = | 510 const gfx::ImageSkia icon = |
| 511 ui::network_icon::GetImageForConnectedMobileNetwork(); | 511 ash::network_icon::GetImageForConnectedMobileNetwork(); |
| 512 menu_items_.push_back(MenuItem( | 512 menu_items_.push_back(MenuItem( |
| 513 ui::MenuModel::TYPE_COMMAND, | 513 ui::MenuModel::TYPE_COMMAND, |
| 514 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_WIFI_NETWORKS), | 514 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_WIFI_NETWORKS), |
| 515 icon, std::string(), FLAG_ADD_WIFI)); | 515 icon, std::string(), FLAG_ADD_WIFI)); |
| 516 } | 516 } |
| 517 | 517 |
| 518 if (menu_items_.empty()) { | 518 if (menu_items_.empty()) { |
| 519 // No networks available (and not initializing cellular or wifi scanning) | 519 // No networks available (and not initializing cellular or wifi scanning) |
| 520 AddMessageItem(l10n_util::GetStringFUTF16( | 520 AddMessageItem(l10n_util::GetStringFUTF16( |
| 521 IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, | 521 IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 673 return main_menu_model_.get(); | 673 return main_menu_model_.get(); |
| 674 } | 674 } |
| 675 | 675 |
| 676 void NetworkMenu::UpdateMenu() { | 676 void NetworkMenu::UpdateMenu() { |
| 677 refreshing_menu_ = true; | 677 refreshing_menu_ = true; |
| 678 main_menu_model_->InitMenuItems(delegate_->ShouldOpenButtonOptions()); | 678 main_menu_model_->InitMenuItems(delegate_->ShouldOpenButtonOptions()); |
| 679 refreshing_menu_ = false; | 679 refreshing_menu_ = false; |
| 680 } | 680 } |
| 681 | 681 |
| 682 } // namespace chromeos | 682 } // namespace chromeos |
| OLD | NEW |