Index: chrome/browser/chromeos/status/network_menu_button.cc |
=================================================================== |
--- chrome/browser/chromeos/status/network_menu_button.cc (revision 63061) |
+++ chrome/browser/chromeos/status/network_menu_button.cc (working copy) |
@@ -120,11 +120,16 @@ |
IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, |
UTF8ToWide(cros->wifi_network().name()))); |
} else if (cros->cellular_connected()) { |
- SetIcon(IconForNetworkStrength( |
- cros->cellular_network().strength(), false)); |
+ const CellularNetwork& cellular = cros->cellular_network(); |
+ if (cellular.data_left() == CellularNetwork::DATA_NONE) { |
+ // If no data, then we show 0 bars. |
+ SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0)); |
+ } else { |
+ SetIcon(IconForNetworkStrength(cellular)); |
+ } |
SetTooltipText(l10n_util::GetStringF( |
IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, |
- UTF8ToWide(cros->cellular_network().name()))); |
+ UTF8ToWide(cellular.name()))); |
} else { |
SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0)); |
SetTooltipText(l10n_util::GetString( |
@@ -136,9 +141,20 @@ |
SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED)); |
} else if (!cros->ethernet_connected() && !cros->wifi_connected() && |
(cros->cellular_connecting() || cros->cellular_connected())) { |
- // TODO(chocobo): Check cellular network 3g/edge. |
- SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G)); |
-// SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE)); |
+ int id; |
+ switch (cros->cellular_network().data_left()) { |
+ case CellularNetwork::DATA_NONE: |
+ case CellularNetwork::DATA_VERY_LOW: |
+ id = IDR_STATUSBAR_NETWORK_3G_VLOWDATA; |
+ break; |
+ case CellularNetwork::DATA_LOW: |
+ id = IDR_STATUSBAR_NETWORK_3G_LOWDATA; |
+ break; |
+ case CellularNetwork::DATA_NORMAL: |
+ id = IDR_STATUSBAR_NETWORK_3G; |
+ break; |
+ } |
+ SetBadge(*rb.GetBitmapNamed(id)); |
} else { |
SetBadge(SkBitmap()); |
} |
@@ -153,6 +169,11 @@ |
UpdateMenu(); |
} |
+void NetworkMenuButton::CellularDataPlanChanged(NetworkLibrary* cros) { |
+ // Call NetworkChanged which will update the icon. |
+ NetworkChanged(cros); |
+} |
+ |
void NetworkMenuButton::SetBadge(const SkBitmap& badge) { |
badge_ = badge; |
} |