OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/network_list.h" | 5 #include "chrome/browser/chromeos/network_list.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
9 #include "chrome/browser/chromeos/cros/cros_library.h" | 9 #include "chrome/browser/chromeos/cros/cros_library.h" |
10 #include "grit/generated_resources.h" | 10 #include "grit/generated_resources.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 if (!network_lib || !CrosLibrary::Get()->EnsureLoaded()) | 58 if (!network_lib || !CrosLibrary::Get()->EnsureLoaded()) |
59 return; | 59 return; |
60 | 60 |
61 bool ethernet_connected = network_lib->ethernet_connected(); | 61 bool ethernet_connected = network_lib->ethernet_connected(); |
62 bool ethernet_connecting = network_lib->ethernet_connecting(); | 62 bool ethernet_connecting = network_lib->ethernet_connecting(); |
63 if (ethernet_connected || ethernet_connecting) { | 63 if (ethernet_connected || ethernet_connecting) { |
64 string16 label = l10n_util::GetStringUTF16( | 64 string16 label = l10n_util::GetStringUTF16( |
65 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); | 65 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); |
66 networks_.push_back(NetworkItem(NETWORK_ETHERNET, | 66 networks_.push_back(NetworkItem(NETWORK_ETHERNET, |
67 label, | 67 label, |
68 WifiNetwork(), | 68 NULL, |
69 CellularNetwork())); | 69 NULL)); |
70 AddNetworkIndexToList(index++, ethernet_connected, ethernet_connecting); | 70 AddNetworkIndexToList(index++, ethernet_connected, ethernet_connecting); |
71 } | 71 } |
72 | 72 |
73 // TODO(nkostylev): Show public WiFi networks first. | 73 // TODO(nkostylev): Show public WiFi networks first. |
74 WifiNetworkVector wifi = network_lib->wifi_networks(); | 74 const WifiNetworkVector& wifi = network_lib->wifi_networks(); |
75 for (WifiNetworkVector::const_iterator it = wifi.begin(); | 75 for (WifiNetworkVector::const_iterator it = wifi.begin(); |
76 it != wifi.end(); ++it, ++index) { | 76 it != wifi.end(); ++it, ++index) { |
77 networks_.push_back(NetworkItem(NETWORK_WIFI, | 77 networks_.push_back(NetworkItem(NETWORK_WIFI, |
78 ASCIIToUTF16(it->name()), | 78 ASCIIToUTF16((*it)->name()), |
79 *it, | 79 *it, |
80 CellularNetwork())); | 80 NULL)); |
81 if (network_lib->wifi_network().service_path() == it->service_path()) { | 81 if (network_lib->wifi_network() && |
| 82 network_lib->wifi_network()->service_path() == (*it)->service_path()) { |
82 AddNetworkIndexToList(index, | 83 AddNetworkIndexToList(index, |
83 network_lib->wifi_connected(), | 84 network_lib->wifi_connected(), |
84 network_lib->wifi_connecting()); | 85 network_lib->wifi_connecting()); |
85 } | 86 } |
86 } | 87 } |
87 | 88 |
88 CellularNetworkVector cellular = network_lib->cellular_networks(); | 89 const CellularNetworkVector& cellular = network_lib->cellular_networks(); |
89 for (CellularNetworkVector::const_iterator it = cellular.begin(); | 90 for (CellularNetworkVector::const_iterator it = cellular.begin(); |
90 it != cellular.end(); ++it, ++index) { | 91 it != cellular.end(); ++it, ++index) { |
91 networks_.push_back(NetworkItem(NETWORK_CELLULAR, | 92 networks_.push_back(NetworkItem(NETWORK_CELLULAR, |
92 ASCIIToUTF16(it->name()), | 93 ASCIIToUTF16((*it)->name()), |
93 WifiNetwork(), | 94 NULL, |
94 *it)); | 95 *it)); |
95 if (network_lib->cellular_network().service_path() == it->service_path()) { | 96 if (network_lib->cellular_network() && |
| 97 network_lib->cellular_network()->service_path() == |
| 98 (*it)->service_path()) { |
96 AddNetworkIndexToList(index, | 99 AddNetworkIndexToList(index, |
97 network_lib->cellular_connected(), | 100 network_lib->cellular_connected(), |
98 network_lib->cellular_connecting()); | 101 network_lib->cellular_connecting()); |
99 } | 102 } |
100 } | 103 } |
101 } | 104 } |
102 | 105 |
103 //////////////////////////////////////////////////////////////////////////////// | 106 //////////////////////////////////////////////////////////////////////////////// |
104 // NetworkList, private: | 107 // NetworkList, private: |
105 | 108 |
(...skipping 13 matching lines...) Expand all Loading... |
119 bool NetworkList::IsSameNetwork(const NetworkList::NetworkItem* network, | 122 bool NetworkList::IsSameNetwork(const NetworkList::NetworkItem* network, |
120 NetworkType type, | 123 NetworkType type, |
121 const std::string& id) const { | 124 const std::string& id) const { |
122 if (type != network->network_type) | 125 if (type != network->network_type) |
123 return false; | 126 return false; |
124 switch (type) { | 127 switch (type) { |
125 case NETWORK_ETHERNET: | 128 case NETWORK_ETHERNET: |
126 // Assuming that there's only single Ethernet network. | 129 // Assuming that there's only single Ethernet network. |
127 return true; | 130 return true; |
128 case NETWORK_WIFI: | 131 case NETWORK_WIFI: |
129 return id == network->wifi_network.name(); | 132 return network->wifi_network && id == network->wifi_network->name(); |
130 break; | 133 break; |
131 case NETWORK_CELLULAR: | 134 case NETWORK_CELLULAR: |
132 return id == network->cellular_network.name(); | 135 return network->cellular_network && |
| 136 id == network->cellular_network->name(); |
133 break; | 137 break; |
134 default: | 138 default: |
135 return false; | 139 return false; |
136 break; | 140 break; |
137 } | 141 } |
138 } | 142 } |
139 | 143 |
140 void NetworkList::AddNetworkIndexToList(size_t index, | 144 void NetworkList::AddNetworkIndexToList(size_t index, |
141 bool connected, | 145 bool connected, |
142 bool connecting) { | 146 bool connecting) { |
143 if (connected) { | 147 if (connected) { |
144 connected_networks_.push_back(index); | 148 connected_networks_.push_back(index); |
145 } else if (connecting) { | 149 } else if (connecting) { |
146 connecting_networks_.push_back(index); | 150 connecting_networks_.push_back(index); |
147 } | 151 } |
148 } | 152 } |
149 | 153 |
150 } // namespace chromeos | 154 } // namespace chromeos |
OLD | NEW |