summaryrefslogtreecommitdiffstats
path: root/ash/system
diff options
context:
space:
mode:
authorstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-06 21:47:58 +0000
committerstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-06 21:47:58 +0000
commit7a961850bc7304bd5e381de84b3c2dffe42e252e (patch)
tree131e41b163f71c821f0602f461d85abd476def38 /ash/system
parentce25db280f7122b591bffade5694c11eb2fc0df5 (diff)
downloadchromium_src-7a961850bc7304bd5e381de84b3c2dffe42e252e.zip
chromium_src-7a961850bc7304bd5e381de84b3c2dffe42e252e.tar.gz
chromium_src-7a961850bc7304bd5e381de84b3c2dffe42e252e.tar.bz2
Support activation in new network status area UI
BUG=179507 For ash_strings: TBR=sky@chromium.org Review URL: https://codereview.chromium.org/12378096 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186511 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/system')
-rw-r--r--ash/system/chromeos/network/network_icon.cc27
-rw-r--r--ash/system/chromeos/network/network_state_list_detailed_view.cc8
-rw-r--r--ash/system/chromeos/network/tray_network.cc9
3 files changed, 42 insertions, 2 deletions
diff --git a/ash/system/chromeos/network/network_icon.cc b/ash/system/chromeos/network/network_icon.cc
index 05de7d1..4212a72 100644
--- a/ash/system/chromeos/network/network_icon.cc
+++ b/ash/system/chromeos/network/network_icon.cc
@@ -583,13 +583,28 @@ gfx::ImageSkia GetImageForDisconnectedNetwork(IconType icon_type,
string16 GetLabelForNetwork(const chromeos::NetworkState* network,
IconType icon_type) {
DCHECK(network);
+ std::string activation_state = network->activation_state();
if (icon_type == ICON_TYPE_LIST) {
+ // Show "<network>: [Connecting|Activating]..."
if (network->IsConnectingState()) {
return l10n_util::GetStringFUTF16(
IDS_ASH_STATUS_TRAY_NETWORK_LIST_CONNECTING,
UTF8ToUTF16(network->name()));
}
+ if (activation_state == flimflam::kActivationStateActivating) {
+ return l10n_util::GetStringFUTF16(
+ IDS_ASH_STATUS_TRAY_NETWORK_LIST_ACTIVATING,
+ UTF8ToUTF16(network->name()));
+ }
+ // Show "Activate <network>" in list view only.
+ if (activation_state == flimflam::kActivationStateNotActivated ||
+ activation_state == flimflam::kActivationStatePartiallyActivated) {
+ return l10n_util::GetStringFUTF16(
+ IDS_ASH_STATUS_TRAY_NETWORK_LIST_ACTIVATE,
+ UTF8ToUTF16(network->name()));
+ }
} else {
+ // Show "[Connected to|Connecting to|Activating] <network>" (non-list view).
if (network->IsConnectedState()) {
return l10n_util::GetStringFUTF16(
IDS_ASH_STATUS_TRAY_NETWORK_CONNECTED, UTF8ToUTF16(network->name()));
@@ -598,8 +613,18 @@ string16 GetLabelForNetwork(const chromeos::NetworkState* network,
return l10n_util::GetStringFUTF16(
IDS_ASH_STATUS_TRAY_NETWORK_CONNECTING, UTF8ToUTF16(network->name()));
}
+ if (activation_state == flimflam::kActivationStateActivating) {
+ return l10n_util::GetStringFUTF16(
+ IDS_ASH_STATUS_TRAY_NETWORK_ACTIVATING, UTF8ToUTF16(network->name()));
+ }
+ }
+
+ // Otherwise just show the network name or 'Ethernet'.
+ if (network->type() == flimflam::kTypeEthernet) {
+ return l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ETHERNET);
+ } else {
+ return UTF8ToUTF16(network->name());
}
- return UTF8ToUTF16(network->name());
}
int GetCellularUninitializedMsg() {
diff --git a/ash/system/chromeos/network/network_state_list_detailed_view.cc b/ash/system/chromeos/network/network_state_list_detailed_view.cc
index daa1af7..699014a 100644
--- a/ash/system/chromeos/network/network_state_list_detailed_view.cc
+++ b/ash/system/chromeos/network/network_state_list_detailed_view.cc
@@ -108,12 +108,14 @@ class NonActivatableSettingsBubble : public views::BubbleDelegateView {
struct NetworkInfo {
NetworkInfo(const std::string& path)
: service_path(path),
+ disable(false),
highlight(false) {
}
std::string service_path;
string16 label;
gfx::ImageSkia image;
+ bool disable;
bool highlight;
};
@@ -431,6 +433,8 @@ void NetworkStateListDetailedView::UpdateNetworkList() {
network, network_icon::ICON_TYPE_LIST);
info->highlight =
network->IsConnectedState() || network->IsConnectingState();
+ info->disable =
+ network->activation_state() == flimflam::kActivationStateActivating;
}
// Get the updated list entries
@@ -444,6 +448,7 @@ void NetworkStateListDetailedView::UpdateNetworkList() {
it != service_path_map_.end(); ++it) {
if (new_service_paths.find(it->first) == new_service_paths.end()) {
remove_service_paths.insert(it->first);
+ network_map_.erase(it->second);
scroll_content()->RemoveChildView(it->second);
needs_relayout = true;
}
@@ -506,7 +511,8 @@ bool NetworkStateListDetailedView::UpdateNetworkChild(
container->SchedulePaint();
needs_relayout = OrderChild(container, index);
}
-
+ if (info->disable)
+ container->SetEnabled(false);
network_map_[container] = info->service_path;
service_path_map_[info->service_path] = container;
return needs_relayout;
diff --git a/ash/system/chromeos/network/tray_network.cc b/ash/system/chromeos/network/tray_network.cc
index 3dff223..161d519 100644
--- a/ash/system/chromeos/network/tray_network.cc
+++ b/ash/system/chromeos/network/tray_network.cc
@@ -568,6 +568,15 @@ void TrayNetwork::GetNetworkStateHandlerImageAndLabel(
network = connecting_network;
}
if (!network) {
+ // If no connecting network, check if we are activating a network.
+ const NetworkState* mobile_network = handler->FirstNetworkByType(
+ NetworkStateHandler::kMatchTypeMobile);
+ if (mobile_network && (mobile_network->activation_state() ==
+ flimflam::kActivationStateActivating)) {
+ network = mobile_network;
+ }
+ }
+ if (!network) {
// If no connecting network, check for cellular initializing.
int uninitialized_msg = network_icon::GetCellularUninitializedMsg();
if (uninitialized_msg != 0) {