Index: chromeos/network/network_state.cc |
diff --git a/chromeos/network/network_state.cc b/chromeos/network/network_state.cc |
index bd53eae5d141dd190c160e18d13a9109b7993f55..594acd100ded25882be76705bcde5b204b654fdb 100644 |
--- a/chromeos/network/network_state.cc |
+++ b/chromeos/network/network_state.cc |
@@ -7,7 +7,10 @@ |
#include "base/stl_util.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/stringprintf.h" |
+#include "chromeos/network/device_state.h" |
+#include "chromeos/network/network_handler.h" |
#include "chromeos/network/network_profile_handler.h" |
+#include "chromeos/network/network_state_handler.h" |
#include "chromeos/network/network_type_pattern.h" |
#include "chromeos/network/network_util.h" |
#include "chromeos/network/onc/onc_utils.h" |
@@ -235,10 +238,27 @@ void NetworkState::GetStateProperties(base::DictionaryValue* dictionary) const { |
network_technology()); |
dictionary->SetStringWithoutPathExpansion(shill::kActivationStateProperty, |
activation_state()); |
- dictionary->SetStringWithoutPathExpansion(shill::kRoamingStateProperty, |
- roaming()); |
- dictionary->SetBooleanWithoutPathExpansion(shill::kOutOfCreditsProperty, |
- cellular_out_of_credits()); |
+ if (NetworkTypePattern::Cellular().MatchesType(type())) { |
+ dictionary->SetStringWithoutPathExpansion(shill::kRoamingStateProperty, |
+ roaming()); |
+ dictionary->SetBooleanWithoutPathExpansion(shill::kOutOfCreditsProperty, |
+ cellular_out_of_credits()); |
+ // We need to set Device[Cellular.ProviderRequiresRoaming] so that |
+ // the Shill -> ONC translation can provide 'ProviderRequiresRoaming' |
+ // to the UI for badging network icons. |
+ const DeviceState* device = |
+ NetworkHandler::Get()->network_state_handler()->GetDeviceState( |
pneubeck (no reviews)
2015/02/25 09:57:04
instead of adding this cyclic dependency on NSH, h
stevenjb
2015/02/25 19:16:25
Moved to TranslateNetworkStateToONC. Was on the fe
|
+ device_path_); |
+ if (device) { |
+ scoped_ptr<base::DictionaryValue> device_dict( |
+ new base::DictionaryValue); |
+ device_dict->SetBooleanWithoutPathExpansion( |
+ shill::kProviderRequiresRoamingProperty, |
+ device->provider_requires_roaming()); |
+ dictionary->SetWithoutPathExpansion(shill::kDeviceProperty, |
+ device_dict.release()); |
+ } |
+ } |
} |
} |