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" | |
13 #include "base/bind.h" | 12 #include "base/bind.h" |
14 #include "base/logging.h" | 13 #include "base/logging.h" |
15 #include "base/strings/stringprintf.h" | 14 #include "base/strings/stringprintf.h" |
16 #include "base/strings/utf_string_conversions.h" | 15 #include "base/strings/utf_string_conversions.h" |
17 #include "chrome/browser/chromeos/login/users/user_manager.h" | 16 #include "chrome/browser/chromeos/login/users/user_manager.h" |
18 #include "chrome/browser/chromeos/mobile_config.h" | 17 #include "chrome/browser/chromeos/mobile_config.h" |
19 #include "chrome/browser/chromeos/options/network_config_view.h" | 18 #include "chrome/browser/chromeos/options/network_config_view.h" |
20 #include "chrome/browser/chromeos/sim_dialog_delegate.h" | 19 #include "chrome/browser/chromeos/sim_dialog_delegate.h" |
21 #include "chrome/browser/chromeos/ui/choose_mobile_network_dialog.h" | 20 #include "chrome/browser/chromeos/ui/choose_mobile_network_dialog.h" |
22 #include "chrome/browser/defaults.h" | 21 #include "chrome/browser/defaults.h" |
23 #include "chrome/browser/profiles/profile_manager.h" | 22 #include "chrome/browser/profiles/profile_manager.h" |
24 #include "chrome/common/url_constants.h" | 23 #include "chrome/common/url_constants.h" |
25 #include "chromeos/network/device_state.h" | 24 #include "chromeos/network/device_state.h" |
26 #include "chromeos/network/network_state.h" | 25 #include "chromeos/network/network_state.h" |
27 #include "chromeos/network/network_state_handler.h" | 26 #include "chromeos/network/network_state_handler.h" |
28 #include "grit/ash_resources.h" | 27 #include "grit/ash_resources.h" |
29 #include "grit/ash_strings.h" | 28 #include "grit/ash_strings.h" |
30 #include "grit/generated_resources.h" | 29 #include "grit/generated_resources.h" |
31 #include "third_party/cros_system_api/dbus/service_constants.h" | 30 #include "third_party/cros_system_api/dbus/service_constants.h" |
32 #include "ui/base/l10n/l10n_util.h" | 31 #include "ui/base/l10n/l10n_util.h" |
33 #include "ui/base/models/menu_model.h" | 32 #include "ui/base/models/menu_model.h" |
34 #include "ui/base/resource/resource_bundle.h" | 33 #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 = ash::network_icon::GetImageForNetwork( | 366 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( |
367 network, ash::network_icon::ICON_TYPE_LIST); | 367 network, ui::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 = ash::network_icon::GetImageForNetwork( | 406 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( |
407 ethernet_network, ash::network_icon::ICON_TYPE_LIST); | 407 ethernet_network, ui::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 = ash::network_icon::GetImageForNetwork( | 447 const gfx::ImageSkia icon = ui::network_icon::GetImageForNetwork( |
448 network, ash::network_icon::ICON_TYPE_LIST); | 448 network, ui::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 ash::network_icon::GetImageForDisconnectedNetwork( | 459 ui::network_icon::GetImageForDisconnectedNetwork( |
460 ash::network_icon::ICON_TYPE_LIST, shill::kTypeCellular); | 460 ui::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 ash::network_icon::GetCellularUninitializedMsg(); | 469 ui::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 = | 508 const gfx::ImageSkia icon = ui::network_icon::GetImageForConnectedNetwork( |
509 ash::network_icon::GetImageForConnectedNetwork( | 509 ui::network_icon::ICON_TYPE_LIST, shill::kTypeWifi); |
510 ash::network_icon::ICON_TYPE_LIST, shill::kTypeWifi); | |
511 menu_items_.push_back(MenuItem( | 510 menu_items_.push_back(MenuItem( |
512 ui::MenuModel::TYPE_COMMAND, | 511 ui::MenuModel::TYPE_COMMAND, |
513 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_WIFI_NETWORKS), | 512 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_WIFI_NETWORKS), |
514 icon, std::string(), FLAG_ADD_WIFI)); | 513 icon, std::string(), FLAG_ADD_WIFI)); |
515 } | 514 } |
516 | 515 |
517 if (menu_items_.empty()) { | 516 if (menu_items_.empty()) { |
518 // No networks available (and not initializing cellular or wifi scanning) | 517 // No networks available (and not initializing cellular or wifi scanning) |
519 AddMessageItem(l10n_util::GetStringFUTF16( | 518 AddMessageItem(l10n_util::GetStringFUTF16( |
520 IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, | 519 IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 return main_menu_model_.get(); | 671 return main_menu_model_.get(); |
673 } | 672 } |
674 | 673 |
675 void NetworkMenu::UpdateMenu() { | 674 void NetworkMenu::UpdateMenu() { |
676 refreshing_menu_ = true; | 675 refreshing_menu_ = true; |
677 main_menu_model_->InitMenuItems(delegate_->ShouldOpenButtonOptions()); | 676 main_menu_model_->InitMenuItems(delegate_->ShouldOpenButtonOptions()); |
678 refreshing_menu_ = false; | 677 refreshing_menu_ = false; |
679 } | 678 } |
680 | 679 |
681 } // namespace chromeos | 680 } // namespace chromeos |
OLD | NEW |