ShouldSkipOperation -> OptimizeOperation

For SOURCE_COPY operations like
  563412 -> 123456
OptimizeOperation optimizes it to
  5612 -> 1256
and skip writing blocks that does not need to be written for snapshot
partitions.

Bug: 148623880
Test: update_engine_unittests
Test: apply incremental OTA

Change-Id: Ifd2c3851f703f272a74c8f0e9a1c9a82dbcce3e3
diff --git a/dynamic_partition_control_android.cc b/dynamic_partition_control_android.cc
index 1993661..d75a8fc 100644
--- a/dynamic_partition_control_android.cc
+++ b/dynamic_partition_control_android.cc
@@ -51,9 +51,9 @@
 using android::fs_mgr::Partition;
 using android::fs_mgr::PartitionOpener;
 using android::fs_mgr::SlotSuffixForSlotNumber;
+using android::snapshot::OptimizeSourceCopyOperation;
 using android::snapshot::Return;
 using android::snapshot::SnapshotManager;
-using android::snapshot::SourceCopyOperationIsClone;
 using android::snapshot::UpdateState;
 
 namespace chromeos_update_engine {
@@ -115,15 +115,17 @@
   return virtual_ab_;
 }
 
-bool DynamicPartitionControlAndroid::ShouldSkipOperation(
-    const std::string& partition_name, const InstallOperation& operation) {
+bool DynamicPartitionControlAndroid::OptimizeOperation(
+    const std::string& partition_name,
+    const InstallOperation& operation,
+    InstallOperation* optimized) {
   switch (operation.type()) {
     case InstallOperation::SOURCE_COPY:
       return target_supports_snapshot_ &&
              GetVirtualAbFeatureFlag().IsEnabled() &&
              mapped_devices_.count(partition_name +
                                    SlotSuffixForSlotNumber(target_slot_)) > 0 &&
-             SourceCopyOperationIsClone(operation);
+             OptimizeSourceCopyOperation(operation, optimized);
       break;
     default:
       break;