summaryrefslogtreecommitdiffstats
path: root/chromeos/network/shill_property_util.cc
diff options
context:
space:
mode:
authorstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-22 06:21:40 +0000
committerstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-22 06:21:40 +0000
commitedf1e492aaea5cd30ac5e407dc7149c848e89ee5 (patch)
treec10d57898a082f9175b4ffeaec64ebb576dcee49 /chromeos/network/shill_property_util.cc
parent1d65acd5b5839c49e2bf451387c8143984379006 (diff)
downloadchromium_src-edf1e492aaea5cd30ac5e407dc7149c848e89ee5.zip
chromium_src-edf1e492aaea5cd30ac5e407dc7149c848e89ee5.tar.gz
chromium_src-edf1e492aaea5cd30ac5e407dc7149c848e89ee5.tar.bz2
Add Device properties for Cellular to MNCH for networkingPrivate
BUG=374003 Review URL: https://codereview.chromium.org/291553002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272119 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/network/shill_property_util.cc')
-rw-r--r--chromeos/network/shill_property_util.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/chromeos/network/shill_property_util.cc b/chromeos/network/shill_property_util.cc
index 0bf6d84..f8e90b5 100644
--- a/chromeos/network/shill_property_util.cc
+++ b/chromeos/network/shill_property_util.cc
@@ -318,6 +318,33 @@ bool IsPassphraseKey(const std::string& key) {
key == shill::kApnPasswordProperty;
}
+bool GetHomeProviderFromProperty(const base::Value& value,
+ std::string* home_provider_id) {
+ const base::DictionaryValue* dict = NULL;
+ if (!value.GetAsDictionary(&dict))
+ return false;
+ std::string home_provider_country;
+ std::string home_provider_name;
+ dict->GetStringWithoutPathExpansion(shill::kOperatorCountryKey,
+ &home_provider_country);
+ dict->GetStringWithoutPathExpansion(shill::kOperatorNameKey,
+ &home_provider_name);
+ // Set home_provider_id
+ if (!home_provider_name.empty() && !home_provider_country.empty()) {
+ *home_provider_id = base::StringPrintf(
+ "%s (%s)", home_provider_name.c_str(), home_provider_country.c_str());
+ } else {
+ if (!dict->GetStringWithoutPathExpansion(shill::kOperatorCodeKey,
+ home_provider_id)) {
+ return false;
+ }
+ LOG(WARNING)
+ << "Provider name and country not defined, using code instead: "
+ << *home_provider_id;
+ }
+ return true;
+}
+
} // namespace shill_property_util
namespace {