Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(242)

Side by Side Diff: chrome/browser/chromeos/status/network_menu_icon.cc

Issue 8207009: Track cellular badge in icon cache. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/status/network_menu_icon.h" 5 #include "chrome/browser/chromeos/status/network_menu_icon.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 public: 150 public:
151 // Default constructor is used by the status bar icon (NetworkMenuIcon). 151 // Default constructor is used by the status bar icon (NetworkMenuIcon).
152 NetworkIcon() 152 NetworkIcon()
153 : state_(STATE_UNKNOWN), 153 : state_(STATE_UNKNOWN),
154 strength_index_(-1), 154 strength_index_(-1),
155 top_left_badge_(NULL), 155 top_left_badge_(NULL),
156 top_right_badge_(NULL), 156 top_right_badge_(NULL),
157 bottom_left_badge_(NULL), 157 bottom_left_badge_(NULL),
158 bottom_right_badge_(NULL), 158 bottom_right_badge_(NULL),
159 is_status_bar_(true), 159 is_status_bar_(true),
160 connected_network_(NULL) { 160 connected_network_(NULL),
161 roaming_state_(ROAMING_STATE_UNKNOWN) {
161 } 162 }
162 163
163 // Service path constructor for cached network service icons. 164 // Service path constructor for cached network service icons.
164 explicit NetworkIcon(const std::string& service_path) 165 explicit NetworkIcon(const std::string& service_path)
165 : service_path_(service_path), 166 : service_path_(service_path),
166 state_(STATE_UNKNOWN), 167 state_(STATE_UNKNOWN),
167 strength_index_(-1), 168 strength_index_(-1),
168 top_left_badge_(NULL), 169 top_left_badge_(NULL),
169 top_right_badge_(NULL), 170 top_right_badge_(NULL),
170 bottom_left_badge_(NULL), 171 bottom_left_badge_(NULL),
171 bottom_right_badge_(NULL), 172 bottom_right_badge_(NULL),
172 is_status_bar_(false), 173 is_status_bar_(false),
173 connected_network_(NULL) { 174 connected_network_(NULL),
175 roaming_state_(ROAMING_STATE_UNKNOWN) {
174 } 176 }
175 177
176 ~NetworkIcon() { 178 ~NetworkIcon() {
177 } 179 }
178 180
179 void ClearIconAndBadges() { 181 void ClearIconAndBadges() {
180 icon_ = SkBitmap(); 182 icon_ = SkBitmap();
181 top_left_badge_ = NULL; 183 top_left_badge_ = NULL;
182 top_right_badge_ = NULL; 184 top_right_badge_ = NULL;
183 bottom_left_badge_ = NULL; 185 bottom_left_badge_ = NULL;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 index = WifiStrengthIndex( 218 index = WifiStrengthIndex(
217 static_cast<const WifiNetwork*>(network)); 219 static_cast<const WifiNetwork*>(network));
218 } else if (type == TYPE_CELLULAR) { 220 } else if (type == TYPE_CELLULAR) {
219 index = CellularStrengthIndex( 221 index = CellularStrengthIndex(
220 static_cast<const CellularNetwork*>(network)); 222 static_cast<const CellularNetwork*>(network));
221 } 223 }
222 if (index != strength_index_) { 224 if (index != strength_index_) {
223 strength_index_ = index; 225 strength_index_ = index;
224 dirty = true; 226 dirty = true;
225 } 227 }
226 } else if (type == TYPE_VPN) { 228 }
229 if (type == TYPE_CELLULAR) {
230 const CellularNetwork* cellular =
231 static_cast<const CellularNetwork*>(network);
232 const SkBitmap* technology_badge = BadgeForNetworkTechnology(cellular);
233 if (technology_badge != bottom_right_badge_)
234 dirty = true;
235 if (cellular->roaming_state() != roaming_state_) {
236 roaming_state_ = cellular->roaming_state();
237 dirty = true;
238 }
239 }
240 if (type == TYPE_VPN) {
227 if (cros->connected_network() != connected_network_) { 241 if (cros->connected_network() != connected_network_) {
228 connected_network_ = cros->connected_network(); 242 connected_network_ = cros->connected_network();
229 dirty = true; 243 dirty = true;
230 } 244 }
231 } 245 }
232 if (dirty) { 246 if (dirty) {
233 UpdateIcon(network); 247 UpdateIcon(network);
234 GenerateBitmap(); 248 GenerateBitmap();
235 } 249 }
236 } 250 }
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 ConnectionState state_; 398 ConnectionState state_;
385 int strength_index_; 399 int strength_index_;
386 SkBitmap bitmap_; 400 SkBitmap bitmap_;
387 SkBitmap icon_; 401 SkBitmap icon_;
388 const SkBitmap* top_left_badge_; 402 const SkBitmap* top_left_badge_;
389 const SkBitmap* top_right_badge_; 403 const SkBitmap* top_right_badge_;
390 const SkBitmap* bottom_left_badge_; 404 const SkBitmap* bottom_left_badge_;
391 const SkBitmap* bottom_right_badge_; 405 const SkBitmap* bottom_right_badge_;
392 bool is_status_bar_; 406 bool is_status_bar_;
393 const Network* connected_network_; // weak pointer; used for VPN icons. 407 const Network* connected_network_; // weak pointer; used for VPN icons.
408 NetworkRoamingState roaming_state_;
394 409
395 DISALLOW_COPY_AND_ASSIGN(NetworkIcon); 410 DISALLOW_COPY_AND_ASSIGN(NetworkIcon);
396 }; 411 };
397 412
398 413
399 //////////////////////////////////////////////////////////////////////////////// 414 ////////////////////////////////////////////////////////////////////////////////
400 // NetworkMenuIcon 415 // NetworkMenuIcon
401 416
402 NetworkMenuIcon::NetworkMenuIcon(Delegate* delegate, Mode mode) 417 NetworkMenuIcon::NetworkMenuIcon(Delegate* delegate, Mode mode)
403 : mode_(mode), 418 : mode_(mode),
404 delegate_(delegate), 419 delegate_(delegate),
405 ALLOW_THIS_IN_INITIALIZER_LIST(animation_connecting_(this)), 420 ALLOW_THIS_IN_INITIALIZER_LIST(animation_connecting_(this)),
406 last_network_type_(TYPE_WIFI) { 421 last_network_type_(TYPE_WIFI),
422 connecting_network_(NULL) {
407 // Generate empty images for blending. 423 // Generate empty images for blending.
408 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 424 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
409 const SkBitmap* vpn_badge = rb.GetBitmapNamed(kVpnBadgeId); 425 const SkBitmap* vpn_badge = rb.GetBitmapNamed(kVpnBadgeId);
410 empty_vpn_badge_.setConfig(SkBitmap::kARGB_8888_Config, 426 empty_vpn_badge_.setConfig(SkBitmap::kARGB_8888_Config,
411 vpn_badge->width(), vpn_badge->height(), 0); 427 vpn_badge->width(), vpn_badge->height(), 0);
412 empty_vpn_badge_.allocPixels(); 428 empty_vpn_badge_.allocPixels();
413 empty_vpn_badge_.eraseARGB(0, 0, 0, 0); 429 empty_vpn_badge_.eraseARGB(0, 0, 0, 0);
414 430
415 // Set up the connection animation throbber. 431 // Set up the connection animation throbber.
416 animation_connecting_.SetThrobDuration(kThrobDurationMs); 432 animation_connecting_.SetThrobDuration(kThrobDurationMs);
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 753
738 const SkBitmap NetworkMenuIcon::GetDisconnectedBitmap(BitmapType type) { 754 const SkBitmap NetworkMenuIcon::GetDisconnectedBitmap(BitmapType type) {
739 return GetBitmap(type, 0); 755 return GetBitmap(type, 0);
740 } 756 }
741 757
742 int NetworkMenuIcon::NumBitmaps(BitmapType type) { 758 int NetworkMenuIcon::NumBitmaps(BitmapType type) {
743 return (type == ARCS) ? kNumArcsImages : kNumBarsImages; 759 return (type == ARCS) ? kNumArcsImages : kNumBarsImages;
744 } 760 }
745 761
746 } // chromeos 762 } // chromeos
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698