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

Side by Side Diff: chrome/browser/chromeos/network_message_observer.cc

Issue 3748005: Update icons to show lowdata and very lowdata for 3G data.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 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
OLDNEW
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_message_observer.h" 5 #include "chrome/browser/chromeos/network_message_observer.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 notification_connection_error_.Show(l10n_util::GetStringFUTF16( 136 notification_connection_error_.Show(l10n_util::GetStringFUTF16(
137 IDS_NETWORK_CONNECTION_ERROR_MESSAGE, 137 IDS_NETWORK_CONNECTION_ERROR_MESSAGE,
138 ASCIIToUTF16(new_failed_network)), false, false); 138 ASCIIToUTF16(new_failed_network)), false, false);
139 } 139 }
140 140
141 // Show login box if necessary. 141 // Show login box if necessary.
142 if (view && initialized_) 142 if (view && initialized_)
143 CreateModalPopup(view); 143 CreateModalPopup(view);
144 } 144 }
145 145
146 void NetworkMessageObserver::CellularDataPlanChanged( 146 void NetworkMessageObserver::CellularDataPlanChanged(NetworkLibrary* obj) {
147 const std::string& service_path, const CellularDataPlanList& plans) { 147 const CellularNetwork& cellular = obj->cellular_network();
148 // Active plan is the first one in the list. Use empty one if none found. 148 // Active plan is the first one in the list. Use empty one if none found.
149 const CellularDataPlanList& plans = cellular.GetDataPlans();
149 CellularDataPlan plan = plans.empty() ? CellularDataPlan() : plans[0]; 150 CellularDataPlan plan = plans.empty() ? CellularDataPlan() : plans[0];
150 // If connected cellular network changed, or data plan is different, then 151 // If connected cellular network changed, or data plan is different, then
151 // it's a new network. Then hide all previous notifications. 152 // it's a new network. Then hide all previous notifications.
152 bool new_plan = false; 153 bool new_plan = false;
153 if (service_path != cellular_service_path_) { 154 if (cellular.service_path() != cellular_service_path_) {
154 cellular_service_path_ = service_path; 155 cellular_service_path_ = cellular.service_path();
155 new_plan = true; 156 new_plan = true;
156 } else if (plan.plan_name != cellular_data_plan_.plan_name || 157 } else if (plan.plan_name != cellular_data_plan_.plan_name ||
157 plan.plan_type != cellular_data_plan_.plan_type) { 158 plan.plan_type != cellular_data_plan_.plan_type) {
158 new_plan = true; 159 new_plan = true;
159 } 160 }
160 if (new_plan) { 161 if (new_plan) {
161 // New network, so hide the notifications and set the notifications title. 162 // New network, so hide the notifications and set the notifications title.
162 notification_low_data_.Hide(); 163 notification_low_data_.Hide();
163 notification_no_data_.Hide(); 164 notification_no_data_.Hide();
164 if (plan.plan_type == CELLULAR_DATA_PLAN_UNLIMITED) { 165 if (plan.plan_type == CELLULAR_DATA_PLAN_UNLIMITED) {
165 notification_no_data_.set_title( 166 notification_no_data_.set_title(
166 l10n_util::GetStringFUTF16(IDS_NETWORK_DATA_EXPIRED_TITLE, 167 l10n_util::GetStringFUTF16(IDS_NETWORK_DATA_EXPIRED_TITLE,
167 ASCIIToUTF16(plan.plan_name))); 168 ASCIIToUTF16(plan.plan_name)));
168 notification_low_data_.set_title( 169 notification_low_data_.set_title(
169 l10n_util::GetStringFUTF16(IDS_NETWORK_NEARING_EXPIRATION_TITLE, 170 l10n_util::GetStringFUTF16(IDS_NETWORK_NEARING_EXPIRATION_TITLE,
170 ASCIIToUTF16(plan.plan_name))); 171 ASCIIToUTF16(plan.plan_name)));
171 } else { 172 } else {
172 notification_no_data_.set_title( 173 notification_no_data_.set_title(
173 l10n_util::GetStringFUTF16(IDS_NETWORK_OUT_OF_DATA_TITLE, 174 l10n_util::GetStringFUTF16(IDS_NETWORK_OUT_OF_DATA_TITLE,
174 ASCIIToUTF16(plan.plan_name))); 175 ASCIIToUTF16(plan.plan_name)));
175 notification_low_data_.set_title( 176 notification_low_data_.set_title(
176 l10n_util::GetStringFUTF16(IDS_NETWORK_LOW_DATA_TITLE, 177 l10n_util::GetStringFUTF16(IDS_NETWORK_LOW_DATA_TITLE,
177 ASCIIToUTF16(plan.plan_name))); 178 ASCIIToUTF16(plan.plan_name)));
178 } 179 }
179 } 180 }
180 181
181 if (plan.plan_type == CELLULAR_DATA_PLAN_UNLIMITED) { 182 if (plan.plan_type != CELLULAR_DATA_PLAN_UNKNOWN) {
182 // Time based plan. Show nearing expiration and data expiration. 183 if (cellular.data_left() == CellularNetwork::DATA_NONE) {
183 int64 time_left = plan.plan_end_time - plan.update_time;
184 if (time_left <= 0) {
185 notification_low_data_.Hide(); 184 notification_low_data_.Hide();
185 int message = plan.plan_type == CELLULAR_DATA_PLAN_UNLIMITED ?
186 IDS_NETWORK_MINUTES_REMAINING_MESSAGE :
187 IDS_NETWORK_DATA_REMAINING_MESSAGE;
186 notification_no_data_.Show(l10n_util::GetStringFUTF16( 188 notification_no_data_.Show(l10n_util::GetStringFUTF16(
187 IDS_NETWORK_MINUTES_REMAINING_MESSAGE, ASCIIToUTF16("0")), 189 message, ASCIIToUTF16("0")),
188 l10n_util::GetStringUTF16(IDS_NETWORK_PURCHASE_MORE_MESSAGE), 190 l10n_util::GetStringUTF16(IDS_NETWORK_PURCHASE_MORE_MESSAGE),
189 NewCallback(this, &NetworkMessageObserver::MobileSetup), 191 NewCallback(this, &NetworkMessageObserver::MobileSetup),
190 false, false); 192 false, false);
191 } else if (time_left <= kDataNearingExpirationSecs) { 193 } else if (cellular.data_left() == CellularNetwork::DATA_VERY_LOW) {
192 notification_no_data_.Hide(); 194 notification_no_data_.Hide();
195 int message = plan.plan_type == CELLULAR_DATA_PLAN_UNLIMITED ?
196 IDS_NETWORK_MINUTES_REMAINING_MESSAGE :
197 IDS_NETWORK_DATA_REMAINING_MESSAGE;
198 int64 remaining = plan.plan_type == CELLULAR_DATA_PLAN_UNLIMITED ?
199 (plan.plan_end_time - plan.update_time) / 60 :
200 (plan.plan_data_bytes - plan.data_bytes_used) / (1024 * 1024);
193 notification_low_data_.Show(l10n_util::GetStringFUTF16( 201 notification_low_data_.Show(l10n_util::GetStringFUTF16(
194 IDS_NETWORK_MINUTES_UNTIL_EXPIRATION_MESSAGE, 202 message, UTF8ToUTF16(base::Int64ToString(remaining))),
195 UTF8ToUTF16(base::Int64ToString(time_left/60))),
196 l10n_util::GetStringUTF16(IDS_NETWORK_PURCHASE_MORE_MESSAGE), 203 l10n_util::GetStringUTF16(IDS_NETWORK_PURCHASE_MORE_MESSAGE),
197 NewCallback(this, &NetworkMessageObserver::MobileSetup), 204 NewCallback(this, &NetworkMessageObserver::MobileSetup),
198 false, false); 205 false, false);
199 } else { 206 } else {
200 // Got more data, so hide notifications. 207 // Got data, so hide notifications.
201 notification_low_data_.Hide();
202 notification_no_data_.Hide();
203 }
204 } else if (plan.plan_type == CELLULAR_DATA_PLAN_METERED_PAID ||
205 plan.plan_type == CELLULAR_DATA_PLAN_METERED_BASE) {
206 // Metered plan. Show low data and out of data.
207 int64 bytes_remaining = plan.plan_data_bytes - plan.data_bytes_used;
208 if (bytes_remaining <= 0) {
209 notification_low_data_.Hide();
210 notification_no_data_.Show(l10n_util::GetStringFUTF16(
211 IDS_NETWORK_DATA_REMAINING_MESSAGE, ASCIIToUTF16("0")),
212 l10n_util::GetStringUTF16(IDS_NETWORK_PURCHASE_MORE_MESSAGE),
213 NewCallback(this, &NetworkMessageObserver::MobileSetup),
214 false, false);
215 } else if (bytes_remaining <= kDataLowDataBytes) {
216 notification_no_data_.Hide();
217 notification_low_data_.Show(l10n_util::GetStringFUTF16(
218 IDS_NETWORK_DATA_REMAINING_MESSAGE,
219 UTF8ToUTF16(base::Int64ToString(bytes_remaining/1024))),
220 l10n_util::GetStringUTF16(IDS_NETWORK_PURCHASE_MORE_MESSAGE),
221 NewCallback(this, &NetworkMessageObserver::MobileSetup),
222 false, false);
223 } else {
224 // Got more data, so hide notifications.
225 notification_low_data_.Hide(); 208 notification_low_data_.Hide();
226 notification_no_data_.Hide(); 209 notification_no_data_.Hide();
227 } 210 }
228 } 211 }
229 212
230 cellular_data_plan_ = plan; 213 cellular_data_plan_ = plan;
231 } 214 }
232 215
233 } // namespace chromeos 216 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/network_message_observer.h ('k') | chrome/browser/chromeos/status/network_menu.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698