diff options
Diffstat (limited to 'cloud_print/gcp20/prototype/printer_state.cc')
-rw-r--r-- | cloud_print/gcp20/prototype/printer_state.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/cloud_print/gcp20/prototype/printer_state.cc b/cloud_print/gcp20/prototype/printer_state.cc index 0c1ab09..156ebe4 100644 --- a/cloud_print/gcp20/prototype/printer_state.cc +++ b/cloud_print/gcp20/prototype/printer_state.cc @@ -22,6 +22,7 @@ const char kAccessToken[] = "access_token"; const char kAccessTokenUpdate[] = "access_token_update"; const char kLocalSettings[] = "local_settings"; +const char kCdd[] = "cdd"; const char kLocalSettingsLocalDiscovery[] = "local_discovery"; const char kLocalSettingsAccessTokenEnabled[] = "access_token_enabled"; const char kLocalSettingsLocalPrintingEnabled[] = @@ -66,6 +67,9 @@ bool SaveToFile(const base::FilePath& path, const PrinterState& state) { json.SetBoolean(kRegistered, false); } + if (state.cdd.get()) + json.Set(kCdd, state.cdd->DeepCopy()); + std::string json_str; base::JSONWriter::WriteWithOptions(&json, base::JSONWriter::OPTIONS_PRETTY_PRINT, @@ -151,6 +155,10 @@ bool LoadFromFile(const base::FilePath& path, PrinterState* state) { } } + base::DictionaryValue* cdd_dict = NULL; + if (!json->GetDictionary(kCdd, &cdd_dict)) + LOG(WARNING) << "Cannot read |cdd|. Reset to default."; + *state = PrinterState(); state->registration_state = PrinterState::REGISTERED; state->user = user; @@ -160,6 +168,8 @@ bool LoadFromFile(const base::FilePath& path, PrinterState* state) { state->access_token = access_token; state->access_token_update = base::Time::FromTimeT(access_token_update); state->local_settings = local_settings; + if (cdd_dict) + state->cdd.reset(cdd_dict->DeepCopy()); return true; } |