diff options
Diffstat (limited to 'chrome/browser')
4 files changed, 15 insertions, 1 deletions
diff --git a/chrome/browser/chromeos/cros/native_network_parser.cc b/chrome/browser/chromeos/cros/native_network_parser.cc index 7ff915e..132474c 100644 --- a/chrome/browser/chromeos/cros/native_network_parser.cc +++ b/chrome/browser/chromeos/cros/native_network_parser.cc @@ -122,6 +122,7 @@ EnumMapper<PropertyIndex>::Pair property_index_table[] = { { flimflam::kProxyConfigProperty, PROPERTY_INDEX_PROXY_CONFIG }, { flimflam::kRoamingStateProperty, PROPERTY_INDEX_ROAMING_STATE }, { flimflam::kSIMLockStatusProperty, PROPERTY_INDEX_SIM_LOCK }, + { shill::kSIMPresentProperty, PROPERTY_INDEX_SIM_PRESENT }, { flimflam::kSSIDProperty, PROPERTY_INDEX_SSID }, { flimflam::kSaveCredentialsProperty, PROPERTY_INDEX_SAVE_CREDENTIALS }, { flimflam::kScanningProperty, PROPERTY_INDEX_SCANNING }, @@ -447,6 +448,13 @@ bool NativeNetworkDeviceParser::ParseValue( return true; } break; + case PROPERTY_INDEX_SIM_PRESENT: { + bool sim_present; + if (!value.GetAsBoolean(&sim_present)) + return false; + device->set_sim_present(sim_present); + return true; + } case PROPERTY_INDEX_POWERED: // we don't care about the value, just the fact that it changed return true; diff --git a/chrome/browser/chromeos/cros/network_constants.h b/chrome/browser/chromeos/cros/network_constants.h index d3616b7..259408f 100644 --- a/chrome/browser/chromeos/cros/network_constants.h +++ b/chrome/browser/chromeos/cros/network_constants.h @@ -170,6 +170,7 @@ enum PropertyIndex { PROPERTY_INDEX_SERVING_OPERATOR, PROPERTY_INDEX_SIGNAL_STRENGTH, PROPERTY_INDEX_SIM_LOCK, + PROPERTY_INDEX_SIM_PRESENT, PROPERTY_INDEX_SSID, PROPERTY_INDEX_STATE, PROPERTY_INDEX_SUPPORT_NETWORK_SCAN, diff --git a/chrome/browser/chromeos/cros/network_library.cc b/chrome/browser/chromeos/cros/network_library.cc index 307bc2e..ba81959 100644 --- a/chrome/browser/chromeos/cros/network_library.cc +++ b/chrome/browser/chromeos/cros/network_library.cc @@ -183,6 +183,7 @@ NetworkDevice::NetworkDevice(const std::string& device_path) sim_lock_state_(SIM_UNKNOWN), sim_retries_left_(kDefaultSimUnlockRetriesCount), sim_pin_required_(SIM_PIN_REQUIRE_UNKNOWN), + sim_present_(false), prl_version_(0), data_roaming_allowed_(false), support_network_scan_(false), diff --git a/chrome/browser/chromeos/cros/network_library.h b/chrome/browser/chromeos/cros/network_library.h index 2677974..119c146 100644 --- a/chrome/browser/chromeos/cros/network_library.h +++ b/chrome/browser/chromeos/cros/network_library.h @@ -109,7 +109,7 @@ class NetworkDevice { // returns false: GSM modem and SIM card is present or CDMA modem. bool is_sim_absent() const { return technology_family() == TECHNOLOGY_FAMILY_GSM && - !is_sim_locked() && imsi().empty(); + !is_sim_locked() && !sim_present_; } const int sim_retries_left() const { return sim_retries_left_; } SimPinRequire sim_pin_required() const { return sim_pin_required_; } @@ -217,6 +217,9 @@ class NetworkDevice { void set_sim_pin_required(SimPinRequire sim_pin_required) { sim_pin_required_ = sim_pin_required; } + void set_sim_present(bool sim_present) { + sim_present_ = sim_present; + } void set_firmware_revision(const std::string& firmware_revision) { firmware_revision_ = firmware_revision; } @@ -269,6 +272,7 @@ class NetworkDevice { SimLockState sim_lock_state_; int sim_retries_left_; SimPinRequire sim_pin_required_; + bool sim_present_; std::string firmware_revision_; std::string hardware_revision_; int prl_version_; |