Index: chrome/browser/chromeos/cros/network_library.cc |
=================================================================== |
--- chrome/browser/chromeos/cros/network_library.cc (revision 71286) |
+++ chrome/browser/chromeos/cros/network_library.cc (working copy) |
@@ -84,6 +84,9 @@ |
static const char* kRoamingStateRoaming = "roaming"; |
static const char* kRoamingStateUnknown = "unknown"; |
+// How long we should remember that cellular plan payment was received. |
+const int kRecentPlanPaymentHours = 6; |
+ |
static ConnectionState ParseState(const std::string& state) { |
if (state == kStateIdle) |
return STATE_IDLE; |
@@ -1135,6 +1138,18 @@ |
RequestCellularDataPlanUpdate(network->service_path().c_str()); |
} |
+ // Records information that cellular play payment had happened. |
+ virtual void SignalCellularPlanPayment() { |
+ DCHECK(!HasRecentCellularPlanPayment()); |
+ cellular_plan_payment_time_ = base::Time::Now(); |
+ } |
+ |
+ // Returns true if cellular plan payment had been recorded recently. |
+ virtual bool HasRecentCellularPlanPayment() { |
+ return (base::Time::Now() - |
+ cellular_plan_payment_time_).InHours() < kRecentPlanPaymentHours; |
+ } |
+ |
virtual void DisconnectFromWirelessNetwork(const WirelessNetwork* network) { |
DCHECK(network); |
if (!EnsureCrosLoaded() || !network) |
@@ -1621,7 +1636,7 @@ |
cellular1->set_service_path("fc1"); |
cellular1->set_name("Fake Cellular 1"); |
cellular1->set_strength(70); |
- cellular1->set_connected(true); |
+ cellular1->set_connected(false); |
cellular1->set_activation_state(ACTIVATION_STATE_ACTIVATED); |
cellular1->set_payment_url(std::string("http://www.google.com")); |
cellular1->set_network_technology(NETWORK_TECHNOLOGY_EVDO); |
@@ -1768,7 +1783,7 @@ |
bool boolval = false; |
int intval = 0; |
std::string stringval; |
- Network* network; |
+ Network* network = NULL; |
if (ethernet_->service_path() == path) { |
network = ethernet_; |
} else { |
@@ -1779,7 +1794,7 @@ |
if (cellular == NULL && wifi == NULL) |
return; |
- WirelessNetwork* wireless; |
+ WirelessNetwork* wireless = NULL; |
if (wifi != NULL) |
wireless = static_cast<WirelessNetwork*>(wifi); |
else |
@@ -1822,7 +1837,8 @@ |
network->InitIPAddress(); |
} |
} |
- NotifyNetworkChanged(network); |
+ if (network) |
+ NotifyNetworkChanged(network); |
} |
void UpdateCellularDataPlan(const CellularDataPlanList* data_plans) { |
@@ -1896,6 +1912,9 @@ |
// Delayed task to retrieve the network information. |
CancelableTask* update_task_; |
+ // Cellular plan payment time. |
+ base::Time cellular_plan_payment_time_; |
+ |
DISALLOW_COPY_AND_ASSIGN(NetworkLibraryImpl); |
}; |
@@ -1979,6 +1998,8 @@ |
return true; |
} |
virtual void RefreshCellularDataPlans(const CellularNetwork* network) {} |
+ virtual void SignalCellularPlanPayment() {} |
+ virtual bool HasRecentCellularPlanPayment() { return false; } |
virtual void DisconnectFromWirelessNetwork(const WirelessNetwork* network) {} |
virtual void SaveCellularNetwork(const CellularNetwork* network) {} |
virtual void SaveWifiNetwork(const WifiNetwork* network) {} |