Fix codes for Manifest installation
[platform/core/appfw/wgt-backend.git] / src / hybrid / step / configuration / step_merge_tpk_config.cc
index 15d59c3..d63d003 100644 (file)
 namespace hybrid {
 namespace configuration {
 
+StepMergeTpkConfig::StepMergeTpkConfig(
+    common_installer::InstallerContext* context,
+    MergeType type) : Step(context), merge_type_(type) {
+}
+
 common_installer::Step::Status StepMergeTpkConfig::process() {
   HybridBackendData* data =
       static_cast<HybridBackendData*>(context_->backend_data.get());
   manifest_x* tpk_data = data->tpk_manifest_data.get();
   manifest_x* wgt_data = context_->manifest_data.get();
 
-  wgt_data->application =
-      g_list_concat(wgt_data->application, tpk_data->application);
-  tpk_data->application = nullptr;
+  if (merge_type_ == MergeType::CONCAT)
+    wgt_data->application =
+        g_list_concat(wgt_data->application, tpk_data->application);
+  else
+    wgt_data->application = tpk_data->application;
 
+  tpk_data->application = nullptr;
   return Status::OK;
 }