Index: chrome/browser/chromeos/status/network_menu.cc |
=================================================================== |
--- chrome/browser/chromeos/status/network_menu.cc (revision 65103) |
+++ chrome/browser/chromeos/status/network_menu.cc (working copy) |
@@ -4,6 +4,8 @@ |
#include "chrome/browser/chromeos/status/network_menu.h" |
+#include <algorithm> |
+ |
#include "app/l10n_util.h" |
#include "app/resource_bundle.h" |
#include "base/command_line.h" |
@@ -390,6 +392,47 @@ |
} |
// static |
+// TODO(ers) update for GSM when we have the necessary images |
+SkBitmap NetworkMenu::BadgeForNetworkTechnology( |
+ const CellularNetwork* cellular) { |
+ |
+ int id = -1; |
+ if (cellular->network_technology() == NETWORK_TECHNOLOGY_EVDO) { |
+ switch (cellular->data_left()) { |
+ case CellularNetwork::DATA_NONE: |
+ case CellularNetwork::DATA_VERY_LOW: |
+ id = IDR_STATUSBAR_NETWORK_3G_ERROR; |
+ break; |
+ case CellularNetwork::DATA_LOW: |
+ id = IDR_STATUSBAR_NETWORK_3G_WARN; |
+ break; |
+ case CellularNetwork::DATA_NORMAL: |
+ id = IDR_STATUSBAR_NETWORK_3G; |
+ break; |
+ } |
+ } else if (cellular->network_technology() == NETWORK_TECHNOLOGY_1XRTT) { |
+ switch (cellular->data_left()) { |
+ case CellularNetwork::DATA_NONE: |
+ case CellularNetwork::DATA_VERY_LOW: |
+ id = IDR_STATUSBAR_NETWORK_1X_ERROR; |
+ break; |
+ case CellularNetwork::DATA_LOW: |
+ id = IDR_STATUSBAR_NETWORK_1X_WARN; |
+ break; |
+ case CellularNetwork::DATA_NORMAL: |
+ id = IDR_STATUSBAR_NETWORK_1X; |
+ break; |
+ } |
+ } else { |
+ id = -1; |
+ } |
+ if (id == -1) |
+ return SkBitmap(); |
+ else |
+ return *ResourceBundle::GetSharedInstance().GetBitmapNamed(id); |
+} |
+ |
+// static |
SkBitmap NetworkMenu::IconForDisplay(SkBitmap icon, SkBitmap badge) { |
// Draw badge at (14,14). |
static const int kBadgeX = 14; |
@@ -530,9 +573,7 @@ |
} |
SkBitmap icon = IconForNetworkStrength(cell_networks[i]->strength(), |
true); |
- // TODO(chocobo): Check cellular network 3g/edge. |
- SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G); |
- // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE); |
+ SkBitmap badge = BadgeForNetworkTechnology(cell_networks[i]); |
int flag = FLAG_CELLULAR; |
if (active_cellular && |
cell_networks[i]->service_path() == |
@@ -642,7 +683,7 @@ |
view->SetLoginTextfieldFocus(); |
} |
-void NetworkMenu::ShowWifi(const WifiNetwork* wifi, bool focus_login) const{ |
+void NetworkMenu::ShowWifi(const WifiNetwork* wifi, bool focus_login) const { |
DCHECK(wifi); |
if (use_settings_ui_ && |
(MenuUI::IsEnabled() || wifi->connected() || wifi->connecting())) { |
@@ -667,7 +708,7 @@ |
void NetworkMenu::ActivateCellular(const CellularNetwork* cellular) const { |
DCHECK(cellular); |
Browser* browser = BrowserList::GetLastActive(); |
- // TODO?(stevenjb) : specify which service to activate. |
+ // TODO(stevenjb) : specify which service to activate. |
browser->ShowSingletonTab(GURL(chrome::kChromeUIMobileSetupURL)); |
} |