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 |