Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(900)

Unified Diff: chrome/browser/chromeos/contacts/fake_contact_database.cc

Issue 10933127: contacts: Don't save deleted contacts to disk. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/contacts/fake_contact_database.cc
diff --git a/chrome/browser/chromeos/contacts/fake_contact_database.cc b/chrome/browser/chromeos/contacts/fake_contact_database.cc
index f74d4531a00731a35d5ad59b097733b7773febd3..0ce9aab5bf0f49563c7ddefcb4dec83bd22e6d9a 100644
--- a/chrome/browser/chromeos/contacts/fake_contact_database.cc
+++ b/chrome/browser/chromeos/contacts/fake_contact_database.cc
@@ -28,7 +28,7 @@ void FakeContactDatabase::Init(const FilePath& database_dir,
void FakeContactDatabase::SetContacts(const ContactPointers& contacts,
const UpdateMetadata& metadata) {
contacts_.Clear();
- MergeContacts(contacts);
+ MergeContacts(contacts, ContactIds());
metadata_ = metadata;
}
@@ -37,16 +37,18 @@ void FakeContactDatabase::DestroyOnUIThread() {
delete this;
}
-void FakeContactDatabase::SaveContacts(scoped_ptr<ContactPointers> contacts,
- scoped_ptr<UpdateMetadata> metadata,
- bool is_full_update,
- SaveCallback callback) {
+void FakeContactDatabase::SaveContacts(
+ scoped_ptr<ContactPointers> contacts_to_save,
+ scoped_ptr<ContactIds> contact_ids_to_delete,
+ scoped_ptr<UpdateMetadata> metadata,
+ bool is_full_update,
+ SaveCallback callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (save_success_) {
- num_saved_contacts_ += contacts->size();
+ num_saved_contacts_ += contacts_to_save->size();
if (is_full_update)
contacts_.Clear();
- MergeContacts(*contacts);
+ MergeContacts(*contacts_to_save, *contact_ids_to_delete);
metadata_ = *metadata;
}
callback.Run(save_success_);
@@ -70,11 +72,16 @@ FakeContactDatabase::~FakeContactDatabase() {
}
void FakeContactDatabase::MergeContacts(
- const ContactPointers& updated_contacts) {
+ const ContactPointers& updated_contacts,
+ const ContactIds& contact_ids_to_delete) {
scoped_ptr<ScopedVector<Contact> > copied_contacts(new ScopedVector<Contact>);
for (size_t i = 0; i < updated_contacts.size(); ++i)
copied_contacts->push_back(new Contact(*updated_contacts[i]));
contacts_.Merge(copied_contacts.Pass(), ContactMap::KEEP_DELETED_CONTACTS);
+ for (ContactIds::const_iterator it = contact_ids_to_delete.begin();
+ it != contact_ids_to_delete.end(); ++it) {
+ contacts_.Erase(*it);
+ }
}
} // namespace contacts

Powered by Google App Engine
This is Rietveld 408576698