Use UpdateUsesSnapshotCompression to determine if VABC is used

Test: th
Change-Id: Ia04f92d46da34fcd28d7e97c24b6e02fd676e1c7
diff --git a/aosp/dynamic_partition_control_android.cc b/aosp/dynamic_partition_control_android.cc
index a1d5e91..657eec9 100644
--- a/aosp/dynamic_partition_control_android.cc
+++ b/aosp/dynamic_partition_control_android.cc
@@ -1013,8 +1013,8 @@
   // target slot.
   const auto& partition_name_suffix =
       partition_name + SlotSuffixForSlotNumber(slot);
-  if (GetVirtualAbCompressionFeatureFlag().IsEnabled() &&
-      IsDynamicPartition(partition_name) && slot != current_slot) {
+  if (UpdateUsesSnapshotCompression() && IsDynamicPartition(partition_name) &&
+      slot != current_slot) {
     return {{.mountable_device_path =
                  GetStaticDevicePath(device_dir, partition_name_suffix),
              .is_dynamic = true}};
diff --git a/aosp/dynamic_partition_control_android_unittest.cc b/aosp/dynamic_partition_control_android_unittest.cc
index b2e5c89..2f290d7 100644
--- a/aosp/dynamic_partition_control_android_unittest.cc
+++ b/aosp/dynamic_partition_control_android_unittest.cc
@@ -59,7 +59,8 @@
         .WillByDefault(Return(FeatureFlag(FeatureFlag::Value::NONE)));
     ON_CALL(dynamicControl(), GetVirtualAbCompressionFeatureFlag())
         .WillByDefault(Return(FeatureFlag(FeatureFlag::Value::NONE)));
-
+    ON_CALL(dynamicControl(), UpdateUsesSnapshotCompression())
+        .WillByDefault(Return(false));
     ON_CALL(dynamicControl(), GetDeviceDir(_))
         .WillByDefault(Invoke([](auto path) {
           *path = kFakeDevicePath;
@@ -399,6 +400,8 @@
       .WillByDefault(Return(FeatureFlag(FeatureFlag::Value::LAUNCH)));
   ON_CALL(dynamicControl(), GetVirtualAbCompressionFeatureFlag())
       .WillByDefault(Return(FeatureFlag(FeatureFlag::Value::NONE)));
+  ON_CALL(dynamicControl(), UpdateUsesSnapshotCompression())
+      .WillByDefault(Return(false));
   ON_CALL(dynamicControl(), IsDynamicPartition(_)).WillByDefault(Return(true));
 
   EXPECT_CALL(dynamicControl(),
@@ -437,6 +440,8 @@
       .WillByDefault(Return(FeatureFlag(FeatureFlag::Value::LAUNCH)));
   ON_CALL(dynamicControl(), GetVirtualAbCompressionFeatureFlag())
       .WillByDefault(Return(FeatureFlag(FeatureFlag::Value::LAUNCH)));
+  ON_CALL(dynamicControl(), UpdateUsesSnapshotCompression())
+      .WillByDefault(Return(true));
   EXPECT_CALL(dynamicControl(), IsDynamicPartition(_))
       .Times(AtLeast(1))
       .WillRepeatedly(Return(true));
diff --git a/common/dynamic_partition_control_interface.h b/common/dynamic_partition_control_interface.h
index 61127d4..8b29c3b 100644
--- a/common/dynamic_partition_control_interface.h
+++ b/common/dynamic_partition_control_interface.h
@@ -69,6 +69,9 @@
   // Return the feature flags of Virtual A/B on this device.
   virtual FeatureFlag GetVirtualAbFeatureFlag() = 0;
   // Return the feature flags of Virtual A/B Compression on this device.
+  // This function will tell you if current device supports VABC. However, it
+  // DOES NOT tell you if VABC is used for current OTA update. For that, use
+  // UpdateUsesSnapshotCompression.
   virtual FeatureFlag GetVirtualAbCompressionFeatureFlag() = 0;
 
   // Attempt to optimize |operation|.
diff --git a/payload_consumer/filesystem_verifier_action.cc b/payload_consumer/filesystem_verifier_action.cc
index 634f03f..e3a3e34 100644
--- a/payload_consumer/filesystem_verifier_action.cc
+++ b/payload_consumer/filesystem_verifier_action.cc
@@ -167,7 +167,7 @@
   LOG(INFO) << "Hashing partition " << partition_index_ << " ("
             << partition.name << ") on device " << part_path;
   auto success = false;
-  if (dynamic_control_->GetVirtualAbCompressionFeatureFlag().IsEnabled() &&
+  if (dynamic_control_->UpdateUsesSnapshotCompression() &&
       dynamic_control_->IsDynamicPartition(partition.name) &&
       verifier_step_ == VerifierStep::kVerifyTargetHash) {
     success = InitializeFdVABC();
diff --git a/payload_consumer/filesystem_verifier_action_unittest.cc b/payload_consumer/filesystem_verifier_action_unittest.cc
index 658ebe1..d163ec2 100644
--- a/payload_consumer/filesystem_verifier_action_unittest.cc
+++ b/payload_consumer/filesystem_verifier_action_unittest.cc
@@ -415,14 +415,14 @@
 
   ON_CALL(dynamic_control, GetDynamicPartitionsFeatureFlag())
       .WillByDefault(Return(FeatureFlag(FeatureFlag::Value::LAUNCH)));
-  ON_CALL(dynamic_control, GetVirtualAbCompressionFeatureFlag())
-      .WillByDefault(Return(FeatureFlag(FeatureFlag::Value::LAUNCH)));
+  ON_CALL(dynamic_control, UpdateUsesSnapshotCompression())
+      .WillByDefault(Return(true));
   ON_CALL(dynamic_control, OpenCowReader(_, _, _))
       .WillByDefault(Return(nullptr));
   ON_CALL(dynamic_control, IsDynamicPartition(part.name))
       .WillByDefault(Return(true));
 
-  EXPECT_CALL(dynamic_control, GetVirtualAbCompressionFeatureFlag())
+  EXPECT_CALL(dynamic_control, UpdateUsesSnapshotCompression())
       .Times(AtLeast(1));
   EXPECT_CALL(dynamic_control, OpenCowReader(part.name, {part.source_path}, _))
       .Times(1);
diff --git a/payload_consumer/partition_writer_factory_android.cc b/payload_consumer/partition_writer_factory_android.cc
index 0c9f7ea..184e2d5 100644
--- a/payload_consumer/partition_writer_factory_android.cc
+++ b/payload_consumer/partition_writer_factory_android.cc
@@ -30,8 +30,7 @@
     size_t block_size,
     bool is_interactive,
     bool is_dynamic_partition) {
-  if (dynamic_control &&
-      dynamic_control->GetVirtualAbCompressionFeatureFlag().IsEnabled() &&
+  if (dynamic_control && dynamic_control->UpdateUsesSnapshotCompression() &&
       is_dynamic_partition) {
     LOG(INFO)
         << "Virtual AB Compression Enabled, using VABC Partition Writer for `"
diff --git a/payload_consumer/postinstall_runner_action.cc b/payload_consumer/postinstall_runner_action.cc
index 58d045b..e3e305b 100644
--- a/payload_consumer/postinstall_runner_action.cc
+++ b/payload_consumer/postinstall_runner_action.cc
@@ -76,7 +76,7 @@
   CHECK(dynamic_control);
 
   // Mount snapshot partitions for Virtual AB Compression Compression.
-  if (dynamic_control->GetVirtualAbCompressionFeatureFlag().IsEnabled()) {
+  if (dynamic_control->UpdateUsesSnapshotCompression()) {
     // Before calling MapAllPartitions to map snapshot devices, all CowWriters
     // must be closed, and MapAllPartitions() should be called.
     dynamic_control->UnmapAllPartitions();