| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/app_list/arc/arc_package_syncable_service.h" | 5 #include "chrome/browser/ui/app_list/arc/arc_package_syncable_service.h" |
| 6 | 6 |
| 7 #include <unordered_set> | 7 #include <unordered_set> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 list.emplace_back(GetSyncDataFromSyncItem(item.second.get())); | 195 list.emplace_back(GetSyncDataFromSyncItem(item.second.get())); |
| 196 | 196 |
| 197 return list; | 197 return list; |
| 198 } | 198 } |
| 199 | 199 |
| 200 syncer::SyncError ArcPackageSyncableService::ProcessSyncChanges( | 200 syncer::SyncError ArcPackageSyncableService::ProcessSyncChanges( |
| 201 const tracked_objects::Location& from_here, | 201 const tracked_objects::Location& from_here, |
| 202 const syncer::SyncChangeList& change_list) { | 202 const syncer::SyncChangeList& change_list) { |
| 203 if (!sync_processor_.get()) { | 203 if (!sync_processor_.get()) { |
| 204 return syncer::SyncError(FROM_HERE, syncer::SyncError::DATATYPE_ERROR, | 204 return syncer::SyncError(FROM_HERE, syncer::SyncError::DATATYPE_ERROR, |
| 205 "Arc package syncable service is not started.", | 205 "ARC package syncable service is not started.", |
| 206 syncer::ARC_PACKAGE); | 206 syncer::ARC_PACKAGE); |
| 207 } | 207 } |
| 208 | 208 |
| 209 for (const auto& change : change_list) { | 209 for (const auto& change : change_list) { |
| 210 VLOG(2) << this << " Change: " | 210 VLOG(2) << this << " Change: " |
| 211 << change.sync_data().GetSpecifics().arc_package().package_name() | 211 << change.sync_data().GetSpecifics().arc_package().package_name() |
| 212 << " (" << change.change_type() << ")"; | 212 << " (" << change.change_type() << ")"; |
| 213 | 213 |
| 214 if (change.change_type() == SyncChange::ACTION_ADD || | 214 if (change.change_type() == SyncChange::ACTION_ADD || |
| 215 change.change_type() == SyncChange::ACTION_UPDATE) { | 215 change.change_type() == SyncChange::ACTION_UPDATE) { |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 334 sync_processor_->ProcessSyncChanges(FROM_HERE, | 334 sync_processor_->ProcessSyncChanges(FROM_HERE, |
| 335 syncer::SyncChangeList(1, sync_change)); | 335 syncer::SyncChangeList(1, sync_change)); |
| 336 | 336 |
| 337 sync_items_[package_name] = std::move(sync_item); | 337 sync_items_[package_name] = std::move(sync_item); |
| 338 } | 338 } |
| 339 | 339 |
| 340 bool ArcPackageSyncableService::ProcessSyncItemSpecifics( | 340 bool ArcPackageSyncableService::ProcessSyncItemSpecifics( |
| 341 const sync_pb::ArcPackageSpecifics& specifics) { | 341 const sync_pb::ArcPackageSpecifics& specifics) { |
| 342 const std::string& package_name = specifics.package_name(); | 342 const std::string& package_name = specifics.package_name(); |
| 343 if (package_name.empty()) { | 343 if (package_name.empty()) { |
| 344 VLOG(2) << "Add/Update Arc package item with empty package name"; | 344 VLOG(2) << "Add/Update ARC package item with empty package name"; |
| 345 return false; | 345 return false; |
| 346 } | 346 } |
| 347 | 347 |
| 348 SyncItemMap::const_iterator iter = sync_items_.find(package_name); | 348 SyncItemMap::const_iterator iter = sync_items_.find(package_name); |
| 349 if (iter != sync_items_.end()) { | 349 if (iter != sync_items_.end()) { |
| 350 // TODO(lgcheng@) may need to create update exsiting package logic here. | 350 // TODO(lgcheng@) may need to create update exsiting package logic here. |
| 351 return true; | 351 return true; |
| 352 } | 352 } |
| 353 | 353 |
| 354 SyncItemMap::const_iterator pending_iter = | 354 SyncItemMap::const_iterator pending_iter = |
| 355 pending_install_items_.find(package_name); | 355 pending_install_items_.find(package_name); |
| 356 if (pending_iter != pending_install_items_.end()) { | 356 if (pending_iter != pending_install_items_.end()) { |
| 357 // TODO(lgcheng@) may need to create update pending install package | 357 // TODO(lgcheng@) may need to create update pending install package |
| 358 // logic here. | 358 // logic here. |
| 359 return true; | 359 return true; |
| 360 } | 360 } |
| 361 | 361 |
| 362 std::unique_ptr<ArcSyncItem> sync_item( | 362 std::unique_ptr<ArcSyncItem> sync_item( |
| 363 CreateSyncItemFromSyncSpecifics(specifics)); | 363 CreateSyncItemFromSyncSpecifics(specifics)); |
| 364 pending_install_items_[package_name] = std::move(sync_item); | 364 pending_install_items_[package_name] = std::move(sync_item); |
| 365 InstallPackage(pending_install_items_[package_name].get()); | 365 InstallPackage(pending_install_items_[package_name].get()); |
| 366 return true; | 366 return true; |
| 367 } | 367 } |
| 368 | 368 |
| 369 bool ArcPackageSyncableService::DeleteSyncItemSpecifics( | 369 bool ArcPackageSyncableService::DeleteSyncItemSpecifics( |
| 370 const sync_pb::ArcPackageSpecifics& specifics) { | 370 const sync_pb::ArcPackageSpecifics& specifics) { |
| 371 const std::string& package_name = specifics.package_name(); | 371 const std::string& package_name = specifics.package_name(); |
| 372 if (package_name.empty()) { | 372 if (package_name.empty()) { |
| 373 VLOG(2) << "Delete Arc package item with empty package name"; | 373 VLOG(2) << "Delete ARC package item with empty package name"; |
| 374 return false; | 374 return false; |
| 375 } | 375 } |
| 376 | 376 |
| 377 SyncItemMap::const_iterator delete_iter = | 377 SyncItemMap::const_iterator delete_iter = |
| 378 pending_install_items_.find(package_name); | 378 pending_install_items_.find(package_name); |
| 379 // Ignore this this delete sync change. Package is pending uninstall. | 379 // Ignore this this delete sync change. Package is pending uninstall. |
| 380 if (delete_iter != pending_install_items_.end()) { | 380 if (delete_iter != pending_install_items_.end()) { |
| 381 pending_install_items_.erase(delete_iter); | 381 pending_install_items_.erase(delete_iter); |
| 382 return true; | 382 return true; |
| 383 } | 383 } |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 434 | 434 |
| 435 bool ArcPackageSyncableService::ShouldSyncPackage( | 435 bool ArcPackageSyncableService::ShouldSyncPackage( |
| 436 const std::string& package_name) const { | 436 const std::string& package_name) const { |
| 437 std::unique_ptr<ArcAppListPrefs::PackageInfo> package( | 437 std::unique_ptr<ArcAppListPrefs::PackageInfo> package( |
| 438 prefs_->GetPackage(package_name)); | 438 prefs_->GetPackage(package_name)); |
| 439 DCHECK(package.get()); | 439 DCHECK(package.get()); |
| 440 return package->should_sync; | 440 return package->should_sync; |
| 441 } | 441 } |
| 442 | 442 |
| 443 } // namespace arc | 443 } // namespace arc |
| OLD | NEW |