summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/status/network_menu.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chromeos/status/network_menu.cc')
-rw-r--r--chrome/browser/chromeos/status/network_menu.cc51
1 files changed, 46 insertions, 5 deletions
diff --git a/chrome/browser/chromeos/status/network_menu.cc b/chrome/browser/chromeos/status/network_menu.cc
index 70107ab..6badf44 100644
--- a/chrome/browser/chromeos/status/network_menu.cc
+++ b/chrome/browser/chromeos/status/network_menu.cc
@@ -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 @@ SkBitmap NetworkMenu::IconForNetworkStrength(const CellularNetwork* cellular) {
}
// 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 @@ void NetworkMenu::InitMenuItems() {
}
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 @@ void NetworkMenu::ShowNetworkConfigView(NetworkConfigView* view,
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::ShowCellular(const CellularNetwork* cellular,
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));
}